GithubHelp home page GithubHelp logo

ttcontroller's People

Contributors

moshimoshi0 avatar mrbradford avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ttcontroller's Issues

ColorModifiers won't instantiate

Describe the issue
Any use of the new ColorModifiers causes a crash on startup. The error suggests that it can't find the inherited class for any of the modifier types - it's trying to instantiate the ModifierBase class. I've tested this with all modifier types with various config parameters (I've included one config.json below).

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.wow64fre.19h1_release.190318-1202]
»        Build: 0.11.0-beta+Branch.master.Sha.9f1e13bdf2ee8be75343d4c8276187c3a50617e2
»
-------------------------------
Applications
-------------------------------
»
»
-------------------------------
HID
-------------------------------
»
»  [0x264a, 0x1fa5]: \\?\hid#vid_264a&pid_1fa5#8&70563ff&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»  [0x264a, 0x1fa6]: \\?\hid#vid_264a&pid_1fa6#9&2db26cf4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»  [0x264a, 0x1fa7]: \\?\hid#vid_264a&pid_1fa7#9&d1809eb&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8101
»        Version: 2.0.3
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 32, Rpm: 568, Unknown: 255]
»                        Identifier: [9802, 8101, 1]
»                2:
»                        Data: [PortId: 2, Speed: 32, Rpm: 578, Unknown: 255]
»                        Identifier: [9802, 8101, 2]
»                3:
»                        Data: [PortId: 3, Speed: 32, Rpm: 570, Unknown: 255]
»                        Identifier: [9802, 8101, 3]
»                4:
»                        Data: [PortId: 4, Speed: 32, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 4]
»                5:
»                        Data: [PortId: 5, Speed: 32, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8102
»        Version: 2.0.3
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 32, Rpm: 573, Unknown: 255]
»                        Identifier: [9802, 8102, 1]
»                2:
»                        Data: [PortId: 2, Speed: 32, Rpm: 580, Unknown: 255]
»                        Identifier: [9802, 8102, 2]
»                3:
»                        Data: [PortId: 3, Speed: 32, Rpm: 554, Unknown: 255]
»                        Identifier: [9802, 8102, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8103
»        Version: 2.0.2
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 32, Rpm: 571, Unknown: 255]
»                        Identifier: [9802, 8103, 1]
»                2:
»                        Data: [PortId: 2, Speed: 32, Rpm: 551, Unknown: 255]
»                        Identifier: [9802, 8103, 2]
»                3:
»                        Data: [PortId: 3, Speed: 32, Rpm: 578, Unknown: 255]
»                        Identifier: [9802, 8103, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8103, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8103, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 38.0 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 32.0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 22.0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 28.0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 55.0 °C
»
»  Intel Core i7-9700K:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 41.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 39.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 41.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 53.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 37.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 39.0 °C
»                CPU Core #7 (/intelcpu/0/temperature/6): 37.0 °C
»                CPU Core #8 (/intelcpu/0/temperature/7): 37.0 °C
»                CPU Package (/intelcpu/0/temperature/8): 53.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/9): 59.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/10): 61.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/11): 59.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/12): 47.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/13): 63.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/14): 61.0 °C
»                CPU Core #7 Distance to TjMax (/intelcpu/0/temperature/15): 63.0 °C
»                CPU Core #8 Distance to TjMax (/intelcpu/0/temperature/16): 63.0 °C
»                Core Max (/intelcpu/0/temperature/17): 53.0 °C
»                Core Average (/intelcpu/0/temperature/18): 40.5 °C
»
»  NVIDIA GeForce RTX 2070 SUPER:
»        Temperature:
»                GPU Core (/gpu-nvidia/0/temperature/0): 34.0 °C
»
»  WDS100T3X0C-00SJG0:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 45.0 °C
»
»  CT2000MX500SSD1:
»        Temperature:
»                Temperature (/ssd/0/temperature/0): 36.0 °C
»
-------------------------------
Press any key to continue...

Current configuration

{
	"Profiles": [
		{
			"Name": "Default",
			"Ports": [
				[ 9802, 8101, 1 ],
				[ 9802, 8101, 2 ],
				[ 9802, 8101, 3 ],
				[ 9802, 8101, 4 ],
				[ 9802, 8101, 5 ],

				[ 9802, 8102, 1 ],
				[ 9802, 8102, 2 ],
				[ 9802, 8102, 3 ],

				[ 9802, 8103, 1 ],
				[ 9802, 8103, 2 ],
				[ 9802, 8103, 3 ]
			],
			"SpeedControllers": [
				{
					"Type": "PwmSpeedController",
					"Config": {
						"CurvePoints": [
							[ 30, 25 ],
							[ 45, 30 ],
							[ 50, 35 ],
							[ 55, 50 ],
							[ 65, 75 ],
							[ 75, 100 ]
						],
						"Sensors": [ "/intelcpu/0/temperature/8" ],
						"Trigger": {
							"Type": "AlwaysTrigger"
						}
					}
				}
			],
			"Effects": [
				{
					"Type": "RazerConnectEffect",
					"Config": {
						"Trigger": {
							"Type": "AlwaysTrigger"
						},
						"Colors": [
							[ 255, 0, 0 ],
							[ 255, 255, 0 ],
							[ 255, 255, 255 ],
							[ 0, 255, 255 ],
							[ 0, 0, 255 ],
							[ 0, 255, 0 ],
							[ 255, 128, 0 ],
							[ 255, 0, 128 ],
							[ 128, 255, 255 ],
							[ 0, 128, 255 ],
							[ 128, 0, 255 ],
							[ 0, 255, 128 ]
						]
					}
				}
			]
		}
	],
	"ComputerStateProfiles": [
		{
			"StateType": "Shutdown",
			"Ports": [
				[ 9802, 8101, 1 ],
				[ 9802, 8101, 2 ],
				[ 9802, 8101, 3 ],
				[ 9802, 8101, 4 ],
				[ 9802, 8101, 5 ],

				[ 9802, 8102, 1 ],
				[ 9802, 8102, 2 ],
				[ 9802, 8102, 3 ],

				[ 9802, 8103, 1 ],
				[ 9802, 8103, 2 ],
				[ 9802, 8103, 3 ]
			],
			"EffectType": "Full",
			"EffectColors": [
				[ 255, 0, 0 ]
			]
		},
		{
			"StateType": "Suspend",
			"Ports": [
				[ 9802, 8101, 1 ],
				[ 9802, 8101, 2 ],
				[ 9802, 8101, 3 ],
				[ 9802, 8101, 4 ],
				[ 9802, 8101, 5 ],

				[ 9802, 8102, 1 ],
				[ 9802, 8102, 2 ],
				[ 9802, 8102, 3 ],

				[ 9802, 8103, 1 ],
				[ 9802, 8103, 2 ],
				[ 9802, 8103, 3 ]
			],
			"EffectType": "Full",
			"EffectColors": [
				[ 0, 0, 0 ]
			]
		}

	],
	"PortConfigs": [
		{
			"Ports": [
				[ 9802, 8101, 1 ],
				[ 9802, 8101, 2 ],
				[ 9802, 8101, 3 ]
			],
			"Config": {
				"Name": "Side Fans",
				"ColorModifiers": [
				]
			}
		},
		{
			"Ports": [
				[ 9802, 8102, 1 ],
				[ 9802, 8102, 2 ],
				[ 9802, 8102, 3 ]
			],
			"Config": {
				"Name": "Top Fans",
				"LedRotation": [ 2 ],
				"LedReverse": [ false ],
				"LedCountHandling": "Copy"
			}
		},
		{
			"Ports": [
				[ 9802, 8103, 1 ],
				[ 9802, 8103, 2 ],
				[ 9802, 8103, 3 ]
			],
			"Config": {
				"Name": "Bottom Fans",
				"LedRotation": [ 11 ],
				"LedReverse": [ true ],
				"LedCountHandling": "Copy"
			}
		},
		{
			"Ports": [
				[ 9802, 8101, 4 ]
			],
			"Config": {
				"DeviceType": "FloeRiing",
				"Name": "CPU",
				"LedRotation": [ 2 ],
				"LedReverse": [ false ],
				"LedCountHandling": "Lerp"
			}
		},
		{
			"Ports": [
				[ 9802, 8101, 5 ]
			],
			"Config": {
				"Name": "RAM",
				"LedRotation": [],
				"LedReverse": [ false ],
				"LedCountHandling": "Copy"
			}
		}
	],
	"SensorConfigs": [
		{
			"Sensors": [ "/intelcpu/0/temperature/8" ],
			"Config": {
				"CriticalValue": 90
			}
		}
	]
}

Add Battlestation 20 desk LED controller support

I'm using a Thermaltake Battlestation 20 desk which has a LED controller built in that's AFAIK identical to the Riing Plus controller.
I installed TTController 0.10.0 alpha and I'm able to manage the service (install successfully, start/stop/restart) but I can't select "Debug" to get information about my connected controller.
Using TT iTake software I can control the LEDs without a problem.

Any idea what I'm doing wrong? I understand the default config file is empty but I thought I can get the necessary controller information from the debug mode...

faulty color mapping in Razer Studio

Chroma Connect to Razer Synapse basically works, im able to see the TT Controller Plugin in chroma studio.
But the mapping to my LEDs of the fans (RiingQuad as well as Riing Trio) is wrong, since only about a quarter of the LEDs are lit up in the outer rim of each fan.

Also im not sure what exactly the value "Layer" is doing

{
  "Profiles": [
	{
		"Name": "Default",
		"Ports": [
			[9802, 8800, 1],
			[9802, 8800, 2],
			[9802, 8800, 3],
			[9802, 8800, 4],
			[9802, 8800, 5],
			[9802, 8801, 1],
			[9802, 8801, 2],
			[9802, 8801, 3],
			[9802, 8801, 4],
			[9802, 8801, 5]
		],

		"SpeedControllers": [
		
			{
			  "Type": "PwmSpeedController", 
			  "Config": {
				"CurvePoints": [
				  [20, 0],
				  [30, 20],
				  [40, 25],
				  [50, 30],
				  [60, 45],
				  [70, 65],
				  [80, 100]
				],
				"Sensors": ["/amdcpu/0/temperature/2"],
				"Trigger": {
				  "Type": "AlwaysTrigger"
				}
			  }
        }
		
		],
		"Effects": [
				
			{
			  "Type": "RazerConnectEffect",
			  "Config": {
				"Layer": "Custom",

				"ColorGenerationMethod": "PerPort",
				"Trigger": {
				
					"Type": "AlwaysTrigger"
				
				}
			  }
			},
			
			
		
		]
}
  ],
  "ComputerStateProfiles": [
  
	{
	"StateType":  "Boot",
	"Ports": [
	
		[9802, 8800, 1],
		[9802, 8800, 2],
		[9802, 8800, 3],
		[9802, 8800, 4],
		[9802, 8800, 5],
		[9802, 8801, 1],
		[9802, 8801, 2],
		[9802, 8801, 3],
		[9802, 8801, 4],
		[9802, 8801, 5]
	
	],
	"Speed": 50,
	"EffectType": "PerLed",
	"Color": {
		"Full": [255, 0, 0]
		}
	}
  
  ],
  "PortConfigs": [
  
	{
	  "Ports": [
	  
		[9802, 8800, 1],
		[9802, 8800, 2],
		[9802, 8800, 3]
	  
	  ],
	  "Config": {
		"Name": "Bottom Fans",
		"DeviceType": "RiingQuad",
		"IgnoreColorCache": true,
		"IgnoreSpeedCache": true
	  }
	},
	
	{
	  "Ports": [
	  
		[9802, 8800, 4],
		[9802, 8800, 5],
		[9802, 8801, 1]
	  
	  ],
	  "Config": {
		"Name": "Side Fans",
		"DeviceType": "RiingQuad",
		"IgnoreColorCache": true,
		"IgnoreSpeedCache": true
	  }
	},
	
	{
	  "Ports": [
	  
		[9802, 8801, 2],
		[9802, 8801, 3],
		[9802, 8801, 4]
	  
	  ],
	  "Config": {
		"Name": "Top Fans",
		"DeviceType": "RiingTrio",
		"IgnoreColorCache": true,
		"IgnoreSpeedCache": true
	  }
	},
	
	{
	  "Ports": [
	  
		[9802, 8801, 5]
		
	  
	  ],
	  "Config": {
		"Name": "Back Fan",
		"DeviceType": "RiingTrio",
		"IgnoreColorCache": true,
		"IgnoreSpeedCache": true
	  }
	}
	
  
  ],
  "SensorConfigs": [
  
	{
	  "Sensors": ["/amdcpu/0/temperature/2"],
	  "Config": {
		"Offset": 0,
		"CriticalValue": 85
	  }
	}
  
  ]
}

TT Toughram RGB support

Describe the feature you'd like
Is there any way Thermaltake's RAM RGB lighting could be controlled and/or synced with TTController? I have four sticks of TOUGHRAM RGB. Currently, I'm using G.Skill's Trident Z Lighting Control software since it allows me to set a color/effect that persists even when the software closes. Thermaltake's own software defaults back to rainbow upon closing and introduces lag into my system. The memory sticks also work with my motherboard's (Gigabyte) RGB Fusion software, but it is very limited. Ideally, if it could be controlled via TTController and synced with another control profile if desired, that would be the best-case scenario.

Configuration Help - RazerConnect isn't working

I've managed to get everything working except the Razer Sync, when loading the config it sets all of the fans to the correct colour, but only uses 4/5 LEDs per fan? I've set the LED count and to Lerp/Nearest/Copy/Wrap the colour but none seem to resolve the issue.

Also it seems 4 fans on my second controller automatically change back to the default rainbow wave after a few seconds of loading the config? How can I stop this, I do not have the default TT RGB software installed on my PC.

These are the fans playing up;
[9802, 8502, 1]
[9802, 8502, 2]
[9802, 8502, 3]
[9802, 8502, 4]

Also, if possible would you be able to add support to sync the RGB on the TForce RAM like the crappy TT RGB app does?

Thanks in advance,
Jack


