@@ -79,16 +79,18 @@ private set
7979 }
8080 }
8181
82- private byte _backgroundQueuedStatusPolicy ;
83- public byte BackgroundQueuedStatusPolicy
82+ private byte ? _backgroundQueuedStatusPolicy ;
83+ public byte ? BackgroundQueuedStatusPolicy
8484 {
8585 get { return _backgroundQueuedStatusPolicy ; }
8686 set
8787 {
88+ if ( ! value . HasValue )
89+ return ;
8890 if ( _backgroundQueuedStatusPolicy == value )
8991 return ;
9092 _backgroundQueuedStatusPolicy = value ;
91- ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . BACKGROUND_QUEUED_STATUS_POLICY , new GetBackgroundQueuedStatusPolicyResponse ( this . _backgroundQueuedStatusPolicy , ( byte ) this . backgroundQueueStatusPolicyDescriptionDict . Count ) ) ;
93+ ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . BACKGROUND_QUEUED_STATUS_POLICY , new GetBackgroundQueuedStatusPolicyResponse ( this . _backgroundQueuedStatusPolicy . Value , ( byte ) this . backgroundQueueStatusPolicyDescriptionDict . Count ) ) ;
9294 OnPropertyChanged ( nameof ( BackgroundQueuedStatusPolicy ) ) ;
9395 }
9496 }
@@ -208,7 +210,8 @@ protected override void OnParentGeneratedDeviceChanged(AbstractGeneratedRDMDevic
208210 ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . ENDPOINT_TIMING_DESCRIPTION , timingDescriptionDict ) ;
209211
210212 //ParentGeneratedDevice.setParameterValue(ERDM_Parameter.BINDING_CONTROL_FIELDS, null); // Handled dynamically in handleRequest, because of two identifiers (endpoint and responder UID)
211- ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . BACKGROUND_QUEUED_STATUS_POLICY , new GetBackgroundQueuedStatusPolicyResponse ( this . _backgroundQueuedStatusPolicy , ( byte ) this . backgroundQueueStatusPolicyDescriptionDict . Count ) ) ;
213+ if ( this . _backgroundQueuedStatusPolicy . HasValue )
214+ ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . BACKGROUND_QUEUED_STATUS_POLICY , new GetBackgroundQueuedStatusPolicyResponse ( this . _backgroundQueuedStatusPolicy . Value , ( byte ) this . backgroundQueueStatusPolicyDescriptionDict . Count ) ) ;
212215
213216 ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . ENDPOINT_LIST , new GetEndpointListResponse ( listChanged , _endpoints . Values . Select ( ep => new EndpointDescriptor ( ep . EndpointId , ep . Type ) ) . ToArray ( ) ) ) ;
214217 ParentGeneratedDevice . setParameterValue ( ERDM_Parameter . ENDPOINT_LIST_CHANGE , listChanged ) ;
@@ -751,4 +754,14 @@ public async Task<bool> SetTiming(ushort endpointId, byte timing)
751754 }
752755 return false ;
753756 }
757+ public async Task < bool > SetBackgroundQueuedStatusPolicy ( byte backgroundQueuedStatusPolicy )
758+ {
759+ if ( await ParentRemoteDevice . SetParameter ( ERDM_Parameter . BACKGROUND_QUEUED_STATUS_POLICY , backgroundQueuedStatusPolicy ) )
760+ {
761+ this . _backgroundQueuedStatusPolicy = backgroundQueuedStatusPolicy ;
762+ OnPropertyChanged ( nameof ( BackgroundQueuedStatusPolicy ) ) ;
763+ return true ;
764+ }
765+ return false ;
766+ }
754767}
0 commit comments