Skip to content

Commit 27a1842

Browse files
committed
use of default values
1 parent 4be9ce2 commit 27a1842

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

src/cbor/MessageDecoder.cpp

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
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)
268272
CBORMessageDecoder::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)
317327
CBORMessageDecoder::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)
395411
CBORMessageDecoder::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

457482
bool 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

src/cbor/MessageDecoder.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "CBOR.h"
2525
#include "../interfaces/Decoder.h"
2626
#include <Arduino_TinyCBOR.h>
27+
#include <ConnectionHandlerDefinitions.h>
2728

2829
/******************************************************************************
2930
CLASS DECLARATION
@@ -74,9 +75,15 @@ class CBORMessageDecoder: public Decoder
7475
ArrayParserState decodeProvisioningTimestampMessage(CborValue * param, Message * message);
7576
ArrayParserState decodeProvisioningCommandsMessage(CborValue * param, Message * message);
7677
ArrayParserState decodeProvisioningWifiConfigMessage(CborValue * param, Message * message);
78+
#if defined(BOARD_HAS_LORA)
7779
ArrayParserState decodeProvisioningLoRaConfigMessage(CborValue * param, Message * message);
80+
#endif
81+
#if defined(BOARD_HAS_CATM1_NBIOT)
7882
ArrayParserState decodeProvisioningCATM1ConfigMessage(CborValue * param, Message * message);
83+
#endif
84+
#if defined(BOARD_HAS_ETHERNET)
7985
ArrayParserState decodeProvisioningEthernetConfigMessage(CborValue * param, Message * message);
86+
#endif
8087
bool getProvisioningIPStructFromMessage(CborValue * param, ProvisioningIPStruct * message);
8188
ArrayParserState decodeProvisioningCellularConfigMessage(CborValue * param, Message * message);
8289

0 commit comments

Comments
 (0)