Hardware info

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.amd64fre.19h1_release.190318-1202]
»        Build: 0.10.0-alpha+Branch.master.Sha.a826afd7df70a522c78f4785f357baa124b6a937
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Trio
»        VendorId: 9802
»        ProductId: 8501
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 49, Rpm: 770, Unknown: 255]
»                        Identifier: [9802, 8501, 1]
»                2:
»                        Data: [PortId: 2, Speed: 49, Rpm: 799, Unknown: 255]
»                        Identifier: [9802, 8501, 2]
»                3:
»                        Data: [PortId: 3, Speed: 49, Rpm: 760, Unknown: 255]
»                        Identifier: [9802, 8501, 3]
»                4:
»                        Data: [PortId: 4, Speed: 25, Rpm: 479, Unknown: 255]
»                        Identifier: [9802, 8501, 4]
»                5:
»                        Data: [PortId: 5, Speed: 25, Rpm: 470, Unknown: 255]
»                        Identifier: [9802, 8501, 5]
»        Available effect types: PerLed
»  Name: Riing Trio
»        VendorId: 9802
»        ProductId: 8502
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 25, Rpm: 496, Unknown: 255]
»                        Identifier: [9802, 8502, 1]
»                2:
»                        Data: [PortId: 2, Speed: 25, Rpm: 509, Unknown: 255]
»                        Identifier: [9802, 8502, 2]
»                3:
»                        Data: [PortId: 3, Speed: 25, Rpm: 526, Unknown: 255]
»                        Identifier: [9802, 8502, 3]
»                4:
»                        Data: [PortId: 4, Speed: 25, Rpm: 520, Unknown: 255]
»                        Identifier: [9802, 8502, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8502, 5]
»        Available effect types: PerLed
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6793D:
»        Temperature:
»                CPU Core (/lpc/nct6793d/temperature/0): 48.0 °C
»                Temperature #1 (/lpc/nct6793d/temperature/1): 36.0 °C
»                Temperature #2 (/lpc/nct6793d/temperature/2): 28.0 °C
»                Temperature #4 (/lpc/nct6793d/temperature/4): 44.0 °C
»                Temperature #5 (/lpc/nct6793d/temperature/5): 14.0 °C
»                Temperature #6 (/lpc/nct6793d/temperature/6): 19.0 °C
»
»  Intel Core i7-6700K:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 43.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 43.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 45.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 44.0 °C
»                CPU Package (/intelcpu/0/temperature/4): 45.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/5): 57.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/6): 57.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/7): 55.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/8): 56.0 °C
»                Core Max (/intelcpu/0/temperature/9): 45.0 °C
»                Core Average (/intelcpu/0/temperature/10): 43.8 °C
»
»  NVIDIA GeForce GTX 1080:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 45.0 °C
»
»  ST4000DM004-2CV104:
»        Temperature:
»                Temperature (/hdd/1/temperature/0): 36.0 °C
»
»  ADATA SX8200PNP:
»        Temperature:
»                Temperature (/nvme/0/temperature/0): 33.0 °C

Current configuration

{
  "Profiles": [
  
	{
	
		"Name": "Case Fans",
		"Ports": [
		
			[9802, 8501, 4],
			[9802, 8501, 5],
			[9802, 8502, 1],
			[9802, 8502, 2],
			[9802, 8502, 3],
			[9802, 8502, 4],
			
		],
		
		"SpeedControllers": [
		
			{
			
				"Type": "StaticSpeedController",
				"Config": {
				
					"Speed": 25,
					"Trigger": { 
					
						"Type": "AlwaysTrigger",
					
					},
				
				},
			
			},
		
		],
		
		"Effects": [
		
			{
			
				"Type": "RazerConnectEffect",
				"Config": {
				
					"Trigger": { 
					
						"Type": "AlwaysTrigger",
					
					},
				
				},
			
			},
		
		],
		
		"PortConfigs": [
		
			{

				"Ports": [
				
					[9802, 8501, 4],
					[9802, 8501, 5],
					[9802, 8502, 1],
					
				],
				"Config": {
				
					"LedCount": 30,
					"LedCountHandling": "Lerp",
				
				},
			
			},
			
			{

				"Ports": [
				
					[9802, 8502, 2],
					[9802, 8502, 3],
					[9802, 8502, 4],
					
				],
				"Config": {
				
					"LedCount": 18,
					"LedCountHandling": "Lerp",
				
				},
			
			},
		 
		],
		
		"SensorConfigs": [
		
			{
			
			  "Sensors": ["/intelcpu/0/temperature/9"],
			  "Config": {
			  
				"CriticalValue": 90,
				
			  },
			  
			},
		],	
			
	
	},
  
	{
	
		"Name": "Radiators - CPU Temp",
		"Ports": [
		
			[9802, 8501, 1],
			[9802, 8501, 2],
			[9802, 8501, 3],
			
		],
		
		"SpeedControllers": [
		
			{
			
				"Type": "PwmSpeedController",
				"Config": {
				
					"CurvePoints": [
	
						[20, 20],
						[25, 25],
						[30, 25],
						[35, 30],
						[40, 45],
						[45, 50],
						[50, 75],
						[55, 85],
						[60, 90],
						[70, 100],
						[80, 100],
						[90, 100],
						[100, 100],
						[110, 100],
					
					],
					"Sensors": ["/intelcpu/0/temperature/9"],
					"Trigger": { 
					
						"Type": "AlwaysTrigger",
					
					},
				
				},
			
			},
		
		],
		
		"Effects": [
		
			{
			
				"Type": "RazerConnectEffect",
				"Config": {
				
					"Trigger": { 
					
						"Type": "AlwaysTrigger",
					
					},
				
				},
			
			},
		
		],
		
		"PortConfigs": [
		
			{

				"Ports": [
				
					[9802, 8501, 1],
					[9802, 8501, 2],
					[9802, 8501, 3],
					
				],
				"Config": {
				
					"LedCount": 30,
					"LedCountHandling": "Lerp",
				
				},
			
			},
		 
		],		
		
		"SensorConfigs": [
		
			{
			
			  "Sensors": ["/intelcpu/0/temperature/9"],
			  "Config": {
			  
				"CriticalValue": 90,
				
			  },
			  
			},
		],	
	
	},
  
  ],
  
  "CpuSensorsEnabled": true,
  
}

Failed to start the service

Prerequisites

Replace [ ] to [x] to check

  • The controller is recognized without issues in the official software
  • I made sure no official software or any other software that can communicate with the controllers (e.g. Aida64) was running when the issue with the service occurred

Describe the issue
when i try to start the service, i receive a timeout, se attachements.
Can you please help me, to figure out what i am doing wrong ?
Thx a lot and best regards from munich
Boris

current.log
Error Screenshot

Add support for boot profiles for Level 20 Desk controller

Describe your desired configuration
One thing that annoys me with the Battlestation 20 RGB desk LEDs is that when the PC the LED controller is plugged in to (via USB) is powered down or in sleep mode the LEDs always play their default rainbow animation. The moment the PC is back running and TTController (or TT iTAKE software) starts the desired config is loaded.
I'm wondering if the ComputerStateProfile config in TTController can help with that?
Can I set "StateType": "Shutdown" or "Suspend" and configure the LEDs off for when the PC/service is show down/suspended?

Hardware info

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.amd64fre.19h1_release.190318-1202]
»        Build: 0.10.0-alpha.6+Branch.develop.Sha.78de8322289c75658a5445f07b31602b8698234e
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Level 20 Desk
»        VendorId: 9802
»        ProductId: 2001
»        Ports:
»                0:
»                        Data:
»                        Identifier: [9802, 2001]
»        Available effect types: PerLed
»
-------------------------------
Sensors
-------------------------------
»
»  Intel Core i7-8750H:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 59.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 58.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 60.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 56.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 52.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 53.0 °C
»                CPU Package (/intelcpu/0/temperature/6): 60.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/7): 41.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/8): 42.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/9): 40.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/10): 44.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/11): 48.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/12): 47.0 °C
»                Core Max (/intelcpu/0/temperature/13): 60.0 °C
»                Core Average (/intelcpu/0/temperature/14): 56.3 °C
»
»  NVIDIA:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 0.0 °C
»
»  :
»        Temperature:
»                Temperature (/nvme/0/temperature/0): 0.0 °C
»
-------------------------------
Press any key to continue...

Current configuration

  "Profiles": [
    {
      "Name": "Desk",
      "Ports": [
        [9802, 2001]
      ],
      "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
			}
		  }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 2001]],
      "Config": {
        "DeviceType": "Level20Desk",
		"LedCountHandling": "Lerp",
		"IgnoreColorCache": true
      }
    }
  ]
} 

Automatic profile switching

@MoshiMoshi0 thanks a bunch for making this program! It is an awesome improvement over the trash stock thermaltake software.

I wonder if it would be possible to add automatic profile switching based on time of day. Late at night I'd like to have my leds shut off and have my fans adapt a less aggressive curve.

Currently I just have two config files, one with lights on and one with lights off, and I manually stop the service and switch the config files to enable or disable lights.

Cheers!

Unable to find controller

Describe the issue
Unable to find my Pure Plus 12 controller, I am trying to configure the software. I however am unable to find my attached controller. It works fine using to original software and I don't have it running at the same time. I have tried restarting/replugging. But nothing seems to help.

Debug report
10:05:17.3469: Found plugin assembly for type IControllerDefinition: TTController.Plugin.DpsgController [0.10.0.0]
10:05:17.3469: Loading plugin assembly: TTController.Plugin.DpsgController [0.10.0.0]
10:05:17.3469: Found plugin assembly for type IControllerDefinition: TTController.Plugin.RiingController [0.10.0.0]
10:05:17.3469: Loading plugin assembly: TTController.Plugin.RiingController [0.10.0.0]
10:05:17.3469: Found plugin assembly for type IControllerDefinition: TTController.Plugin.RiingPlusController [0.10.0.0]
10:05:17.3469: Loading plugin assembly: TTController.Plugin.RiingPlusController [0.10.0.0]
10:05:17.3609: Found plugin assembly for type IControllerDefinition: TTController.Plugin.RiingTrioController [0.10.0.0]
10:05:17.3609: Loading plugin assembly: TTController.Plugin.RiingTrioController [0.10.0.0]
10:05:17.3609: Creating Device Manager...
10:05:17.3769: Searching for "Dpsg" controllers
10:05:17.3769: Searching for "Riing" controllers
10:05:17.3769: Searching for "Riing Plus" controllers
10:05:17.3769: Searching for "Riing Trio" controllers
10:05:17.3769: Disposing Device Manager...
10:05:17.3769: Disposed devices: 0

Current configuration
3x Pure Plus 12 fans with 1 controller

Razer support

I would be great if a module could be created to enable sync with Razer Chroma, just like the crappy official TT app

Battlestation 20 RGB desk: RazerConnectEffect only works for first LED segment

Describe the issue
When I use the RazerConnectEffect to sync up the LEDs in my Battlestation 20 RGB desk it generally works and shows the colors/effects as configured in the Razer Synapse software but only for the first LED segment, the rest is disabled/blank:
IMG_20200525_142805

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.amd64fre.19h1_release.190318-1202]
»        Build: 0.10.0-alpha.3+Branch.develop.Sha.a03efa6cfb53fdf2d9b260be07d24f5fbad9fc81
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Level 20 Desk
»        VendorId: 9802
»        ProductId: 2001
»        Ports:
»                0:
»                        Data:
»                        Identifier: [9802, 2001]
»        Available effect types: PerLed
»
-------------------------------
Sensors
-------------------------------
»
»  Intel Core i7-8750H:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 53.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 51.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 61.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 53.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 51.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 54.0 °C
»                CPU Package (/intelcpu/0/temperature/6): 61.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/7): 47.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/8): 49.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/9): 39.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/10): 47.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/11): 49.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/12): 46.0 °C
»                Core Max (/intelcpu/0/temperature/13): 61.0 °C
»                Core Average (/intelcpu/0/temperature/14): 53.8 °C
»
»  NVIDIA:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 0.0 °C
»
»  :
»        Temperature:
»                Temperature (/nvme/0/temperature/0): 0.0 °C
»
-------------------------------
Press any key to continue...

Current configuration

{
  "Profiles": [
    {
      "Name": "Desk",
      "Ports": [
        [9802, 2001]
      ],
      "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
			}
		  }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 2001]],
      "Config": {
        "DeviceType": "Level20Desk"
      }
    }
  ]
} 

Pacific W5/W6 support

Pacific W5/W6 is currently not implemented, if you have this device, please see below how to contribute.

Data needed to implement Pacific W5/W6:

  • Wireshark dump
  • "Debug report"

Make sure the service and the official "TT RGB PLUS"/"DPS POWER"/"NeonMaker" software is not running at the same time.

How to provide wireshark dump:
  1. Install Wireshark with usbpcap (you will be asked if you want to install usbpcap in the installer)
  2. Start Wireshark
  3. Double click on USBPCap1 capture on the main screen
  4. Start the official software (without the TTController service running)
  5. After 10s stop the capture in wireshark using the red square button
  6. Save and upload the .pcap dump using File -> Save As
How to provide "debug report":
  1. Stop the official software
  2. Double click on TTController.Service.exe
  3. Go to "Main Menu -> Debug -> Report"
  4. Post the output preferably specifying what device is connected to what port

TTController Crashing, Requiring Manual Reinstall

Describe the issue
Every time I boot up my computer, the TTController isn't working. I run the program to see what it is, and it crashes either when stopping, or when I run in-console. Every time this happens I need to delete all the files in the folder and unzip the build, and reinstall. However, there's one file that won't delete, LibreHardwareMonitorLib.sys. In order to delete it, I have to rename it to a .txt, reboot the computer, and then delete it. Otherwise it always says that it's running. I have the crash report here:
image
I've also noticed that the controller stops being detected upon reboot. I think this might be part of, if not all of the cause. However, when I reinstall it detects it just fine again.

EDIT: Just attempted to reboot my computer without uninstalling or reinstalling or doing anything to the files, and now the fans are working exactly how they should. Maybe the program is loading before the actual controller on the USB is detected? I don't know, not an expert.

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 2004 [19041.1.x86fre.vb_release.191206-1406]
»        Build: 0.10.0-alpha.30+Branch.develop.Sha.4e5958c3d773d03d6565bdf4558213ca6cba58ab
»
-------------------------------
Applications
-------------------------------
»
»
-------------------------------
HID
-------------------------------
»
»
-------------------------------
Controllers
-------------------------------
»
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 29.0 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 29.0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 14.0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 9.0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 49.0 °C
»
»  Intel Core i7-8700:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 32.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 34.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 33.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 31.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 32.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 35.0 °C
»                CPU Package (/intelcpu/0/temperature/6): 35.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/7): 68.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/8): 66.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/9): 67.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/10): 69.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/11): 68.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/12): 65.0 °C
»                Core Max (/intelcpu/0/temperature/13): 35.0 °C
»                Core Average (/intelcpu/0/temperature/14): 32.8 °C
»
»  NVIDIA GeForce RTX 2080 SUPER:
»        Temperature:
»                GPU Core (/gpu-nvidia/0/temperature/0): 34.0 °C
»
»  Force MP510:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 36.0 °C
»
»  WDC WD20EZAZ-00GGJB0:
»        Temperature:
»                Temperature (/hdd/0/temperature/0): 24.0 °C
»
-------------------------------

Current configuration

