Nollie32 bug fixes, and new controllers
This commit is contained in:
parent
16938483a1
commit
ccec0828f9
4 changed files with 35 additions and 13 deletions
|
|
@ -36,7 +36,6 @@ std::string NollieController::GetSerialString()
|
|||
|
||||
std::wstring return_wstring = serial_string;
|
||||
std::string return_string(return_wstring.begin(), return_wstring.end());
|
||||
|
||||
return(return_string);
|
||||
}
|
||||
|
||||
|
|
@ -110,19 +109,28 @@ void NollieController::SendPacket(unsigned char channel,RGBColor* colors,unsigne
|
|||
| Send packet |
|
||||
\*-----------------------------------------------------*/
|
||||
hid_write(dev, usb_buf, 1025);
|
||||
if(channel == NOLLIE32_FLAG1_CHANNEL || channel == NOLLIE32_FLAG2_CHANNEL)
|
||||
{
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(8));
|
||||
}
|
||||
}
|
||||
|
||||
void NollieController::SendPacketFS(unsigned char channel,unsigned char packet_id,RGBColor* colors,unsigned int num_colors)
|
||||
{
|
||||
unsigned char usb_buf[65];
|
||||
unsigned int packet_interval;
|
||||
if (GetUSBPID() == NOLLIE28_12_PID)
|
||||
unsigned int dev_pid = GetUSBPID();
|
||||
switch(dev_pid)
|
||||
{
|
||||
packet_interval = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
packet_interval = 25;
|
||||
case NOLLIE28_12_PID:
|
||||
packet_interval = 2;
|
||||
break;
|
||||
case NOLLIE8_PID:
|
||||
packet_interval = 6;
|
||||
break;
|
||||
default:
|
||||
packet_interval = 25;
|
||||
break;
|
||||
}
|
||||
memset(usb_buf, 0x00, sizeof(usb_buf));
|
||||
usb_buf[0x00] = 0x00;
|
||||
|
|
@ -132,6 +140,11 @@ void NollieController::SendPacketFS(unsigned char channel,unsigned char packet_i
|
|||
usb_buf[0x02 + (color_idx * 3)] = RGBGetRValue(colors[color_idx]);
|
||||
usb_buf[0x03 + (color_idx * 3)] = RGBGetGValue(colors[color_idx]);
|
||||
usb_buf[0x04 + (color_idx * 3)] = RGBGetBValue(colors[color_idx]);
|
||||
if(dev_pid == NOLLIE8_PID)
|
||||
{
|
||||
usb_buf[0x02 + (color_idx * 3)] = RGBGetGValue(colors[color_idx]);
|
||||
usb_buf[0x03 + (color_idx * 3)] = RGBGetRValue(colors[color_idx]);
|
||||
}
|
||||
}
|
||||
hid_write(dev, usb_buf, 65);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
#include <vector>
|
||||
#include <hidapi/hidapi.h>
|
||||
|
||||
|
||||
void DetectNollieControllers(hid_device_info* info, const std::string& name)
|
||||
{
|
||||
hid_device* dev = hid_open_path(info->path);
|
||||
|
|
@ -36,6 +35,7 @@ void DetectNollieControllers(hid_device_info* info, const std::string& name)
|
|||
|
||||
REGISTER_HID_DETECTOR("Nollie 32CH", DetectNollieControllers, NOLLIE32_VID, NOLLIE32_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 16CH", DetectNollieControllers, NOLLIE16_VID, NOLLIE16_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 8CH", DetectNollieControllers, NOLLIE8_VID, NOLLIE8_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 28 12", DetectNollieControllers, NOLLIE28_12_VID, NOLLIE28_12_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 28 L1", DetectNollieControllers, NOLLIE28_12_VID, NOLLIE28_L1_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 28 L2", DetectNollieControllers, NOLLIE28_12_VID, NOLLIE28_L2_PID);
|
||||
|
|
|
|||
|
|
@ -66,6 +66,10 @@ void RGBController_Nollie::SetupZones()
|
|||
channels_num = NOLLIE28_12_CHANNELS_NUM;
|
||||
ch_led_num = NOLLIE_12_CH_LED_NUM;
|
||||
break;
|
||||
case NOLLIE8_PID:
|
||||
channels_num = NOLLIE8_CHANNELS_NUM;
|
||||
ch_led_num = NOLLIE_8_CH_LED_NUM;
|
||||
break;
|
||||
default:
|
||||
channels_num = NOLLIE8_CHANNELS_NUM;
|
||||
ch_led_num = NOLLIE_FS_CH_LED_NUM;
|
||||
|
|
@ -173,7 +177,7 @@ void RGBController_Nollie::DeviceUpdateLEDs()
|
|||
{
|
||||
ChSort.push_back(channel);
|
||||
}
|
||||
else if(channel == 15 || channel == 31)
|
||||
else if(channel == NOLLIE32_FLAG1_CHANNEL || channel == NOLLIE32_FLAG2_CHANNEL)
|
||||
{
|
||||
ChSort.push_back(channel);
|
||||
}
|
||||
|
|
@ -208,7 +212,6 @@ void RGBController_Nollie::UpdateZoneLEDs(int zone)
|
|||
void RGBController_Nollie::UpdateSingleLED(int led)
|
||||
{
|
||||
unsigned int channel = leds_channel[led];
|
||||
|
||||
controller->SetChannelLEDs(channel_index[channel], zones[channel].colors, zones[channel].leds_count);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,10 @@
|
|||
#include "RGBController.h"
|
||||
#include "NollieController.h"
|
||||
|
||||
#define NOLLIE_12_CH_LED_NUM 42
|
||||
#define NOLLIE_8_CH_LED_NUM 126
|
||||
#define NOLLIE_HS_CH_LED_NUM 256
|
||||
#define NOLLIE_FS_CH_LED_NUM 525
|
||||
#define NOLLIE_12_CH_LED_NUM 42
|
||||
|
||||
#define NOLLIE32_CHANNELS_NUM 32
|
||||
#define NOLLIE32_PID 0x4714
|
||||
|
|
@ -23,16 +24,21 @@
|
|||
#define NOLLIE16_PID 0x4716
|
||||
#define NOLLIE16_VID 0x3061
|
||||
|
||||
#define NOLLIE8_CHANNELS_NUM 8
|
||||
#define NOLLIE8_PID 0x1F01
|
||||
#define NOLLIE8_VID 0x16D2
|
||||
|
||||
#define NOLLIE28_12_CHANNELS_NUM 12
|
||||
#define NOLLIE28_12_VID 0x16D2
|
||||
#define NOLLIE28_12_PID 0x1616
|
||||
#define NOLLIE28_L1_PID 0x1617
|
||||
#define NOLLIE28_L2_PID 0x1618
|
||||
|
||||
#define NOLLIE8_CHANNELS_NUM 8
|
||||
|
||||
#define NOLLIE32_MOS_TRIGGER_CH 26
|
||||
#define NOLLIE32_MOS_TRIGGER_LED 20
|
||||
#define NOLLIE32_FLAG1_CHANNEL 15
|
||||
#define NOLLIE32_FLAG2_CHANNEL 31
|
||||
|
||||
|
||||
class RGBController_Nollie : public RGBController
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue