@@ -398,8 +398,34 @@ public Task<CMDResult> PollValue(ValueID ValueID)
398
398
return Result . Task ;
399
399
}
400
400
401
- // FIX ME
402
- public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value , int ValueSize )
401
+ // CHECKED - Variant 1: Normal parameter, defined in a config file
402
+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value )
403
+ {
404
+ Guid ID = Guid . NewGuid ( ) ;
405
+
406
+ TaskCompletionSource < CMDResult > Result = new TaskCompletionSource < CMDResult > ( ) ;
407
+ Driver . Instance . Callbacks . Add ( ID , ( JO ) =>
408
+ {
409
+ CMDResult Res = new CMDResult ( JO ) ;
410
+ Result . SetResult ( Res ) ;
411
+ } ) ;
412
+
413
+ Dictionary < string , object > Request = new Dictionary < string , object > ( ) ;
414
+ Request . Add ( "messageId" , ID ) ;
415
+ Request . Add ( "command" , Enums . Commands . SetRawConfigParameterValue ) ;
416
+ Request . Add ( "nodeId" , this . id ) ;
417
+ Request . Add ( "parameter" , Parameter ) ;
418
+ Request . Add ( "value" , Value ) ;
419
+
420
+
421
+ string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
422
+ Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
423
+
424
+ return Result . Task ;
425
+ }
426
+
427
+ // CHECKED - Variant 2: Normal parameter, not defined in a config file
428
+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value , int ValueSize , Enums . ConfigValueFormat ValueFormat )
403
429
{
404
430
Guid ID = Guid . NewGuid ( ) ;
405
431
@@ -417,13 +443,42 @@ public Task<CMDResult> ZWJSS_SetRawConfigParameterValue(int Parameter, int Value
417
443
Request . Add ( "parameter" , Parameter ) ;
418
444
Request . Add ( "value" , Value ) ;
419
445
Request . Add ( "valueSize" , ValueSize ) ;
446
+ Request . Add ( "valueFormat" , ValueFormat ) ;
447
+
420
448
421
449
string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
422
450
Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
423
451
424
452
return Result . Task ;
425
453
}
426
454
455
+ // CHECKED - Variant 3: Partial parameter, must be defined in a config file
456
+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Bitmask , int Value )
457
+ {
458
+ Guid ID = Guid . NewGuid ( ) ;
459
+
460
+ TaskCompletionSource < CMDResult > Result = new TaskCompletionSource < CMDResult > ( ) ;
461
+ Driver . Instance . Callbacks . Add ( ID , ( JO ) =>
462
+ {
463
+ CMDResult Res = new CMDResult ( JO ) ;
464
+ Result . SetResult ( Res ) ;
465
+ } ) ;
466
+
467
+ Dictionary < string , object > Request = new Dictionary < string , object > ( ) ;
468
+ Request . Add ( "messageId" , ID ) ;
469
+ Request . Add ( "command" , Enums . Commands . SetRawConfigParameterValue ) ;
470
+ Request . Add ( "nodeId" , this . id ) ;
471
+ Request . Add ( "parameter" , Parameter ) ;
472
+ Request . Add ( "bitMask" , Bitmask ) ;
473
+ Request . Add ( "value" , Value ) ;
474
+
475
+
476
+ string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
477
+ Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
478
+
479
+ return Result . Task ;
480
+ }
481
+
427
482
// CHECKED
428
483
public Task < CMDResult > RefreshValues ( )
429
484
{
0 commit comments