{
  "Profiles": [
    {
      "Name": "Front Intake",
      "Ports": [
        [9802, 8800, 1],
        [9802, 8800, 2]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [30, 20],
              [45, 40],
              [55, 60],
              [65, 75],
              [70, 100]
            ],
            "Sensors": ["/intelcpu/0/temperature/14"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/intelcpu/0/temperature/14"],
            "ColorGradient": [
              [20, [255, 1, 1]],
              [40, [255, 1, 1]],
              [56, [1, 255, 48]],
              [72, [1, 255, 140]]
            ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    },
    {
      "Name": "Rear Exhaust",
      "Ports": [
        [9802, 8800, 3]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [30, 20],
              [55, 60],
              [75, 100]
            ],
            "Sensors": ["/gpu-nvidia/0/temperature/0"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/gpu-nvidia/0/temperature/0"],
            "ColorGradient": [
              [20, [255, 255, 1]],
              [40, [255, 255, 1]],
              [60, [128, 255, 1]],
              [75, [1, 255, 1]]
            ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [],
  "PortConfigs": [
  {
    "Ports": [
      [9802, 8800, 1],
      [9802, 8800, 2],
      [9802, 8800, 3]
    ],
    "Config": {
      "DeviceType": "RiingQuad",
      "IgnoreColorCache": true
  }
} 
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/intelcpu/0/temperature/14"],
      "Config": {
        "CriticalValue": 90
      }
    },
    {
      "Sensors": ["/gpu-nvidia/0/temperature/0"],
      "Config": {
        "CriticalValue": 90
      }
    }
  ],

  "CpuSensorsEnabled": true,
  "GpuSensorsEnabled": true,
  "StorageSensorsEnabled": false,
  "MotherboardSensorsEnabled": true,
  "MemorySensorsEnabled": true,
  "NetworkSensorsEnabled": false,
  "ControllerSensorsEnabled": true,

  "SensorTimerInterval": 500,
  "DeviceSpeedTimerInterval":1000,
  "DeviceRgbTimerInterval": 32,
  "DebugTimerInterval": 2500
}

Service hangs when initializing first gen Riing controllers

Application: RiingPlus.Service.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ComponentModel.Win32Exception
at System.ServiceProcess.ServiceProcessInstaller.GetAccountSid(System.String)
at System.ServiceProcess.ServiceProcessInstaller.Install(System.Collections.IDictionary)
at System.Configuration.Install.Installer.Install(System.Collections.IDictionary)
at System.Configuration.Install.Installer.Install(System.Collections.IDictionary)
at System.Configuration.Install.AssemblyInstaller.Install(System.Collections.IDictionary)
at System.Configuration.Install.Installer.Install(System.Collections.IDictionary)
at System.Configuration.Install.TransactedInstaller.Install(System.Collections.IDictionary)

Exception Info: System.InvalidOperationException
at System.Configuration.Install.ManagedInstallerClass.InstallHelper(System.String[])
at RiingPlus.Service.Program.InstallService()
at RiingPlus.Service.Program.ManageService()
at RiingPlus.Service.Program.Main(System.String[])

Managed to install from the zip file. But after login it says "Waiting for service". This is the log from the event viewer. Is there any fix to this ? Thanks for any help in advance

Razer Chroma Connect

Hi, Razer chroma doesn't sync. Could you helping me?

- Windows 10 Pro

- Synapse at Last Version

- Chroma Connect Plugin (on the synapse) it's ok but i don't know how to config the effect.

My config file bellow:

{

  "Profiles": [
    {
      "Name": "Default",
      "Guid": "10af9207-7e67-4581-9d13-506cad5d53c1",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3],
        [9802, 8101, 4],
        [9802, 8101, 5],
        [9802, 8102, 1],
        [9802, 8102, 2],
        [9802, 8102, 3],
        [9802, 8102, 4],
        [9802, 8102, 5]
      ],
      "SpeedControllers": [
        {
          "Type": "StaticSpeedController", 
          "Config": {
            "Speed": 50,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
 "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/intelcpu/0/temperature/8"],
      "Config": {
        "CriticalValue": 70
      }
    }
  ]
}

Effect blending

Describe the feature you'd like
One other cool idea would be to let the user combine music with spectrum. Music would work normally as intended while the color changes at the same time. For now with razer synapse it's easy to achieve something like this but it would be cool if no additional programs were needed.

Add "bar" display mode to SoundEffect; Add ability to delay effects

Describe your desired configuration
Hi there, your work looks incredible especially because you do it for free. But I have a couple of questions for the sound effect:
-Is it possible to implement something similar to thermaltake's gaming mode?
-In the included sound effect mode everything works just great but some leds look very sensitive sometimes(Not talking about ScalingFactor). Also is it possible to make it look like just a static color that changes gradient without the extra stuff?
-Is it possible to add a small delay to a specific fan to make aurora look a bit different between them?
-How can I control each one of the leds seperately?

Hardware info

Info
-------------------------------
?
?        OS: Windows 10 Enterprise 2009 [19041.1.amd64fre.vb_release.191206-1406]
?        Build: 0.11.0-beta+Branch.master.Sha.42768ba987b22e18ff8cdd114f754e5f7ce16d72
?
-------------------------------
Applications
-------------------------------
?
?
-------------------------------
HID
-------------------------------
?
?  [0x264a, 0x2260]: \\?\hid#vid_264a&pid_2260#8&56eb47c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
?
-------------------------------
Controllers
-------------------------------
?
?  Name: Riing Quad
?        VendorId: 9802
?        ProductId: 8800
?        Version: 3.0.3
?        Ports:
?                1:
?                        Data: [PortId: 1, Speed: 36, Rpm: 683, Unknown: 255]
?                        Identifier: [9802, 8800, 1]
?                2:
?                        Data: [PortId: 2, Speed: 36, Rpm: 668, Unknown: 255]
?                        Identifier: [9802, 8800, 2]
?                3:
?                        Data: [PortId: 3, Speed: 36, Rpm: 671, Unknown: 255]
?                        Identifier: [9802, 8800, 3]
?                4:
?                        Data: [PortId: 4, Speed: 30, Rpm: 0, Unknown: 255]
?                        Identifier: [9802, 8800, 4]
?                5:
?                        Data: [PortId: 5, Speed: 30, Rpm: 0, Unknown: 255]
?                        Identifier: [9802, 8800, 5]
?        Available effect types: PerLed
?
-------------------------------
Sensors
-------------------------------
?
?  Nuvoton NCT6779D:
?        Temperature:
?                CPU (/lpc/nct6779d/temperature/1): 33,0 °C
?                Motherboard (/lpc/nct6779d/temperature/2): 32,0 °C
?                Auxiliary (/lpc/nct6779d/temperature/3): 7,0 °C
?                VRM (/lpc/nct6779d/temperature/4): 29,0 °C
?                AUXTIN2 (/lpc/nct6779d/temperature/5): 22,0 °C
?
?  AMD Ryzen 7 2700:
?        Temperature:
?                Core (Tctl/Tdie) (/amdcpu/0/temperature/2): 32,8 °C
?
?  NVIDIA GeForce GTX 1660 SUPER:
?        Temperature:
?                GPU Core (/gpu-nvidia/0/temperature/0): 33,0 °C
?
?  Samsung SSD 970 EVO Plus 500GB:
?        Temperature:
?                Temperature (/nvme/0/temperature/0): 41,0 °C
?                Temperature 1 (/nvme/0/temperature/6): 41,0 °C
?                Temperature 2 (/nvme/0/temperature/7): 51,0 °C
?

Current configuration

{
  "Profiles": [
    {
      "Name": "FrontRGB1",
	  "Ports": [
		[9802, 8800, 1]
	  ],
	  "SpeedControllers": [
	    {
		  "Type": "DpsgSpeedController",
		  "Config": {
		    "FanMode": "Silent",
			"Trigger": {
			  "Type": "AlwaysTrigger"
			}
		  }
		}
	  ],
	  "Effects": [
        {
	      "Type": "SoundEffect",
          "Config": {
            "UseAverage": true,
			"MinimumFrequency": 4000,
			"MaximumFrequency": 16000,

			"ScalingStrategy": "Linear",
			"ScalingFactor": 4.0,
			"ColorGradient": [
			  [0.0, [0, 0, 0]],
			  [0.75, [255, 255, 255]],
			  [1.0, [255, 0, 0]]
			],
			
            "ColorGenerationMethod": "PerPort",
            "Trigger": {
			  "Type": "AlwaysTrigger"
			}
          }
        }
      ]
	},
	{
      "Name": "FrontRGB2",
	  "Ports": [
		[9802, 8800, 2]
	  ],
	  "SpeedControllers": [
	    {
		  "Type": "DpsgSpeedController",
		  "Config": {
		    "FanMode": "Silent",
			"Trigger": {
			  "Type": "AlwaysTrigger"
			}
		  }
		}
	  ],
	  "Effects": [
        {
	      "Type": "SoundEffect",
          "Config": {
            "UseAverage": false,
			"MinimumFrequency": 500,
			"MaximumFrequency": 4000,

			"ScalingStrategy": "Linear",
			"ScalingFactor": 2.0,
			"ColorGradient": [
			  [0.0, [0, 0, 0]],
			  [0.75, [255, 255, 255]],
			  [1.0, [255, 0, 0]]
			],
			
            "ColorGenerationMethod": "PerPort",
            "Trigger": {
			  "Type": "AlwaysTrigger"
			}
          }
        }
      ]
	},
	{
      "Name": "FrontRGB3",
	  "Ports": [
		[9802, 8800, 3]
	  ],
	  "SpeedControllers": [
	    {
		  "Type": "DpsgSpeedController",
		  "Config": {
		    "FanMode": "Silent",
			"Trigger": {
			  "Type": "AlwaysTrigger"
			}
		  }
		}
	  ],
	  "Effects": [
        {
	      "Type": "SoundEffect",
          "Config": {
            "UseAverage": true,
			"MinimumFrequency": 40,
			"MaximumFrequency": 60,
			"ScalingStrategy": "Sqrt",
			"ScalingFactor": 1.5,
			"ColorGradient": [
			  [0.0, [0, 0, 0]],
			  [0.25, [0, 0, 0]],
			  [1.0, [255, 0, 0]]
			],
			
            "ColorGenerationMethod": "PerPort",
            "Trigger": {
			  "Type": "AlwaysTrigger"
			}
          }
        }
      ]
	}
  ],
  "PortConfigs": [
    {
	  "Ports": [[9802, 8800, 1]],
	  "Config": {
	    "Name": "mpureplus1",
		"DeviceType": "PurePlus",
		"IgnoreColorCache": true,
		"ColorModifiers": [
		  {
		    "Type": "LerpLedColorModifier",
			"Config": {
				"LerpType": "Nearest"
			}
		  }
		]
	  }
	},
	{
	  "Ports": [[9802, 8800, 2]],
	  "Config": {
	    "Name": "mpureplus2",
		"DeviceType": "PurePlus",
		"IgnoreColorCache": true,
		"ColorModifiers": [
		  {
		    "Type": "LerpLedColorModifier"
		  }
		]
	  }
	},
	{
	  "Ports": [[9802, 8800, 3]],
	  "Config": {
	    "Name": "mpureplus3",
		"DeviceType": "PurePlus",
		"IgnoreColorCache": true,
		"ColorModifiers": [
		  {
		    "Type": "LerpLedColorModifier"
		  }
		]
	  }
	}
  ]
}``` (The pasted json looks a bit messed for some reason but it's fully working)

Service configurator GUI

Describe the feature you'd like
A clear and concise description of what you want to happen.

Hi, how much would it cost the developers to build a drop down list (in the menu) to configure the TT controller ?
This would simplify every newbie's hurdle of using this software.

It could be just basic setup to make the script work and for more advanced configs they can learn to code it and add to the already working script.

I'd be interested to pay the developer for this development/feature.

Ports & PortConfig shortcuts or aliases

Describe the feature you'd like
Hi, first I'd like to say thank you for your work on this project. I'm doing my first configuration, so hopefully I don't end up with too many questions-- I see lots of examples out here in the existing issues.

On to the feature request-- would you consider adding the ability to use the Names for defined PortConfigs as an acceptable input to the Ports property? This would make it easy to declare groups of fans using PortConfigs, then manipulate those fans in groups elsewhere in the configuration.

To that same end, it would be great if there were a shortcut to specify all fans-- although I suppose I would just create my own PortConfig for that if names were supported.

Or maybe I'm just missing something? Cheers!

Random Default RGB Configuration

Describe the issue
While the software is running, the RGB lights will sometimes be using my effect configuration. But randomly, almost like the program is disconnecting, the LEDs will start doing the default rainbow spiral, even if the program is running.

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 2004 [19041.1.x86fre.vb_release.191206-1406]
»        Build: 0.10.0-alpha.30+Branch.develop.Sha.4e5958c3d773d03d6565bdf4558213ca6cba58ab
»
-------------------------------
Applications
-------------------------------
»
»
-------------------------------
HID
-------------------------------
»
»  [0x264a, 0x2260]: \\?\hid#vid_264a&pid_2260#7&5ddc87&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Quad
»        VendorId: 9802
»        ProductId: 8800
»        Version: 3.0.3
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 42, Rpm: 816, Unknown: 255]
»                        Identifier: [9802, 8800, 1]
»                2:
»                        Data: [PortId: 2, Speed: 42, Rpm: 777, Unknown: 255]
»                        Identifier: [9802, 8800, 2]
»                3:
»                        Data: [PortId: 3, Speed: 42, Rpm: 794, Unknown: 255]
»                        Identifier: [9802, 8800, 3]
»                4:
»                        Data: [PortId: 4, Speed: 30, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 4]
»                5:
»                        Data: [PortId: 5, Speed: 30, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 5]
»        Available effect types: PerLed
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 37.5 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 37.0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 14.0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 9.0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 49.0 °C
»
»  Intel Core i7-8700:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 41.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 41.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 40.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 42.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 39.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 41.0 °C
»                CPU Package (/intelcpu/0/temperature/6): 42.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/7): 59.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/8): 59.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/9): 60.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/10): 58.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/11): 61.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/12): 59.0 °C
»                Core Max (/intelcpu/0/temperature/13): 42.0 °C
»                Core Average (/intelcpu/0/temperature/14): 40.7 °C
»
»  NVIDIA GeForce RTX 2080 SUPER:
»        Temperature:
»                GPU Core (/gpu-nvidia/0/temperature/0): 40.0 °C
»
»  Force MP510:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 48.0 °C
»
»  WDC WD20EZAZ-00GGJB0:
»        Temperature:
»                Temperature (/hdd/0/temperature/0): 39.0 °C
»
-------------------------------

Current configuration

{
  "Profiles": [
    {
      "Name": "Default",
      "Ports": [
        [9802, 8800, 1],
        [9802, 8800, 2],
        [9802, 8800, 3]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [30, 30],
              [45, 50],
              [55, 60],
              [65, 75],
              [75, 100]
            ],
            "Sensors": ["/intelcpu/0/temperature/14"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/intelcpu/0/temperature/14"],
            "ColorGradient": [
              [20, [255, 16, 16]],
              [40, [255, 16, 16]],
              [60, [16, 16, 16]],
              [75, [16, 255, 16]]
            ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [
    {
      "StateType": "Shutdown",
      "Ports": [
        [9802, 8101, 1]
      ],
      "Speed": 35,
      "Colors": {
        "Full": [255, 0, 0]
      }
    }
  ],
  "PortConfigs": [
  {
    "Ports": [
      [9802, 8800, 1],
      [9802, 8800, 2],
      [9802, 8800, 3]
    ],
    "Config": {
      "DeviceType": "RiingQuad",
      "LedCountHandling": "Wrap"
  }
} 
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/intelcpu/0/temperature/14"],
      "Config": {
        "CriticalValue": 90
      }
    }
  ],

  "CpuSensorsEnabled": true,
  "GpuSensorsEnabled": true,
  "StorageSensorsEnabled": false,
  "MotherboardSensorsEnabled": true,
  "MemorySensorsEnabled": true,
  "NetworkSensorsEnabled": false,
  "ControllerSensorsEnabled": true,

  "SensorTimerInterval": 250,
  "DeviceSpeedTimerInterval":1000,
  "DeviceRgbTimerInterval": 16,
  "DebugTimerInterval": 2500
}

Add support for Riing Quad controller

Describe the issue
Controller is not detected. I am able to use the Thermaltake software just fine.
Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.amd64fre.19h1_release.190318-1202]
»        Build: 0.10.0-alpha+Branch.master.Sha.a826afd7df70a522c78f4785f357baa124b6a937
»
-------------------------------
Controllers
-------------------------------
»
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6791D:
»        Temperature:
»                CPU Core (/lpc/nct6791d/temperature/0): 51.0 °C
»                Temperature #1 (/lpc/nct6791d/temperature/1): 42.5 °C
»                Temperature #2 (/lpc/nct6791d/temperature/2): 113.0 °C
»                Temperature #3 (/lpc/nct6791d/temperature/3): 38.0 °C
»                Temperature #4 (/lpc/nct6791d/temperature/4): 107.0 °C
»                Temperature #5 (/lpc/nct6791d/temperature/5): 104.0 °C
»                Temperature #6 (/lpc/nct6791d/temperature/6): 104.0 °C
»
»  Intel Core i5-4690K:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 47.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 52.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 47.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 51.0 °C
»                CPU Package (/intelcpu/0/temperature/4): 52.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/5): 53.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/6): 48.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/7): 53.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/8): 49.0 °C
»                Core Max (/intelcpu/0/temperature/9): 52.0 °C
»                Core Average (/intelcpu/0/temperature/10): 49.3 °C
»
»  NVIDIA GeForce GTX 970:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 36.0 °C
»
»  SAMSUNG MZHPV128HDGM-00000:
»        Temperature:
»                Temperature (/hdd/0/temperature/0): 37.0 °C
»
»  WDC WD3003FZEX-00Z4SA0:
»        Temperature:
»                Temperature (/hdd/1/temperature/0): 44.0 °C
»
»  WDC WD5001FZWX-00ZHUA0:
»        Temperature:
»                Temperature (/hdd/2/temperature/0): 41.0 °C
»
-------------------------------

Current configuration

{
  "Profiles": [],
  "ComputerStateProfiles": [],
  "PortConfigs": [],
  "SensorConfigs": []
}

Ryzen 5800x and Floe Riing 360

Describe your desired configuration
I am having problems with my Curve Points, as whenever I start the service, all fans immediately spins to 100% and doesn't slow at all. I am unsure if it's a sensor problem, since for some examples I've seen the Sensors: "amdcpu/" or something like it, where I cannot find one like it with the Ryzen 5800x. I will adjust the curve points later.

Hardware info

Info
-------------------------------
»
»        OS: Windows 10 Enterprise 2009 [19041.1.amd64fre.vb_release.191206-1406]
»        Build: 0.11.0-beta+Branch.master.Sha.2b6096e1aeefc2bc0b2e3e715c364bcd849d9ddc
»
-------------------------------
Applications
-------------------------------
»
»
-------------------------------
HID
-------------------------------
»
»  [0x264a, 0x1fb4]: \\?\hid#vid_264a&pid_1fb4#9&c25ecd8&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8116
»        Version: 2.0.2
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 35, Rpm: 636, Unknown: 255]
»                        Identifier: [9802, 8116, 1]
»                2:
»                        Data: [PortId: 2, Speed: 35, Rpm: 624, Unknown: 255]
»                        Identifier: [9802, 8116, 2]
»                3:
»                        Data: [PortId: 3, Speed: 35, Rpm: 619, Unknown: 255]
»                        Identifier: [9802, 8116, 3]
»                4:
»                        Data: [PortId: 4, Speed: 35, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8116, 4]
»                5:
»                        Data: [PortId: 5, Speed: 35, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8116, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 40,0 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 35,0 °C
»                Temperature #3 (/lpc/nct6798d/temperature/3): 78,0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 35,0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 28,0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 82,0 °C
»
»  NVIDIA GeForce RTX 3080:
»        Temperature:
»                GPU Core (/gpu-nvidia/0/temperature/0): 52,0 °C
»
»  Samsung SSD 970 EVO 250GB:
»        Temperature:
»                Temperature (/nvme/5/temperature/0): 49,0 °C
»                Temperature 1 (/nvme/5/temperature/6): 49,0 °C
»                Temperature 2 (/nvme/5/temperature/7): 56,0 °C
»
»  Samsung SSD 840 EVO 120GB:
»        Temperature:
»                Temperature (/ssd/4/temperature/0): 40,0 °C
»
»  Samsung SSD 850 EVO 250GB:
»        Temperature:
»                Temperature (/ssd/2/temperature/0): 31,0 °C
»
»  WDC WD10EARS-00Y5B1:
»        Temperature:
»                Temperature (/hdd/3/temperature/0): 45,0 °C
»
»  Samsung SSD 840 EVO 120GB:
»        Temperature:
»                Temperature (/ssd/1/temperature/0): 37,0 °C
»
»  ST2000DM001-1ER164:
»        Temperature:
»                Temperature (/hdd/0/temperature/0): 45,0 °C
»
-------------------------------
Press any key to continue...

Current configuration

{
  "Profiles": [
    {
      "Name": "Default",
      "Ports": [
        [9802, 8116, 1],
        [9802, 8116, 2],
        [9802, 8116, 3],
        [9802, 8116, 4],
        [9802, 8116, 5]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [40, 15],
              [50, 25],
              [60, 35],
              [70, 45],
              [80, 60],
              [90, 80]
            ],
            "Sensors": ["/lpc/nct6798d/temperature/2"],
            "MinimumChange": 4,
            "MaximumChange": 8,
            "SensorMixFunction": "Average",
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "StaticColorEffect",
          "Config": {
            "Color": {
              "Full": [255, 149, 45]
            },
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [
    {
      "StateType": "Shutdown",
      "Ports": [
        [9802, 8116, 1],
        [9802, 8116, 2],
        [9802, 8116, 3],
        [9802, 8116, 4],
        [9802, 8116, 5]
      ],
      "Speed": 35,
      "Color": {
        "Full": [0, 0, 0]
      }
    }
  ],
  "TemperatureTimerInterval": 250,
  "DeviceSpeedTimerInterval": 2500,
  "DeviceRgbTimerInterval": 5000
}

I just wanted to provide some additional Sensor data, in case it might be useful since it's a new CPU.

-------------------------------
»
»  Nuvoton NCT6798D:
»        Control:
»                Fan Control #1 (/lpc/nct6798d/control/0): 43,5 %
»                Fan Control #2 (/lpc/nct6798d/control/1): 72,2 %
»                Fan Control #3 (/lpc/nct6798d/control/2): 43,5 %
»                Fan Control #4 (/lpc/nct6798d/control/3): 100,0 %
»                Fan Control #5 (/lpc/nct6798d/control/4): 100,0 %
»                Fan Control #6 (/lpc/nct6798d/control/5): 100,0 %
»                Fan Control #7 (/lpc/nct6798d/control/6): 100,0 %
»        Voltage:
»                Vcore (/lpc/nct6798d/voltage/0): 1,01 V
»                Voltage #2 (/lpc/nct6798d/voltage/1): 0,99 V
»                AVCC (/lpc/nct6798d/voltage/2): 3,39 V
»                +3.3V (/lpc/nct6798d/voltage/3): 3,30 V
»                Voltage #5 (/lpc/nct6798d/voltage/4): 1,00 V
»                Voltage #6 (/lpc/nct6798d/voltage/5): 0,84 V
»                Voltage #7 (/lpc/nct6798d/voltage/6): 0,32 V
»                3VSB (/lpc/nct6798d/voltage/7): 3,39 V
»                VBat (/lpc/nct6798d/voltage/8): 3,36 V
»                VTT (/lpc/nct6798d/voltage/9): 0,90 V
»                Voltage #11 (/lpc/nct6798d/voltage/10): 0,42 V
»                Voltage #12 (/lpc/nct6798d/voltage/11): 0,48 V
»                Voltage #13 (/lpc/nct6798d/voltage/12): 1,03 V
»                Voltage #14 (/lpc/nct6798d/voltage/13): 0,39 V
»                Voltage #15 (/lpc/nct6798d/voltage/14): 0,36 V
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 40,0 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 35,0 °C
»                Temperature #3 (/lpc/nct6798d/temperature/3): 78,0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 35,0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 28,0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 82,0 °C
»        Fan:
»                Fan #1 (/lpc/nct6798d/fan/0): 867 RPM
»                Fan #2 (/lpc/nct6798d/fan/1): 1598 RPM
»
»  AMD Ryzen 7 5800X:
»        Load:
»                CPU Core #1 (/amdcpu/0/load/1): 0,0 %
»                CPU Core #2 (/amdcpu/0/load/2): 0,0 %
»                CPU Core #3 (/amdcpu/0/load/3): 0,0 %
»                CPU Core #4 (/amdcpu/0/load/4): 0,0 %
»                CPU Core #5 (/amdcpu/0/load/5): 0,0 %
»                CPU Core #6 (/amdcpu/0/load/6): 0,0 %
»                CPU Core #7 (/amdcpu/0/load/7): 0,0 %
»                CPU Core #8 (/amdcpu/0/load/8): 16,7 %
»                CPU Core #9 (/amdcpu/0/load/9): 0,0 %
»                CPU Core #10 (/amdcpu/0/load/10): 0,0 %
»                CPU Core #11 (/amdcpu/0/load/11): 0,0 %
»                CPU Core #12 (/amdcpu/0/load/12): 0,0 %
»                CPU Core #13 (/amdcpu/0/load/13): 0,0 %
»                CPU Core #14 (/amdcpu/0/load/14): 14,3 %
»                CPU Core #15 (/amdcpu/0/load/15): 0,0 %
»                CPU Core #16 (/amdcpu/0/load/16): 42,9 %
»                CPU Total (/amdcpu/0/load/0): 4,6 %
»
»  Generic Memory:
»        Data:
»                Memory Used (/ram/data/0): 4 GB
»                Memory Available (/ram/data/1): 28 GB
»                Virtual Memory Used (/ram/data/2): 9 GB
»                Virtual Memory Available (/ram/data/3): 28 GB
»        Load:
»                Memory (/ram/load/0): 13,3 %
»                Virtual Memory (/ram/load/1): 24,0 %
»```

Alternating fan colors

Describe your desired configuration
Hi there I would like some help in configuring to the settings I would like.
I have 2 controllers connected to a total of 8 TT RGB RIING fans and a TT RGB AIO pump
I was hoping to configure all the fans to alternating blue and orange colours.
My main problem is that I want to adjust the PWM fan curve which the app doesn't allow me to.
I want to decrease the fan curve so fan speeds are all at lowest possible for 30-65 degrees then from 65 degrees to be at 50% and then at 75 degrees to be at maximum
I want to decrease the fluctuation changes as well.

Hardware info

Info
-------------------------------
»
»        OS: Windows 10 Home 2004 [19041.1.x86fre.vb_release.191206-1406]
»        Build: 0.10.0-alpha+Branch.master.Sha.a826afd7df70a522c78f4785f357baa124b6a937
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8102
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 60, Rpm: 1096, Unknown: 255]
»                        Identifier: [9802, 8102, 1]
»                2:
»                        Data: [PortId: 2, Speed: 60, Rpm: 1105, Unknown: 255]
»                        Identifier: [9802, 8102, 2]
»                3:
»                        Data: [PortId: 3, Speed: 60, Rpm: 1085, Unknown: 255]
»                        Identifier: [9802, 8102, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8103
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 60, Rpm: 1080, Unknown: 255]
»                        Identifier: [9802, 8103, 1]
»                2:
»                        Data: [PortId: 2, Speed: 60, Rpm: 1056, Unknown: 255]
»                        Identifier: [9802, 8103, 2]
»                3:
»                        Data: [PortId: 3, Speed: 60, Rpm: 1061, Unknown: 255]
»                        Identifier: [9802, 8103, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 1075, Unknown: 255]
»                        Identifier: [9802, 8103, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 1095, Unknown: 255]
»                        Identifier: [9802, 8103, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------

»  NVIDIA GeForce GTX 1080:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 60.0 °C
»
»  KINGMAX SSD 240GB:
»        Temperature:
»                Temperature (/hdd/1/temperature/0): 36.0 °C
»
»  WDC WD10EZEX-60WN4A0:
»        Temperature:
»                Temperature (/hdd/2/temperature/0): 37.0 °C
»
»  Samsung SSD 860 EVO M.2 1TB:
»        Temperature:
»                Temperature (/ssd/0/temperature/0): 40.0 °C

Current configuration
Currently on default pregenerated one. I've been trying to edit and correct it. I'm very new to this and am sometimes unable to startup, or it starts but the effects do not take place.

Corsair Pong effect

Describe your desired configuration
Ultimately, replicate the Corsair Pong effect: https://twitter.com/corsair/status/1052350678713085952?lang=en

But for now:
All fans set to 50% speed, all LEDs set to Red

I'm using the basic profile below, but the LEDs seem not to respond or change color. I have three Riing Trio 120s and two Riing Trio 140s on one Trio controller. The fan speed works from the service (if I set it to 100 on the config it will ramp up correctly). But there is no change at all in the colors.

Everything works with the official software. Thank you by the way for this project, it is awesome!

Hardware info

Controllers
-------------------------------
Name: Riing Trio
VendorId: 9802
ProductId: 8501
Ports:
        Id: 1
        Data: [PortId: 1, Speed: 50, Rpm: 830, Unknown: 255]
        Identifier: [9802, 8501, 1]

        Id: 2
        Data: [PortId: 2, Speed: 50, Rpm: 849, Unknown: 255]
        Identifier: [9802, 8501, 2]

        Id: 3
        Data: [PortId: 3, Speed: 50, Rpm: 825, Unknown: 255]
        Identifier: [9802, 8501, 3]

        Id: 4
        Data: [PortId: 4, Speed: 50, Rpm: 824, Unknown: 255]
        Identifier: [9802, 8501, 4]

        Id: 5
        Data: [PortId: 5, Speed: 50, Rpm: 862, Unknown: 255]
        Identifier: [9802, 8501, 5]

Available effect types:
Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, ByLed, Full

-------------------------------
Sensors
-------------------------------
AMD Ryzen 9 3900X 12-Core Processor:
        Temperature
                Core (Tctl) (/amdcpu/0/temperature/0): 64.0 °C
                Core (Tdie) (/amdcpu/0/temperature/1): 64.0 °C
NVIDIA GeForce RTX 2080 Ti:
        Temperature
                GPU Core (/nvidiagpu/0/temperature/0): 48.0 °C
ST2000DM008-2FR102:
        Temperature
                Temperature (/hdd/0/temperature/0): 41.0 °C
-------------------------------
Plugins
-------------------------------
Valid plugins:
        TTController.Plugin.BlinkEffect.dll
        TTController.Plugin.ByLedColorEffect.dll
        TTController.Plugin.FlowEffect.dll
        TTController.Plugin.FullColorEffect.dll
        TTController.Plugin.PulseEffect.dll
        TTController.Plugin.RawEffect.dll
        TTController.Plugin.RazerConnectEffect.dll
        TTController.Plugin.RippleEffect.dll
        TTController.Plugin.SensorEffect.dll
        TTController.Plugin.SoundEffect.dll
        TTController.Plugin.SpectrumEffect.dll
        TTController.Plugin.WaveEffect.dll
        TTController.Plugin.CopySpeedController.dll
        TTController.Plugin.PwmSpeedController.dll
        TTController.Plugin.StaticSpeedController.dll
        TTController.Plugin.AlwaysTrigger.dll
        TTController.Plugin.LogicTrigger.dll
        TTController.Plugin.OneTimeTrigger.dll
        TTController.Plugin.ProcessTrigger.dll
        TTController.Plugin.PulseTrigger.dll
        TTController.Plugin.SensorTrigger.dll
        TTController.Plugin.DpsgController.dll
        TTController.Plugin.RiingController.dll
        TTController.Plugin.RiingPlusController.dll
        TTController.Plugin.RiingTrioController.dll

Current configuration

{
  "Profiles": [
    {
      "Name": "Default",
      "Guid": "10af9207-7e67-4581-9d13-506cad5d53c1",
      "Ports": [
        [ 9802, 8501, 1 ],
        [ 9802, 8501, 2 ],
        [ 9802, 8501, 3 ],
        [ 9802, 8501, 4 ],
        [ 9802, 8501, 5 ]
      ],
      "SpeedControllers": [
        {
          "Type": "StaticSpeedController",
          "Config": {
            "Speed": 50,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "FullColorEffect",
          "Config": {
            "Color": [ 255, 0, 0 ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
         }
      ]
    }
  ],
  "SensorConfigs": [
    {
      "Sensors": [ "/amdcpu/0/temperature/0" ],
      "Config": {
        "CriticalValue": 75
      }
    }
  ]
}

Device support

If you have a device that is not yet confirmed, please see below how to contribute.

Data needed to implement TF-2 support:

  • Wireshark dump
  • "Debug report"

Data needed to implement Pacific W5/W6 (temperature):

  • Wireshark dump
  • "Debug report"

Data needed to confirm other devices:

  • "Debug report"

Make sure the service and the official "TT RGB PLUS"/"DPS POWER" software is not running at the same time.

How to provide wireshark dump:
  1. Install Wireshark with usbpcap (you will be asked if you want to install usbpcap in the installer)
  2. Start Wireshark
  3. Double click on USBPCap1 capture on the main screen
  4. Start the official software (without the TTController service running)
  5. After 10s stop the capture in wireshark using the red square button
  6. Save and upload the dump using File -> Save As
How to provide debugview dump:
  1. Download and run DbgView or DebugView++ (no need to install)
  2. Start the official software (without the TTController service running)
  3. After 30s save and upload the dump using File -> Save As/Save Log
How to provide "debug report":
  1. Stop the official software
  2. Double click on TTController.Service.exe
  3. Go to "Main Menu -> Debug -> Report"
  4. Post the output preferably specifying what device is connected to what port

Device Support Confirmed Notes
Riing Plus 12/14/20 ✔️ ✔️
Riing Trio 12/14 ✔️ ✔️
Pure Plus 12/14 ✔️ ✔️
Floe Riing RGB 240/280/360 ✔️ ✔️
Pacific PR22-D5 Plus ✔️ ✔️
Pacific W4 ✔️ ✔️
Razer Connect ✔️ ✔️
Riing Duo 12/14 ✔️ ✔️
Toughpower iRGB PLUS ✔️ ✔️
Riing Quad ✔️ ✔️
WaterRam RGB ✔️
Pacific CL360/RL360 ✔️
Pacific V-GTX/V-RTX ✔️
Pacific Lumi/Rad/R1/Fitting ✔️
Pacific W5/W6 temperature sensor unsupported
TF-2

✔️ = fully supported
➖ = partial support
❌ = not supported


Confirmations:

  • Pure Plus confirmed working by user on TT forums
  • Floe Riing confirmed by starstreak007
  • Pacific PR22-D5 Plus & Pacific W4 confirmed by jlaineinat0r
  • Riing Trio implemented with help from rickboy
  • Razer Connect implemented with help from FearNaBoinne
  • Riing Duo fixed with help from Nitserof
  • iRGB/DPSG implemented with help from Nitserof
  • First gen Riing controller fixed with help from ArtursGailis1995
  • Riing Quad implemented with help from TurtleHunter and benjaminsavoy

PingPongEffect configuration

Describe your desired configuration
I'm stuck on configuring color with PingPongEffect - I've been able to get everything else working properly but I'm missing something. Any guidance would be appreciated.

Hardware info

Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8101
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 50, Rpm: 946, Unknown: 255]
»                        Identifier: [9802, 8101, 1]
»                2:
»                        Data: [PortId: 2, Speed: 50, Rpm: 944, Unknown: 255]
»                        Identifier: [9802, 8101, 2]
»                3:
»                        Data: [PortId: 3, Speed: 50, Rpm: 946, Unknown: 255]
»                        Identifier: [9802, 8101, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 4]
»                5:
»                        Data: [PortId: 5, Speed: 50, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 41.0 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 34.0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 14.0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 8.0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 49.0 °C
»
»  Intel Core i9-9900K:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 47.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 51.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 46.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 49.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 45.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 47.0 °C
»                CPU Core #7 (/intelcpu/0/temperature/6): 45.0 °C
»                CPU Core #8 (/intelcpu/0/temperature/7): 48.0 °C
»                CPU Package (/intelcpu/0/temperature/8): 51.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/9): 53.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/10): 49.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/11): 54.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/12): 51.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/13): 55.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/14): 53.0 °C
»                CPU Core #7 Distance to TjMax (/intelcpu/0/temperature/15): 55.0 °C
»                CPU Core #8 Distance to TjMax (/intelcpu/0/temperature/16): 52.0 °C
»                Core Max (/intelcpu/0/temperature/17): 51.0 °C
»                Core Average (/intelcpu/0/temperature/18): 47.3 °C
»
»  NVIDIA GeForce GTX 1080 Ti:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 42.0 °C
»
»  Samsung SSD 860 QVO 1TB:
»        Temperature:
»                Temperature (/ssd/4/temperature/0): 26.0 °C
»
»  Samsung SSD 960 EVO 500GB:
»        Temperature:
»                Temperature (/nvme/0/temperature/0): 40.0 °C
»                Temperature 1 (/nvme/0/temperature/6): 40.0 °C
»                Temperature 2 (/nvme/0/temperature/7): 48.0 °C
»
»  Samsung SSD 950 PRO 256GB:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 41.0 °C
»

Current configuration

  "Profiles": [
    {
      "Name": "Main",
      "Guid": "01c14011-919a-478e-8941-0949115b2887",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3],
        [9802, 8101, 5]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController", 
          "Config": {
            "CurvePoints": [
              [30, 30],
              [35, 40],
              [40, 45],
              [45, 50],
              [50, 55],
              [55, 60],
              [60, 65],
              [65, 75],
              [70, 85],
              [75, 100]
            ],
            "Sensors": ["/intelcpu/0/temperature/8","/nvidiagpu/0/temperature/0"],
            "MinimumChange": 4,
            "MaximumChange": 8,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "PingPongEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    },
    {
      "Name": "Pump",
      "Guid": "4522b673-2f58-469c-bbad-6fa2a3487724",
      "Ports": [
        [9802, 8101, 4]
      ],
      "SpeedControllers": [],
      "Effects": [
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/intelcpu/0/temperature/8"],
            "ColorGradient": [
              [40, [0, 0, 255]],
              [41, [0, 42, 255]],
              [42, [0, 85, 255]],
              [43, [0, 127, 255]],
              [44, [0, 170, 255]],
              [45, [0, 212, 255]],
              [46, [0, 255, 255]],
              [47, [0, 255, 212]],
              [48, [0, 255, 170]],
              [49, [0, 255, 127]],
              [50, [0, 255, 85]],
              [51, [0, 255, 42]],
              [52, [0, 255, 0]],
              [53, [42, 255, 0]],
              [54, [85, 255, 0]],
              [55, [127, 255, 0]],
              [56, [170, 255, 0]],
              [57, [212, 255, 0]],
              [58, [255, 255, 0]],
              [59, [255, 212, 0]],
              [60, [255, 170, 0]],
              [61, [255, 127, 0]],
              [62, [255, 85, 0]],
              [63, [255, 42, 0]],
              [64, [255, 0, 0]],
              [65, [255, 0, 42]]
            ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 8101, 5]],
      "Config": {
      "Name": "CPU Block",
      "LedRotation": [10],
      "LedReverse": [false]
    }
    },
    {
      "Ports": [[9802, 8101, 4]],
      "Config": {
      "Name": "Pump",
      "LedRotation": [0],
      "LedReverse": [false]
    }
    },
    {
      "Ports": [[9802, 8101, 3]],
      "Config": {
      "Name": "Top Fan",
      "LedRotation": [9],
      "LedReverse": [false]
    }
    },
    {
      "Ports": [[9802, 8101, 2]],
      "Config": {
      "Name": "Middle Fan",
      "LedRotation": [11],
      "LedReverse": [false]
    }
    },
    {
      "Ports": [[9802, 8101, 1]],
      "Config": {
      "Name": "Bottom Fan",
      "LedRotation": [11],
      "LedReverse": [false]
    }
    }
  ],
  "TemperatureTimerInterval": 250,
  "DeviceSpeedTimerInterval": 2500,
  "DeviceRgbTimerInterval": 32
}

Add ability to set color and speed from external program

Hello.
Nice tool! Good job.
I would like to control fans from the PC -game - S.T.A.L.K.E.R. . For example, to display the level of health or radiation infection through the color of a certain fan. In the presence of a LUA-script with the ability to call any CMD through the CLI. Or I'll try to make any other handler that you can provide.
P.S. Google translate =)

Linux support

Hello,

is this library flexible enough to be splitted into a core library that supports Windows and Linux? And a library bases in Python that allows to control the devices? The Python API could be the fundament of a CLI too.

PluginLoader causing System.IO.FileLoadException

Prerequisites

  • The controller is recognized without issues in the official software
  • I made sure no official software or any other software that can communicate with the controllers (e.g. Aida64) was running when the issue with the service occurred

Describe the issue

The service could not be started as of:

2019-08-16 02:11:52.2080|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
2019-08-16 02:11:52.2200|FATAL|TTController.Service.TTService|System.IO.FileLoadException: Die Datei oder Assembly "TTController.Plugin.BlinkEffect, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Der Vorgang wird nicht unterstützt. (Ausnahme von HRESULT: 0x80131515)
Dateiname: "TTController.Plugin.BlinkEffect, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null" ---> System.NotSupportedException: Es wurde versucht, eine Assembly von einer Netzwerkadresse zu laden, was in früheren Versionen von .NET Framework zum Ausführen der Assembly als Sandkastenassembly geführt hätte. In dieser Version von .NET Framework wird die CAS-Richtlinie standardmäßig nicht aktiviert, dieser Ladevorgang kann daher gefährlich sein. Wenn Sie nicht beabsichtigen, durch diesen Ladevorgang eine Sandkastenassembly zu erstellen, aktivieren Sie den loadFromRemoteSources-Schalter. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkId=155569".
   bei System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   bei System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   bei System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   bei System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   bei TTController.Service.Utils.PluginLoader.<>c.<Load>b__3_0(Assembly a)
   bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   bei TTController.Service.Utils.PluginLoader.Load(String path, Type[] types)
   bei TTController.Service.Utils.PluginLoader.LoadAll(String path)
   bei TTController.Service.TTService.Initialize()
   bei TTController.Service.TTService.OnStart(String[] args)

I'm not a .NET developer but I found that loadFromRemoteSources is an issue here. Once I unblocked each dll file under Plugins the service could be started.

unblock

Riing Quad color bleed and value mismatch

Describe the issue
Riing Quad fans/controller

  1. When setting PerLed values in config some LEDs appear to take on colors that haven't been set.
    This doesn't seem to happen if all LEDs are set to the same color but if, for example, I set the innermost zone to black, and the second innermost zone to red, one LED on all three fans appears yellow/orange.

  2. Color byte codes don't appear to be mapped to [RED, GREEN, BLUE], and instead respond to [BLUE, RED, GREEN].

Config below results in:
Outer zone: white but with one LED purple
Outer-mid zone: white
Inner-mid zone: red but with one LED yellow
Inner zone: dark/off

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Enterprise 2004 [19041.1.x86fre.vb_release.191206-1406]
»        Build: 0.11.0-beta+Branch.master.Sha.2b6096e1aeefc2bc0b2e3e715c364bcd849d9ddc
»
-------------------------------
Applications
-------------------------------
»
»
-------------------------------
HID
-------------------------------
»
»  [0x264a, 0x2260]: \\?\hid#vid_264a&pid_2260#8&272c7f0f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Quad
»        VendorId: 9802
»        ProductId: 8800
»        Version: 3.0.3
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 40, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 1]
»                2:
»                        Data: [PortId: 2, Speed: 40, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 2]
»                3:
»                        Data: [PortId: 3, Speed: 40, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8800, 5]
»        Available effect types: PerLed
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6798D:
»        Temperature:
»                Temperature #1 (/lpc/nct6798d/temperature/1): 36.5 °C
»                Temperature #2 (/lpc/nct6798d/temperature/2): 33.0 °C
»                Temperature #3 (/lpc/nct6798d/temperature/3): 14.0 °C
»                Temperature #4 (/lpc/nct6798d/temperature/4): 14.0 °C
»                Temperature #5 (/lpc/nct6798d/temperature/5): 25.0 °C
»                Temperature #6 (/lpc/nct6798d/temperature/6): 63.0 °C
»
»  Intel Core i9-10940X:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 38.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 38.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 41.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 35.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 38.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 37.0 °C
»                CPU Core #7 (/intelcpu/0/temperature/6): 40.0 °C
»                CPU Core #8 (/intelcpu/0/temperature/7): 40.0 °C
»                CPU Core #9 (/intelcpu/0/temperature/8): 37.0 °C
»                CPU Core #10 (/intelcpu/0/temperature/9): 38.0 °C
»                CPU Core #11 (/intelcpu/0/temperature/10): 37.0 °C
»                CPU Core #12 (/intelcpu/0/temperature/11): 39.0 °C
»                CPU Core #13 (/intelcpu/0/temperature/12): 40.0 °C
»                CPU Core #14 (/intelcpu/0/temperature/13): 39.0 °C
»                CPU Package (/intelcpu/0/temperature/14): 40.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/15): 72.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/16): 72.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/17): 69.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/18): 75.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/19): 72.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/20): 73.0 °C
»                CPU Core #7 Distance to TjMax (/intelcpu/0/temperature/21): 70.0 °C
»                CPU Core #8 Distance to TjMax (/intelcpu/0/temperature/22): 70.0 °C
»                CPU Core #9 Distance to TjMax (/intelcpu/0/temperature/23): 73.0 °C
»                CPU Core #10 Distance to TjMax (/intelcpu/0/temperature/24): 72.0 °C
»                CPU Core #11 Distance to TjMax (/intelcpu/0/temperature/25): 73.0 °C
»                CPU Core #12 Distance to TjMax (/intelcpu/0/temperature/26): 71.0 °C
»                CPU Core #13 Distance to TjMax (/intelcpu/0/temperature/27): 70.0 °C
»                CPU Core #14 Distance to TjMax (/intelcpu/0/temperature/28): 71.0 °C
»                Core Max (/intelcpu/0/temperature/29): 41.0 °C
»                Core Average (/intelcpu/0/temperature/30): 38.4 °C
»
»  NVIDIA GeForce RTX 2080 Ti:
»        Temperature:
»                GPU Core (/gpu-nvidia/0/temperature/0): 43.0 °C

