@@ -269,7 +269,15 @@ private bool DeviceSpeedTimerCallback()
269269 if ( speedController == null )
270270 continue ;
271271
272- speedMap = speedController . GenerateSpeeds ( profile . Ports , _cache . AsReadOnly ( ) ) ;
272+ try
273+ {
274+ speedMap = speedController . GenerateSpeeds ( profile . Ports , _cache . AsReadOnly ( ) ) ;
275+ }
276+ catch ( Exception e )
277+ {
278+ Logger . Fatal ( "{0} failed with {1}" , speedController . GetType ( ) . Name , e ) ;
279+ speedMap = profile . Ports . ToDictionary ( p => p , _ => ( byte ) 100 ) ;
280+ }
273281 }
274282
275283 if ( speedMap == null )
@@ -300,7 +308,21 @@ public bool DeviceRgbTimerCallback()
300308 if ( effect == null )
301309 continue ;
302310
303- var colorMap = effect . GenerateColors ( profile . Ports , _cache . AsReadOnly ( ) ) ;
311+ IDictionary < PortIdentifier , List < LedColor > > colorMap ;
312+ string effectType ;
313+
314+ try
315+ {
316+ colorMap = effect . GenerateColors ( profile . Ports , _cache . AsReadOnly ( ) ) ;
317+ effectType = effect . EffectType ;
318+ }
319+ catch ( Exception e )
320+ {
321+ Logger . Fatal ( "{0} failed with {1}" , effect . GetType ( ) . Name , e ) ;
322+ colorMap = profile . Ports . ToDictionary ( p => p , _ => new List < LedColor > ( ) { new LedColor ( 255 , 0 , 0 ) } ) ;
323+ effectType = "Full" ;
324+ }
325+
304326 if ( colorMap == null )
305327 continue ;
306328
@@ -360,7 +382,7 @@ public bool DeviceRgbTimerCallback()
360382 continue ;
361383
362384 var controller = _deviceManager . GetController ( port ) ;
363- var effectByte = controller ? . GetEffectByte ( effect . EffectType ) ;
385+ var effectByte = controller ? . GetEffectByte ( effectType ) ;
364386 if ( effectByte == null )
365387 continue ;
366388
0 commit comments