2121#include " MessageDecoder.h"
2222#include < AIoTC_Config.h>
2323
24+ #include < settings/settings.h>
25+ #include < settings/settings_default.h>
26+
2427/* *****************************************************************************
2528 PUBLIC MEMBER FUNCTIONS
2629 ******************************************************************************/
@@ -265,6 +268,7 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningComma
265268 return ArrayParserState::LeaveArray;
266269}
267270
271+ #if defined(BOARD_HAS_LORA)
268272CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningLoRaConfigMessage (CborValue * param, Message * message) {
269273 ProvisioningLoRaConfigMessage * provisioningLoRaConfig = (ProvisioningLoRaConfigMessage *) message;
270274 // Message is composed of 5 parameters: app_eui, app_key, band, channel_mask, device_class
@@ -311,9 +315,15 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningLoRaC
311315 return ArrayParserState::Error;
312316 }
313317
318+ if (provisioningLoRaConfig->params .deviceClass [0 ] == ' \0 ' ) {
319+ provisioningLoRaConfig->params .deviceClass [0 ] = models::settingsDefault (NetworkAdapter::LORA).lora .deviceClass ;
320+ }
321+
314322 return ArrayParserState::LeaveArray;
315323}
324+ #endif
316325
326+ #if defined(BOARD_HAS_CATM1_NBIOT)
317327CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningCATM1ConfigMessage (CborValue * param, Message * message) {
318328 ProvisioningCATM1ConfigMessage * provisioningCATM1Config = (ProvisioningCATM1ConfigMessage *) message;
319329 CborValue array_iter;
@@ -346,7 +356,11 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningCATM1
346356 return ArrayParserState::Error;
347357 }
348358
349- for (size_t i = 0 ; i < arrayLength; i++) {
359+ if (arrayLength == 0 ) {
360+ provisioningCATM1Config->params .band [0 ] = models::settingsDefault (NetworkAdapter::CATM1).catm1 .band ;
361+ }
362+
363+ for (size_t i = 0 ; i < arrayLength; i++) {
350364 if (!cbor_value_is_unsigned_integer (&array_iter)) {
351365 return ArrayParserState::Error;
352366 }
@@ -391,7 +405,9 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningCATM1
391405
392406 return ArrayParserState::LeaveArray;
393407}
408+ #endif
394409
410+ #if defined(BOARD_HAS_ETHERNET)
395411CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningEthernetConfigMessage (CborValue * param, Message * message){
396412 ProvisioningEthernetConfigMessage * provisioningEthernetConfig = (ProvisioningEthernetConfigMessage *) message;
397413
@@ -439,6 +455,10 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningEther
439455 }
440456 }
441457
458+ if (provisioningEthernetConfig->params .timeout == 0 ) {
459+ provisioningEthernetConfig->params .timeout = models::settingsDefault (NetworkAdapter::ETHERNET).eth .timeout ;
460+ }
461+
442462 // Next
443463 if (cbor_value_advance (param) != CborNoError) {
444464 return ArrayParserState::Error;
@@ -449,10 +469,15 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::decodeProvisioningEther
449469 if (cbor_value_get_int (param, &val) == CborNoError) {
450470 provisioningEthernetConfig->params .response_timeout = val;
451471 }
472+ }
473+
474+ if (provisioningEthernetConfig->params .response_timeout == 0 ) {
475+ provisioningEthernetConfig->params .response_timeout = models::settingsDefault (NetworkAdapter::ETHERNET).eth .response_timeout ;
452476 }
453477
454478 return ArrayParserState::LeaveArray;
455479}
480+ #endif
456481
457482bool CBORMessageDecoder::getProvisioningIPStructFromMessage (CborValue *param, ProvisioningIPStruct *ipStruct)
458483{
@@ -546,22 +571,28 @@ CBORMessageDecoder::ArrayParserState CBORMessageDecoder::handle_Param(CborValue
546571
547572 case CommandId::ProvisioningCommands:
548573 return CBORMessageDecoder::decodeProvisioningCommandsMessage (param, message);
549-
574+
575+ #if defined(BOARD_HAS_LORA)
550576 case CommandId::ProvisioningLoRaConfig:
551577 return CBORMessageDecoder::decodeProvisioningLoRaConfigMessage (param, message);
578+ #endif
552579
553580 case CommandId::ProvisioningGSMConfig:
554581 return CBORMessageDecoder::decodeProvisioningCellularConfigMessage (param, message);
555582
556583 case CommandId::ProvisioningNBIOTConfig:
557584 return CBORMessageDecoder::decodeProvisioningCellularConfigMessage (param, message);
558585
586+ #if defined(BOARD_HAS_CATM1_NBIOT)
559587 case CommandId::ProvisioningCATM1Config:
560588 return CBORMessageDecoder::decodeProvisioningCATM1ConfigMessage (param, message);
561-
589+ #endif
590+
591+ #if defined(BOARD_HAS_ETHERNET)
562592 case CommandId::ProvisioningEthernetConfig:
563593 return CBORMessageDecoder::decodeProvisioningEthernetConfigMessage (param, message);
564-
594+ #endif
595+
565596 case CommandId::ProvisioningCellularConfig:
566597 return CBORMessageDecoder::decodeProvisioningCellularConfigMessage (param, message);
567598
0 commit comments