Current configuration

{
  "Profiles": [
    {
      "Name": "Riing Quad Controller",
      "Ports": [
        [9802, 8800, 1],
        [9802, 8800, 2],
        [9802, 8800, 3],
        [9802, 8800, 4]
      ],
      "Effects": [
        {
          "Type": "StaticColorEffect",
          "Config": {
            "Color": {
              "PerLed": [
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],

                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],
                [255, 255, 255],

                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],
                [0, 255, 0],

                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0],
                [0, 0, 0]
              ]
            },
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [],
  "PortConfigs": [{
    "Ports": [
      [9802, 8800, 1],
      [9802, 8800, 2],
      [9802, 8800, 3],
      [9802, 8800, 4]
    ],
    "Config": {
      "DeviceType": "RiingQuad",
      "IgnoreColorCache": true
    }
  }],
  "SensorConfigs": []
}

Add support for hot plugging controllers

Hardware:
Thermaltake Level 20 Battlestation desk

Issue Description:
I have TTcontroller set up with a RazerConnectEffect
The desk has a switch that turns the LEDs on or off. If its being switched on after TTcontroller service has already started TTcontroller won't detect it and the desk LEDs are just in their default animation.
Just restarting the TTcontroller service fixes it, the desk LEDs immediately switch to the color-scheme configured in Razer Chroma.

Config:

{
  "Profiles": [
    {
      "Name": "Desk",
      "Ports": [
        [9802, 2001]
      ],
      "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
			}
		  }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 2001]],
      "Config": {
        "DeviceType": "Level20Desk",
		"LedCountHandling": "Lerp",
		"IgnoreColorCache": true
      }
    }
  ]
} 

