@@ -109,6 +109,9 @@ CBORMessageEncoder::EncoderState CBORMessageEncoder::handle_EncodeArray(CborEnco
109109 case CommandId::ProvisioningJWT:
110110 array_size = 1 ;
111111 break ;
112+ case CommandId::ProvisioningBLEMacAddress:
113+ array_size = 1 ;
114+ break ;
112115 default :
113116 return EncoderState::MessageNotSupported;
114117 }
@@ -154,6 +157,9 @@ CBORMessageEncoder::EncoderState CBORMessageEncoder::handle_EncodeParam(CborEnco
154157 case CommandId::ProvisioningJWT:
155158 error = CBORMessageEncoder::encodeProvisioningJWT (array_encoder, message);
156159 break ;
160+ case CommandId::ProvisioningBLEMacAddress:
161+ error = CBORMessageEncoder::encodeProvisioningBLEMacAddress (array_encoder, message);
162+ break ;
157163 default :
158164 return EncoderState::MessageNotSupported;
159165 }
@@ -230,4 +236,17 @@ CborError CBORMessageEncoder::encodeProvisioningJWT(CborEncoder * array_encoder,
230236 ProvisioningJWTMessage * provisioningJWT = (ProvisioningJWTMessage *) message;
231237 CHECK_CBOR (cbor_encode_byte_string (array_encoder, (uint8_t *) provisioningJWT->params .jwt , PROVISIONING_JWT_SIZE));
232238 return CborNoError;
233- }
239+ }
240+
241+ CborError CBORMessageEncoder::encodeProvisioningBLEMacAddress (CborEncoder *array_encoder, Message *message)
242+ {
243+ ProvisioningBLEMacAddressMessage *provisioningBLEMacAddress = (ProvisioningBLEMacAddressMessage *)message;
244+ uint8_t size = 0 ;
245+ uint8_t emptyMac[] = {0 , 0 , 0 , 0 , 0 , 0 };
246+ if (memcmp (provisioningBLEMacAddress->params .macAddress , emptyMac, BLE_MAC_ADDRESS_SIZE) != 0 )
247+ {
248+ size = BLE_MAC_ADDRESS_SIZE;
249+ }
250+ CHECK_CBOR (cbor_encode_byte_string (array_encoder, provisioningBLEMacAddress->params .macAddress , size));
251+ return CborNoError;
252+ }
0 commit comments