PresentationFontCache.exe causing high CPU usage

Describe the bug
After installing and running TTC everything seems normal, after a reboot a process called PresentationFontCache.exe shows up and uses 10-20% CPU causing my temp to rise quite a bit. Not sure if this is just normal for how the service runs but seems kinda weird.
uninstalling and reinstalling results in the same effect. I had V5.4 then updated to V6.0 and had same results.

The TTC.Service is using less than 1% at all times.

Not sure if you know a way to optimize this or not.

Hardware

Controllers
-------------------------------
Name: Riing Plus Controller
VendorId: 9802
ProductId: 8102
Ports:
        Id: 1
        Data: [PortId: 1, Speed: 35, Rpm: 770, Unknown: 255]
        Identifier: [9802, 8102, 1]

        Id: 2
        Data: [PortId: 2, Speed: 35, Rpm: 768, Unknown: 255]
        Identifier: [9802, 8102, 2]

        Id: 3
        Data: [PortId: 3, Speed: 35, Rpm: 758, Unknown: 255]
        Identifier: [9802, 8102, 3]

        Id: 4
        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8102, 4]

        Id: 5
        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8102, 5]

Available effect types:
Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, ByLed, Full

Name: Riing Plus Controller
VendorId: 9802
ProductId: 8101
Ports:
        Id: 1
        Data: [PortId: 1, Speed: 35, Rpm: 694, Unknown: 255]
        Identifier: [9802, 8101, 1]

        Id: 2
        Data: [PortId: 2, Speed: 35, Rpm: 727, Unknown: 255]
        Identifier: [9802, 8101, 2]

        Id: 3
        Data: [PortId: 3, Speed: 35, Rpm: 693, Unknown: 255]
        Identifier: [9802, 8101, 3]

        Id: 4
        Data: [PortId: 4, Speed: 30, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8101, 4]

        Id: 5
        Data: [PortId: 5, Speed: 30, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8101, 5]

Available effect types:
Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, ByLed, Full

Sensors
-------------------------------
Intel Core i7-8700K:
        /intelcpu/0/temperature/0:
                Name: CPU Core #1
                Value: 35
Intel Core i7-8700K:
        /intelcpu/0/temperature/1:
                Name: CPU Core #2
                Value: 35
Intel Core i7-8700K:
        /intelcpu/0/temperature/2:
                Name: CPU Core #3
                Value: 38
Intel Core i7-8700K:
        /intelcpu/0/temperature/3:
                Name: CPU Core #4
                Value: 34
Intel Core i7-8700K:
        /intelcpu/0/temperature/4:
                Name: CPU Core #5
                Value: 49
Intel Core i7-8700K:
        /intelcpu/0/temperature/5:
                Name: CPU Core #6
                Value: 37
Intel Core i7-8700K:
        /intelcpu/0/temperature/6:
                Name: CPU Package
                Value: 49
AMD Radeon (TM) R9 390 Series:
        /atigpu/0/temperature/0:
                Name: GPU Core
                Value: 36
SanDisk SD6SB2M-512G-1006:
        /hdd/1/temperature/0:
                Name: Temperature
                Value: 35
Samsung SSD 850 EVO 500GB:
        /hdd/2/temperature/0:
                Name: Temperature
                Value: 30
-------------------------------

Razer plugin does not map lights properly

Describe the issue

The Razer effect plugin takes the five LED colors and maps them directly to the LEDs. However the Razer SDK uses the lights differently. The first light is used for devices where all LEDs should be the same color. The next four are used for devices that have more than one color or for animations, and those default back to the first light if there is no effect/animation defined.

For TT products (I think they all have more than one LED), the easiest solution is to ignore the first light color and just use the four after it. This is what native Razer devices do and how it works in the official TT implementation.

https://developer.razer.com/works-with-chroma/razer-chroma-led-profiles/

I can fix this and send a pull request when I'm not at work :)

Pacific TF-2 support

Pacific TF-2 is currently not implemented, if you have this device, please see below how to contribute.

Data needed to implement Pacific TF-2:

  • Wireshark dump
  • "Debug report"

Make sure the service and the official "TT RGB PLUS"/"DPS POWER"/"NeonMaker" software is not running at the same time.

How to provide wireshark dump:
  1. Install Wireshark with usbpcap (you will be asked if you want to install usbpcap in the installer)
  2. Start Wireshark
  3. Double click on USBPCap1 capture on the main screen
  4. Start the official software (without the TTController service running)
  5. After 10s stop the capture in wireshark using the red square button
  6. Save and upload the .pcap dump using File -> Save As
How to provide "debug report":
  1. Stop the official software
  2. Double click on TTController.Service.exe
  3. Go to "Main Menu -> Debug -> Report"
  4. Post the output preferably specifying what device is connected to what port

Certain RGB values failing

Prerequisites

  • The controller is recognized without issues in the official software
  • I made sure no official software or any other software (e.g. Aida64) that can communicate with the controllers was running when the issue with the service occurred

Describe the issue
I've been tinkering around with colors and am running into variants that cause the controller software to crash, one example:

With this config:

      "Effects": [
        {
          "Type": "RippleEffect",
          "Config": {
            "Length": 5,
            "Color": [5, 95, 173],
            "TickInterval": 5,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]

I end up with an appcrash:

Application: TTController.Service.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OverflowException
   at System.Convert.ToByte(Int32)
   at TTController.Common.LedColor.FromHsv(Double, Double, Double)
   at TTController.Plugin.RippleEffect.RippleEffect.GenerateColors(System.Collections.Generic.List`1<TTController.Common.PortIdentifier>, TTController.Common.ICacheProvider)
   at TTController.Service.TTService.DeviceRgbTimerCallback()
   at TTController.Service.Manager.TimerManager+<>c__DisplayClass3_0.<RegisterTimer>b__0(System.Object, TimerElapsedEventArgs)
   at TTController.Service.Manager.TimerManager+Timer.ExecuteTimer()
   at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ThreadHelper.ThreadStart()

But this particular hue works:

      "Effects": [
        {
          "Type": "RippleEffect",
          "Config": {
            "Length": 5,
            "Color": [32, 147, 248],
            "TickInterval": 5,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]

Razer Synapse update broke RazerConnectEffect

Describe the issue
Razyer Synapse and its components received an update a few days ago and since then RazerConnectEffect seems to be not working properly. No errors on command line when "Run in console".

Debug report

Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8102
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 65, Rpm: 1158, Unknown: 255]
»                        Identifier: [9802, 8102, 1]
»                2:
»                        Data: [PortId: 2, Speed: 65, Rpm: 1161, Unknown: 255]
»                        Identifier: [9802, 8102, 2]
»                3:
»                        Data: [PortId: 3, Speed: 65, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8102, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8101
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 65, Rpm: 1195, Unknown: 255]
»                        Identifier: [9802, 8101, 1]
»                2:
»                        Data: [PortId: 2, Speed: 65, Rpm: 1154, Unknown: 255]
»                        Identifier: [9802, 8101, 2]
»                3:
»                        Data: [PortId: 3, Speed: 65, Rpm: 1172, Unknown: 255]
»                        Identifier: [9802, 8101, 3]
»                4:
»                        Data: [PortId: 4, Speed: 65, Rpm: 1129, Unknown: 255]
»                        Identifier: [9802, 8101, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------
»
»  Nuvoton NCT6776F:
»        Temperature:
»                CPU Core (/lpc/nct6776f/temperature/0): 51,5 °C
»                Temperature #2 (/lpc/nct6776f/temperature/2): 0,5 °C
»                Temperature #3 (/lpc/nct6776f/temperature/3): 55,0 °C
»
»  Intel Core i7-4930K:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 38,0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 40,0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 39,0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 40,0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 40,0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 40,0 °C
»                CPU Package (/intelcpu/0/temperature/6): 41,0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/7): 52,0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/8): 50,0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/9): 51,0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/10): 50,0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/11): 50,0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/12): 50,0 °C
»                Core Max (/intelcpu/0/temperature/13): 40,0 °C
»                Core Average (/intelcpu/0/temperature/14): 39,5 °C
»
»  NVIDIA GeForce RTX 2070 SUPER:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 56,0 °C
»
»  ST2000DM001-1ER164:
»        Temperature:
»                Temperature (/hdd/2/temperature/0): 43,0 °C
»
»  Samsung SSD 850 EVO 500GB:
»        Temperature:
»                Temperature (/ssd/1/temperature/0): 46,0 °C
»
»  Samsung SSD 860 EVO 1TB:
»        Temperature:
»                Temperature (/ssd/0/temperature/0): 46,0 °C
»

Current configuration

{
  "Profiles": [
    {
      "Name": "Case",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3],
		[9802, 8101, 4],
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [60, 30],
              [65, 50],
              [70, 80],
              [75, 90],
              [82, 100]
            ],
            "Sensors": ["/gpu/0/temperature/0"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [                              
        {
          "Type": "RazerConnectEffect",
          "Config": {            
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    },
	{
      "Name": "CPU",
      "Ports": [
		[9802, 8102, 1],
		[9802, 8102, 2],
		[9802, 8102, 3]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [30, 30],
              [45, 50],
              [55, 60],
              [65, 80],
              [80, 100]
            ],
            "Sensors": ["/intelcpu/0/temperature/13"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [                              
        {
          "Type": "RazerConnectEffect",
          "Config": {            
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [
    {
      "StateType": "Shutdown",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3],
		[9802, 8101, 4],
		[9802, 8102, 1],
		[9802, 8102, 2],
		[9802, 8102, 3]
      ],
      "Speed": 65,
      "EffectType": "Full",
      "EffectColors": [
        [128, 0, 0]
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 8101, 1],
				[9802, 8101, 2],
				[9802, 8101, 3],
				[9802, 8101, 4]],
      "Config": {
        "Name": "Case Fan",
		"LedCountHandling": "Copy" 
      }
    },
	{
      "Ports": [[9802, 8102, 1],
				[9802, 8102, 2],
				[9802, 8102, 3]],
      "Config": {
        "Name": "CPU Fan",
		"LedCountHandling": "Copy"
      }
    }
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/intelcpu/0/temperature/13"],
      "Config": {
        "CriticalValue": 90
      }
    }
  ]
}

Help Installing

Describe the issue
First of all, thank you all for working on this! Sorry if this is a dumb question, but i don't see any EXE files to install the service as described in the docs. Am I to understand that i should build it myself? I tried building with visual studio but it failed with a bunch of errors, most of which were citing failure to find files in the Third Party folder. Any guidance would be appreciated!

Debug report

N/A?

Current configuration

N/A?

Controller not detected (TTRGB Riing Plus)

Latest release version of this software (0.10.0.0) does not detect my Riing plus controller. Everything is working normally in TTRGB Plus.
With TTRGB plus shut down or uninstalled, the controller is still not being detected.
Report from TTController

-------------------------------
»
»        OS: Windows 10 Enterprise 2004 [19041.1.x86fre.vb_release.191206-1406]
»        Build: 0.10.0-alpha+Branch.master.Sha.a826afd7df70a522c78f4785f357baa124b6a937
»
-------------------------------
Controllers
-------------------------------
»
»
-------------------------------
Sensors
-------------------------------
»
»  ITE IT8686E:
»        Temperature:
»                System #1 (/lpc/it8686e/temperature/0): 38.0 °C
»                Chipset (/lpc/it8686e/temperature/1): 41.0 °C
»                CPU (/lpc/it8686e/temperature/2): 44.0 °C
»                PCIe x16 (/lpc/it8686e/temperature/3): 33.0 °C
»                VRM (/lpc/it8686e/temperature/4): 41.0 °C
»
»  ITE IT8792E/IT8795E:
»        Temperature:
»                PCIe x8 (/lpc/it879xe/temperature/0): 34.0 °C
»                System #2 (/lpc/it879xe/temperature/2): 33.0 °C
»
»  AMD Ryzen 7 2700X:
»        Temperature:
»                Core (Tctl) (/amdcpu/0/temperature/0): 54.8 °C
»                Core (Tdie) (/amdcpu/0/temperature/1): 44.8 °C
»
»  NVIDIA GeForce GTX 1080:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 44.0 °C
»
»  Samsung SSD 970 EVO 500GB:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 38.0 °C
»                Temperature 1 (/nvme/1/temperature/6): 38.0 °C
»                Temperature 2 (/nvme/1/temperature/7): 47.0 °C
»
»  TOSHIBA HDWD120:
»        Temperature:
»                Temperature (/hdd/0/temperature/0): 29.0 °C
»
-------------------------------
Press any key to continue...```

How can I get it to detect my Riing Plus controller? It is shown as supported in the documentation.

TTController service fails to start

Prerequisites

Replace [ ] to [x] to check

  • The controller is recognized without issues in the official software
  • I made sure no official software or any other software that can communicate with the controllers (e.g. Aida64) was running when the issue with the service occurred

Describe the issue
A clear and concise description of what the issue is.

TTController

The programm wont start and it shows the error in the picture.
English translation:
Unhandled exception: System.InvalidOperationException: The Service TTController cannot start on the computer ---> System.ComponentModel.Win32Exception: The Service doesnt answer in time to start- or control-request.
--- End of intern exception stack monitoring ---
at System.ServiceProcess.ServiceController.Start<String[] args>
at TTController.Service.Program.g__StartService:3_1<>
at TTController.Service.Program.<>cb__3_2<>
at TTController.Service.Program.ManageService<>
at TTController.Service.Program.Main<String[] args>

OS: Windows 7 64-bit

I hope there is a solution for this. I would definitely choose your program over the shitty one from TT.

Service does not start after waking up from sleep

Describe the issue
The service does not start automatically after the computer wakes up from sleep. It starts automatically upon initial boot and restart.

Debug report

Info
-------------------------------
»
»        OS: Windows 10 Home 1909 [18362.1.amd64fre.19h1_release.190318-1202]
»        Build: 0.10.0-alpha+Branch.master.Sha.a826afd7df70a522c78f4785f357baa124b6a937
»
-------------------------------
Controllers
-------------------------------
»
»  Name: Riing Plus
»        VendorId: 9802
»        ProductId: 8101
»        Ports:
»                1:
»                        Data: [PortId: 1, Speed: 32, Rpm: 571, Unknown: 255]
»                        Identifier: [9802, 8101, 1]
»                2:
»                        Data: [PortId: 2, Speed: 32, Rpm: 580, Unknown: 255]
»                        Identifier: [9802, 8101, 2]
»                3:
»                        Data: [PortId: 3, Speed: 32, Rpm: 575, Unknown: 255]
»                        Identifier: [9802, 8101, 3]
»                4:
»                        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 4]
»                5:
»                        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
»                        Identifier: [9802, 8101, 5]
»        Available effect types: Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, PerLed, Full
»
-------------------------------
Sensors
-------------------------------
»
»  ITE IT8688E:
»        Temperature:
»                Temperature #1 (/lpc/it8688e/temperature/0): 35.0 °C
»                Temperature #2 (/lpc/it8688e/temperature/1): 45.0 °C
»                Temperature #3 (/lpc/it8688e/temperature/2): 31.0 °C
»                Temperature #4 (/lpc/it8688e/temperature/3): 37.0 °C
»                Temperature #5 (/lpc/it8688e/temperature/4): 36.0 °C
»
»  ITE IT8792E/IT8795E:
»        Temperature:
»                Temperature #1 (/lpc/it879xe/temperature/0): 37.0 °C
»                Temperature #3 (/lpc/it879xe/temperature/2): 40.0 °C
»
»  Intel Core i9-9900KF:
»        Temperature:
»                CPU Core #1 (/intelcpu/0/temperature/0): 33.0 °C
»                CPU Core #2 (/intelcpu/0/temperature/1): 32.0 °C
»                CPU Core #3 (/intelcpu/0/temperature/2): 33.0 °C
»                CPU Core #4 (/intelcpu/0/temperature/3): 31.0 °C
»                CPU Core #5 (/intelcpu/0/temperature/4): 32.0 °C
»                CPU Core #6 (/intelcpu/0/temperature/5): 31.0 °C
»                CPU Core #7 (/intelcpu/0/temperature/6): 31.0 °C
»                CPU Core #8 (/intelcpu/0/temperature/7): 34.0 °C
»                CPU Package (/intelcpu/0/temperature/8): 34.0 °C
»                CPU Core #1 Distance to TjMax (/intelcpu/0/temperature/9): 67.0 °C
»                CPU Core #2 Distance to TjMax (/intelcpu/0/temperature/10): 68.0 °C
»                CPU Core #3 Distance to TjMax (/intelcpu/0/temperature/11): 67.0 °C
»                CPU Core #4 Distance to TjMax (/intelcpu/0/temperature/12): 69.0 °C
»                CPU Core #5 Distance to TjMax (/intelcpu/0/temperature/13): 68.0 °C
»                CPU Core #6 Distance to TjMax (/intelcpu/0/temperature/14): 69.0 °C
»                CPU Core #7 Distance to TjMax (/intelcpu/0/temperature/15): 69.0 °C
»                CPU Core #8 Distance to TjMax (/intelcpu/0/temperature/16): 66.0 °C
»                Core Max (/intelcpu/0/temperature/17): 34.0 °C
»                Core Average (/intelcpu/0/temperature/18): 32.1 °C
»
»  NVIDIA GeForce RTX 2080 SUPER:
»        Temperature:
»                GPU Core (/gpu/0/temperature/0): 28.0 °C
»
»  INTEL SSDPEKKW010T7:
»        Temperature:
»                Temperature (/nvme/0/temperature/0): 36.0 °C
»
»  Samsung SSD 970 EVO 500GB:
»        Temperature:
»                Temperature (/nvme/1/temperature/0): 51.0 °C
»                Temperature 1 (/nvme/1/temperature/6): 51.0 °C
»                Temperature 2 (/nvme/1/temperature/7): 57.0 °C
»
-------------------------------

Current configuration

{
  "Profiles":
  [
    {
      "Name": "Default",
      "Ports":
      [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3]
      ],
      "SpeedControllers":
      [
        {
          "Type": "PwmSpeedController", 
          "Config":
	  {
            "CurvePoints":
	    [
              [30, 30],
              [45, 50],
              [55, 60],
              [65, 75],
              [75, 100]
            ],
            "Sensors": ["/intelcpu/0/temperature/8"],
            "Trigger": { "Type": "AlwaysTrigger" }
          }
        }
      ],
      "Effects":
      [
	{
          "Type": "RippleEffect",
          "Config": {
            "Length": 10,
	    "TickInterval": 2,
            "RippleColor": { "Gradient": [[0, [16, 16, 128]], [0.8, [30, 16, 100]], [1.0, [128,16,128]]] },
	    "BackgroundColor": { "Full": [128, 16, 118] },
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        },
        {
          "Type": "SensorEffect",
          "Config":
	  {
            "Sensors": ["/intelcpu/0/temperature/8"],
            "ColorGradient":
	    [
              [40, [16, 16, 128]],
              [60, [128, 16, 128]],
              [86, [128, 16, 16]]
            ],
            "Trigger": { "Type": "AlwaysTrigger" }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles":
  [
    {
      "StateType":  "boot",
      "Ports":
      [
	[9802, 8101, 1],
	[9802, 8101, 2],
	[9802, 8101, 3]
      ],
      "EffectType": "Wave_Extreme",
      "Color": { "Full": [150, 150, 150] }
    }
  ],
  "PortConfigs":
  [
    {
      "Ports":
      [
  	[9802, 8101, 1],
  	[9802, 8101, 2],
  	[9802, 8101, 3]
      ],
      "Config":
      {
        "Name": "Radiator Fans",
	"LedCountHandling": "Lerp",
	"DeviceType": "RiingPlus"
      }
    }  
  ],
  "SensorConfigs": []
}

Speed and RGB not working with first gen Riing controller

Describe your desired configuration
Thermaltake Riing Plus 14 LED RGB Fan TT Premium Edition Radiator 3-Fan Pack

All 3 fans used as case fans, connected to single controller, USB to MB, Power to PSU.

I tried original software but it is complete trash so I would like to switch to your software. Only thing working is temperature readings. Otherwise with every config it stays at speed 50 no matter what. Light effects also does not change and is stuck to RGB pulse. Cycling colors. No other effects seems to work. Tried sketch wit bootup/shutdown effect - also does not trigger. Official software removed for now (with it does not work too your software). Need to get at least PWM working.

Hardware info

Controllers
-------------------------------
Name: Riing
VendorId: 9802
ProductId: 8008
Ports:
        Id: 1
        Data: [PortId: 1, Speed: 50, Rpm: 885, Unknown: 3]
        Identifier: [9802, 8008, 1]

        Id: 2
        Data: [PortId: 2, Speed: 50, Rpm: 865, Unknown: 3]
        Identifier: [9802, 8008, 2]

        Id: 3
        Data: [PortId: 3, Speed: 50, Rpm: 846, Unknown: 3]
        Identifier: [9802, 8008, 3]

        Id: 4
        Data: [PortId: 254, Speed: 0, Rpm: 0, Unknown: 3]
        Identifier: [9802, 8008, 4]

        Id: 5
        Data: [PortId: 254, Speed: 0, Rpm: 0, Unknown: 3]
        Identifier: [9802, 8008, 5]

Available effect types:
Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, ByLed, Full

Plugins
-------------------------------
Valid plugins:
        TTController.Plugin.BlinkEffect.dll
        TTController.Plugin.ByLedColorEffect.dll
        TTController.Plugin.FlowEffect.dll
        TTController.Plugin.FullColorEffect.dll
        TTController.Plugin.PulseEffect.dll
        TTController.Plugin.RawEffect.dll
        TTController.Plugin.RazerConnectEffect.dll
        TTController.Plugin.RippleEffect.dll
        TTController.Plugin.SensorEffect.dll
        TTController.Plugin.SnakeEffect.dll
        TTController.Plugin.SoundEffect.dll
        TTController.Plugin.SpectrumEffect.dll
        TTController.Plugin.WaveEffect.dll
        TTController.Plugin.CopySpeedController.dll
        TTController.Plugin.PwmSpeedController.dll
        TTController.Plugin.StaticSpeedController.dll
        TTController.Plugin.AlwaysTrigger.dll
        TTController.Plugin.LogicTrigger.dll
        TTController.Plugin.OneTimeTrigger.dll
        TTController.Plugin.ProcessTrigger.dll
        TTController.Plugin.PulseTrigger.dll
        TTController.Plugin.SensorTrigger.dll
        TTController.Plugin.DpsgController.dll
        TTController.Plugin.RiingController.dll
        TTController.Plugin.RiingPlusController.dll
        TTController.Plugin.RiingTrioController.dll

Sensors
-------------------------------
Intel Core i7-7700K:
        CPU Core #1 (/intelcpu/0/temperature/0): 48
        CPU Core #2 (/intelcpu/0/temperature/1): 48
        CPU Core #3 (/intelcpu/0/temperature/2): 45
        CPU Core #4 (/intelcpu/0/temperature/3): 48
        CPU Package (/intelcpu/0/temperature/4): 48
NVIDIA GeForce GTX 1070:
        GPU Core (/nvidiagpu/0/temperature/0): 43
WDC WD10EZEX-00BN5A0:
        Temperature (/hdd/0/temperature/0): 32
WDC WD5000AUDX-73H9TY0:
        Temperature (/hdd/1/temperature/0): 29
LITEON IT LST-32S9G-HP:
        Temperature (/hdd/2/temperature/0): 45
-------------------------------

Current configuration

{
  "Profiles": [
    {
      "Name": "Default",
      "Guid": "10af9207-7e67-4581-9d13-506cad5d53c1",
      "Ports": [
        [9802, 8008, 1],
        [9802, 8008, 2],
        [9802, 8008, 3]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [15, 0],
              [30, 20],
              [40, 40],
              [50, 50],
              [60, 75],
              [65, 90],
              [70, 100],
            ],
            "Sensors": ["/intelcpu/0/temperature/0"],
            "MinimumChange": 4,
            "MaximumChange": 8,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "WaveEffect",
          "Config": {
            "Colors": [
              [250, 250, 250],
              [230, 230, 230],
              [210, 210, 210],
              [190, 190, 190],
              [170, 170, 170],
              [150, 150, 150],
              [130, 130, 130],
              [110, 110, 110],
              [90, 90, 90],
              [70, 70, 70],
              [50, 50, 50],
              [30, 30, 30]
            ],
            "TickInterval": 3,
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    },
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/intelcpu/0/temperature/0"],
      "Config": {
        "CriticalValue": 70
      }
    }
  ]
}

Trigger when display turns on or off

First off, incredible piece of software. I absolutely love it.

If I can make one suggestion though, I think a trigger based on the display turning on or off -- or more likely, being on or off -- could be very useful. I don't let my desktop go to sleep, as I use it for server tasks and/or need to remote into it frequently from afar, so currently I just lock it and let the screens turn off at night. It would be incredibly useful to me to have this trigger, as I could make it so the RGB in my desktop is only active when I'm sitting at my computer using it, just as one example.

It may be possible, albeit a little hacky, to watch for a process? I'm not sure if there is a process that dies when the screens turn off/on.

No TTController.service.exe

I tried to install, following the docs given; but after searching manually and through Explorer, the file you called "TTController.service.exe" is not anywhere in the files, even after re-download. There is a TTController.sln, but this just opens the project. Any idea what the issue is?

CPU temperature sensor not working

Describe the issue
OpenHardwareMonitor is no longer reading the temperature sensor for my cpu (intel 9600k).

I did recently switch to the developer build of TTController in order to test the new ScheduleTrigger, but I also recently had to reinstall Windows 10 on my system. Either of these changes could have caused the issue.

As far as I can tell, my cpu is only supported in the latest alpha build of OpenHardwareMonitor. See here: openhardwaremonitor/openhardwaremonitor#1156

Unfortunately I lack the technical skills to recompile TTController with the alpha build of OpenHardwareMonitor.

Occasional Service Launch Failure on Boot

About 1 out of 3 times the service does not auto start on boot. It then starts manually no problem. Using 0.9.0-alpha.40.

Here is the log:

2020-05-05 20:45:36.5492|INFO|TTController.Service.TTService|================================================================
2020-05-05 20:45:36.5718|INFO|TTController.Service.TTService|Initializing...
2020-05-05 20:45:36.8645|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgController [0.9.0.0]
2020-05-05 20:45:36.8875|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingController [0.9.0.0]
2020-05-05 20:45:36.9055|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingPlusController [0.9.0.0]
2020-05-05 20:45:36.9226|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingTrioController [0.9.0.0]
2020-05-05 20:45:36.9396|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AuroraEffect [0.9.0.0]
2020-05-05 20:45:36.9561|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.9.0.0]
2020-05-05 20:45:36.9721|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopyColorEffect [0.9.0.0]
2020-05-05 20:45:36.9886|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FlowEffect [0.9.0.0]
2020-05-05 20:45:37.0051|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PingPongEffect [0.9.0.0]
2020-05-05 20:45:37.0216|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseEffect [0.9.0.0]
2020-05-05 20:45:37.0377|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RawEffect [0.9.0.0]
2020-05-05 20:45:37.0567|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RazerConnectEffect [0.9.0.0]
2020-05-05 20:45:37.0732|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RippleEffect [0.9.0.0]
2020-05-05 20:45:37.0902|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorEffect [0.9.0.0]
2020-05-05 20:45:37.1422|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SoundEffect [0.9.0.0]
2020-05-05 20:45:37.1588|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.9.0.0]
2020-05-05 20:45:37.1758|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticColorEffect [0.9.0.0]
2020-05-05 20:45:37.1923|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.WaveEffect [0.9.0.0]
2020-05-05 20:45:37.2098|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopySpeedController [0.9.0.0]
2020-05-05 20:45:37.2268|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgSpeedController [0.9.0.0]
2020-05-05 20:45:37.2699|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.9.0.0]
2020-05-05 20:45:37.2874|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.9.0.0]
2020-05-05 20:45:37.3039|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.9.0.0]
2020-05-05 20:45:37.3209|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.LogicTrigger [0.9.0.0]
2020-05-05 20:45:37.3369|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.9.0.0]
2020-05-05 20:45:37.3539|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.9.0.0]
2020-05-05 20:45:37.3704|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseTrigger [0.9.0.0]
2020-05-05 20:45:37.3880|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ScheduleTrigger [0.9.0.0]
2020-05-05 20:45:37.4050|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorTrigger [0.9.0.0]
2020-05-05 20:45:37.4120|INFO|TTController.Service.Managers.ConfigManager|Creating Config Manager...
2020-05-05 20:45:37.4720|INFO|TTController.Service.Managers.ConfigManager|Loading config...
2020-05-05 20:45:37.7337|INFO|TTController.Service.Utils.DataCache|Creating DataCache...
2020-05-05 20:45:37.7398|INFO|TTController.Service.Utils.PluginStore|Creating Plugin Store...
2020-05-05 20:45:37.7398|INFO|TTController.Service.Managers.SensorManager|Creating Sensor Manager...
2020-05-05 20:45:37.7398|INFO|TTController.Service.Hardware.LibreHardwareMonitorFacade|Initializing Libre Hardware Monitor...
2020-05-05 20:45:37.8652|INFO|TTController.Service.Managers.DeviceManager|Creating Device Manager...
2020-05-05 20:45:37.9322|INFO|TTController.Service.Managers.DeviceManager|Initialized "Riing Plus" controller [9802, 8101]
2020-05-05 20:45:37.9322|INFO|TTController.Service.Managers.SensorManager|Enabling sensor: /gpu/0/temperature/0
2020-05-05 20:45:37.9422|INFO|TTController.Service.Utils.PluginStore|Adding plugin "SensorEffect" [Default]
2020-05-05 20:45:37.9422|INFO|TTController.Service.Utils.PluginStore|Adding plugin "SoundEffect" [Default]
2020-05-05 20:45:37.9422|INFO|TTController.Service.Utils.PluginStore|Adding plugin "SensorEffect" [Default]
2020-05-05 20:45:37.9422|INFO|TTController.Service.Utils.PluginStore|Adding plugin "AuroraEffect" [Default]
2020-05-05 20:45:37.9422|INFO|TTController.Service.Utils.PluginStore|Adding plugin "SensorEffect" [Default]
2020-05-05 20:45:37.9567|INFO|TTController.Service.Utils.PluginStore|Adding plugin "PwmSpeedController" [Default]
2020-05-05 20:45:37.9723|INFO|TTController.Service.Managers.TimerManager|Creating Timer Manager...
2020-05-05 20:45:37.9723|INFO|TTController.Service.Managers.TimerManager|Starting 4 timers...
2020-05-05 20:45:37.9723|INFO|TTController.Service.TTService|Initializing done!
2020-05-05 20:45:37.9723|INFO|TTController.Service.TTService|================================================================
2020-05-05 21:16:09.4569|INFO|TTController.Service.TTService|================================================================
2020-05-05 21:16:09.4569|INFO|TTController.Service.TTService|Finalizing...
2020-05-05 21:16:09.4569|INFO|TTController.Service.Managers.TimerManager|Disposing Timer Manager...
2020-05-05 21:16:09.4569|INFO|TTController.Service.Managers.TimerManager|Stopping 4 timers...
2020-05-05 21:16:09.4804|INFO|TTController.Service.TTService|Applying computer state profile: Suspend
2020-05-05 21:16:09.4804|INFO|TTController.Service.Managers.SensorManager|Disposing Sensor Manager...
2020-05-05 21:16:09.4874|INFO|TTController.Service.Hardware.LibreHardwareMonitorFacade|Finalizing Libre Hardware Monitor...
2020-05-05 21:16:09.5299|INFO|TTController.Service.Managers.DeviceManager|Disposing Device Manager...
2020-05-05 21:16:09.5344|INFO|TTController.Service.Managers.ConfigManager|Disposing Config Manager...
2020-05-05 21:16:09.5344|INFO|TTController.Service.Utils.PluginStore|Disposing Plugin Store...
2020-05-05 21:16:09.5344|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "SensorEffect" [Default]
2020-05-05 21:16:09.6308|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "SoundEffect" [Default]
2020-05-05 21:16:09.6308|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "SensorEffect" [Default]
2020-05-05 21:16:09.6308|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "AuroraEffect" [Default]
2020-05-05 21:16:09.6308|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "SensorEffect" [Default]
2020-05-05 21:16:09.6308|INFO|TTController.Service.Utils.PluginStore|Disposing plugin "PwmSpeedController" [Default]
2020-05-05 21:16:09.6473|INFO|TTController.Service.TTService|Finalizing done!
2020-05-05 21:16:10.0315|INFO|TTController.Service.TTService|================================================================
2020-05-06 08:06:01.8917|INFO|TTController.Service.TTService|================================================================
2020-05-06 08:06:01.8977|INFO|TTController.Service.TTService|Initializing...
2020-05-06 08:06:02.5152|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgController [0.9.0.0]
2020-05-06 08:06:02.5192|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingController [0.9.0.0]
2020-05-06 08:06:02.5192|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingPlusController [0.9.0.0]
2020-05-06 08:06:02.5192|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingTrioController [0.9.0.0]
2020-05-06 08:06:02.5192|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AuroraEffect [0.9.0.0]
2020-05-06 08:06:02.5377|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.9.0.0]
2020-05-06 08:06:02.5377|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopyColorEffect [0.9.0.0]
2020-05-06 08:06:02.5377|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FlowEffect [0.9.0.0]
2020-05-06 08:06:02.5507|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PingPongEffect [0.9.0.0]
2020-05-06 08:06:02.5507|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseEffect [0.9.0.0]
2020-05-06 08:06:02.5507|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RawEffect [0.9.0.0]
2020-05-06 08:06:02.5657|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RazerConnectEffect [0.9.0.0]
2020-05-06 08:06:02.5657|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RippleEffect [0.9.0.0]
2020-05-06 08:06:02.5657|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorEffect [0.9.0.0]
2020-05-06 08:06:02.5657|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SoundEffect [0.9.0.0]
2020-05-06 08:06:02.5657|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.9.0.0]
2020-05-06 08:06:02.5843|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticColorEffect [0.9.0.0]
2020-05-06 08:06:02.5843|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.WaveEffect [0.9.0.0]
2020-05-06 08:06:02.5843|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopySpeedController [0.9.0.0]
2020-05-06 08:06:02.5973|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgSpeedController [0.9.0.0]
2020-05-06 08:06:02.5973|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.9.0.0]
2020-05-06 08:06:02.5973|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.9.0.0]
2020-05-06 08:06:02.5973|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.9.0.0]
2020-05-06 08:06:02.6123|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.LogicTrigger [0.9.0.0]
2020-05-06 08:06:02.6123|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.9.0.0]
2020-05-06 08:06:02.6123|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.9.0.0]
2020-05-06 08:06:02.6123|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseTrigger [0.9.0.0]
2020-05-06 08:06:02.6123|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ScheduleTrigger [0.9.0.0]
2020-05-06 08:06:02.6298|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorTrigger [0.9.0.0]
2020-05-06 08:06:02.6298|INFO|TTController.Service.Managers.ConfigManager|Creating Config Manager...
2020-05-06 08:06:02.6843|INFO|TTController.Service.Managers.ConfigManager|Loading config...
2020-05-06 08:06:02.7799|FATAL|TTController.Service.Managers.ConfigManager|System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> CSCore.CoreAudioAPI.CoreAudioAPIException: IAudioClient::IsFormatSupported caused an error: 0x80070003, "The system cannot find the path specified.".
   at CSCore.CoreAudioAPI.AudioClient.IsFormatSupported(AudioClientShareMode shareMode, WaveFormat waveFormat, WaveFormat& closestMatch)
   at CSCore.SoundIn.WasapiCapture.SetupWaveFormat(WaveFormat waveFormat, AudioClient audioClient)
   at CSCore.SoundIn.WasapiCapture.InitializeInternal()
   at CSCore.SoundIn.WasapiCapture.Initialize()
   at TTController.Plugin.SoundEffect.SoundEffect..ctor(SoundEffectConfig config) in C:\projects\ttcontroller\Plugins\Effects\TTController.Plugin.SoundEffect\SoundEffect.cs:line 32
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at TTController.Service.Config.Converters.AbstractPluginConverter`2.ReadJson(JsonReader reader, Type objectType, TPlugin existingValue, Boolean hasExistingValue, JsonSerializer serializer) in C:\projects\ttcontroller\Source\TTController.Service\Config\Converters\AbstractPluginConverter.cs:line 39
   at Newtonsoft.Json.JsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
   at TTController.Service.Managers.ConfigManager.LoadOrCreateConfig() in C:\projects\ttcontroller\Source\TTController.Service\Managers\ConfigManager.cs:line 87
2020-05-06 08:06:02.8185|FATAL|TTController.Service.Managers.ConfigManager|Failed to load the config!
2020-05-06 08:06:02.8185|FATAL|TTController.Service.TTService|System.Exception: Service failed to start!
   at TTController.Service.TTService.OnStart(String[] args) in C:\projects\ttcontroller\Source\TTController.Service\TTService.cs:line 123

Current configuration

{
  "Profiles": [
    {
      "Name": "Default",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3]
      ],
      "SpeedControllers": [
        {
          "Type": "PwmSpeedController",
          "Config": {
            "CurvePoints": [
              [30, 30],
              [45, 50],
              [55, 60],
              [65, 80],
              [80, 100]
            ],
            "Sensors": ["/gpu/0/temperature/0"],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ],
      "Effects": [
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/gpu/0/temperature/0"],
            "ColorGradient": [
              [75, [0, 0, 0]],
              [80, [10, 0, 0]]
            ],
            "Trigger": {
              "Type": "ProcessTrigger",
              "Config": {
                  "Processes": ["wordpad"]
              }
            }
          }
        },
        {
          "Type": "SoundEffect",
          "Config": {
            "MinimumFrequency": 60,
            "MaximumFrequency": 100,
            "ScalingStrategy": "Sqrt",
            "ScalingFactor": 1.0,
            "ColorGradient": [
              [0, [255, 0, 0]],
              [0.2, [0, 0, 255]],
              [0.35, [255, 0, 0]],
              [0.5, [0, 255, 0]],
              [1, [255, 0, 255]]
            ],
            "Trigger": {
              "Type": "ProcessTrigger",
              "Config": {
                  "Processes": ["notepad"]
              }
            }
          }
        },
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/gpu/0/temperature/0"],
            "ColorGradient": [
              [62, [20, 0, 0]],
              [66, [40, 5, 0]],
              [75, [80, 0, 5]],
              [80, [255, 120, 0]]
            ],
            "Trigger": {
              "Type": "SensorTrigger",
              "Config": {
                  "Sensors": ["/gpu/0/temperature/0"],
                  "Value": 62
              }
            }
          }
        },
        {
          "Type": "AuroraEffect",
          "Config": {
            "Gradient": [
                [0.01, [220, 0, 0]],
                [0.02, [215, 5, 0]],
                [0.03, [200, 10, 0]],
                [0.04, [140, 80, 0]],
                [0.05, [20, 255, 30]],
                [0.06, [0, 140, 170]],
                [0.07, [0, 80, 200]],
                [0.08, [55, 60, 160]],
                [0.09, [180, 30, 60]],
                [0.10, [200, 2, 4]],
                [0.11, [220, 0, 1]],
                [0.12, [140, 50, 0]],
                [0.13, [140, 100, 0]],
                [0.14, [40, 140, 0]],
                [0.15, [70, 100, 2]],
                [0.16, [40, 80, 5]],
                [0.17, [35, 65, 20]],
                [0.18, [40, 55, 80]],
                [0.19, [50, 35, 100]],
                [0.20, [70, 70, 85]],
                [0.21, [77, 80, 75]],
                [0.22, [78, 81, 88]],
                [0.23, [79, 82, 89]],
                [0.24, [88, 100, 94]],
                [0.25, [96, 104, 105]],
                [0.26, [140, 165, 130]],
                [0.27, [175, 168, 179]],
                [0.28, [165, 210, 255]],
                [0.29, [90, 100, 255]],
                [0.30, [123, 192, 133]],
                [0.31, [139, 255, 144]],
                [0.32, [200, 210, 195]],
                [0.33, [230, 225, 232]],
                [0.34, [243, 241, 248]],
                [0.35, [255, 255, 255]],
                [0.36, [230, 223, 240]],
                [0.37, [200, 200, 200]],
                [0.38, [165, 160, 162]],
                [0.39, [130, 134, 132]],
                [0.40, [110, 115, 125]],
                [0.41, [102, 90, 110]],
                [0.42, [92, 80, 85]],
                [0.43, [91, 75, 65]],
                [0.44, [105, 70, 50]],
                [0.45, [120, 65, 45]],
                [0.46, [145, 55, 25]],
                [0.47, [170, 25, 0]],
                [0.48, [200, 5, 0]],
                [0.49, [220, 0, 0]],
                [0.50, [215, 5, 0]],
                [0.51, [200, 10, 0]],
                [0.52, [140, 80, 0]],
                [0.53, [20, 255, 30]],
                [0.54, [0, 140, 170]],
                [0.55, [0, 80, 200]],
                [0.56, [55, 60, 160]],
                [0.57, [180, 30, 60]],
                [0.58, [200, 2, 4]],
                [0.59, [220, 0, 1]],
                [0.60, [140, 50, 0]],
                [0.61, [140, 100, 0]],
                [0.62, [40, 140, 0]],
                [0.63, [70, 100, 2]],
                [0.64, [40, 80, 5]],
                [0.65, [35, 65, 20]],
                [0.66, [40, 55, 80]],
                [0.67, [50, 35, 100]],
                [0.68, [70, 70, 85]],
                [0.69, [77, 80, 75]],
                [0.70, [90, 70, 50]],
                [0.71, [120, 65, 45]],
                [0.72, [145, 55, 25]],
                [0.73, [170, 25, 0]],
                [0.74, [200, 5, 0]],
                [0.75, [220, 0, 0]],
                [0.76, [215, 5, 0]],
                [0.77, [200, 10, 0]],
                [0.78, [140, 90, 0]],
                [0.79, [20, 255, 30]],
                [0.80, [0, 140, 170]],
                [0.81, [0, 80, 200]],
                [0.82, [55, 60, 160]],
                [0.83, [180, 30, 60]],
                [0.84, [255, 2, 4]],
                [0.85, [220, 0, 1]],
                [0.86, [140, 50, 0]],
                [0.87, [140, 100, 0]],
                [0.88, [40, 140, 0]],
                [0.89, [70, 100, 2]],
                [0.90, [40, 80, 5]],
                [0.91, [35, 65, 20]],
                [0.92, [40, 35, 80]],
                [0.93, [50, 20, 100]],
                [0.94, [70, 70, 85]],
                [0.95, [77, 80, 75]],
                [0.96, [90, 70, 50]],
                [0.97, [120, 65, 45]],
                [0.98, [145, 55, 25]],
                [0.99, [170, 25, 0]],
                [1.0, [200, 5, 0]]

            ],
            "Step": 0.0001,
            "Length": 480,
            "Mirror": true,
            "Brightness": 1,
            "Saturation": 1,
            "ColorGenerationMethod": "SpanPorts",
            "Trigger": {
              "Type": "ScheduleTrigger",
              "Config": {
                  "Scope": "Day",
                  "Schedule": [
                      "08:00 -> 20:00"
                  ]
              }
            }
          }
        },
        {
          "Type": "SensorEffect",
          "Config": {
            "Sensors": ["/gpu/0/temperature/0"],
            "ColorGradient": [
              [47, [20, 0, 0]],
              [60, [125, 0, 0]],
              [75, [255, 0, 0]]
            ],
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "ComputerStateProfiles": [
    {
      "StateType": "Shutdown",
      "Ports": [
        [9802, 8101, 1],
        [9802, 8101, 2],
        [9802, 8101, 3]
      ],
      "Speed": 65,
      "EffectType": "Full",
      "EffectColors": [
        [128, 0, 0]
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [[9802, 8101, 1]],
      "Config": {
        "Name": "Top Fan"
      }
    }
  ],
  "SensorConfigs": [
    {
      "Sensors": ["/gpu/0/temperature/0"],
      "Config": {
        "CriticalValue": 90
      }
    }
  ]
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.