Skip to content

Use wifi fw version cbor encoder of CloudUtils #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 3, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 0 additions & 27 deletions extras/test/src/test_provisioning_command_encode.cpp
Original file line number Diff line number Diff line change
@@ -209,33 +209,6 @@
}
}

WHEN("Encode a message with provisioning wifi fw version ")
{
WiFiFWVersionProvisioningMessage command;
command.c.id = ProvisioningMessageId::WiFiFWVersionProvisioningMessageId;
command.wifiFwVersion = "1.6.0";
uint8_t buffer[512];
size_t bytes_encoded = sizeof(buffer);

CBORMessageEncoder encoder;
MessageEncoder::Status err = encoder.encode((Message*)&command, buffer, bytes_encoded);

uint8_t expected_result[] = {
0xda, 0x00, 0x01, 0x20, 0x14, 0x81, 0x65, 0x31, 0x2E, 0x36, 0x2E, 0x30
};

// Test the encoding is
//DA 00012014 # tag(73748)
// 81 # array(1)
// 65 # text(5)
// 312E362E30 # "1.6.0"
THEN("The encoding is successful") {
REQUIRE(err == MessageEncoder::Status::Complete);
REQUIRE(bytes_encoded == sizeof(expected_result));
REQUIRE(memcmp(buffer, expected_result, sizeof(expected_result)) == 0);
}
}

WHEN("Encode a message with provisioning sketch version ")
{
ProvSketchVersionProvisioningMessage command;
Original file line number Diff line number Diff line change
@@ -87,9 +87,9 @@ bool CBORAdapter::wifiFWVersionToCBOR(const char *wifiFWVersion, uint8_t *data,
if(*len < CBOR_MIN_WIFI_FW_VERSION_LEN + strlen(wifiFWVersion)) {
return false;
}
WiFiFWVersionProvisioningMessage wifiFWVersionMsg;
wifiFWVersionMsg.c.id = ProvisioningMessageId::WiFiFWVersionProvisioningMessageId;
wifiFWVersionMsg.wifiFwVersion = wifiFWVersion;
VersionMessage wifiFWVersionMsg;
wifiFWVersionMsg.c.id = StandardMessageId::WiFiFWVersionMessageId;
wifiFWVersionMsg.params.version = wifiFWVersion;

MessageEncoder::Status status = encoder.encode((Message *)&wifiFWVersionMsg, data, *len);

Original file line number Diff line number Diff line change
@@ -8,7 +8,6 @@ static ListWifiNetworksProvisioningMessageEncoder listWifiNetworksProvisioning
static UniqueHardwareIdProvisioningMessageEncoder uniqueHardwareIdProvisioningMessageEncoder;
static JWTProvisioningMessageEncoder jWTProvisioningMessageEncoder;
static BLEMacAddressProvisioningMessageEncoder bLEMacAddressProvisioningMessageEncoder;
static WiFiFWVersionProvisioningMessageEncoder wiFiFWVersionProvisioningMessageEncoder;
static ProvSketchVersionProvisioningMessageEncoder provSketchVersionProvisioningMessageEncoder;
static NetConfigLibVersProvisioningMessageEncoder netConfigLibVersProvisioningMessageEncoder;

Original file line number Diff line number Diff line change
@@ -116,25 +116,6 @@ MessageEncoder::Status BLEMacAddressProvisioningMessageEncoder::encode(CborEncod
return MessageEncoder::Status::Complete;
}

MessageEncoder::Status WiFiFWVersionProvisioningMessageEncoder::encode(CborEncoder* encoder, Message *msg) {
WiFiFWVersionProvisioningMessage * provisioningWiFiFWVersion = (WiFiFWVersionProvisioningMessage*) msg;
CborEncoder array_encoder;

if(cbor_encoder_create_array(encoder, &array_encoder, 1) != CborNoError) {
return MessageEncoder::Status::Error;
}

if(cbor_encode_text_stringz(&array_encoder, provisioningWiFiFWVersion->wifiFwVersion) != CborNoError) {
return MessageEncoder::Status::Error;
}

if(cbor_encoder_close_container(encoder, &array_encoder) != CborNoError) {
return MessageEncoder::Status::Error;
}

return MessageEncoder::Status::Complete;
}

MessageEncoder::Status ProvSketchVersionProvisioningMessageEncoder::encode(CborEncoder* encoder, Message *msg) {
ProvSketchVersionProvisioningMessage * provisioningSketchVersion = (ProvSketchVersionProvisioningMessage*) msg;
CborEncoder array_encoder;
Original file line number Diff line number Diff line change
@@ -52,14 +52,6 @@ class BLEMacAddressProvisioningMessageEncoder: public CBORMessageEncoderInterfac
MessageEncoder::Status encode(CborEncoder* encoder, Message *msg) override;
};

class WiFiFWVersionProvisioningMessageEncoder: public CBORMessageEncoderInterface {
public:
WiFiFWVersionProvisioningMessageEncoder()
: CBORMessageEncoderInterface(CBORWiFiFWVersionProvisioningMessage, WiFiFWVersionProvisioningMessageId) {}
protected:
MessageEncoder::Status encode(CborEncoder* encoder, Message *msg) override;
};

class ProvSketchVersionProvisioningMessageEncoder: public CBORMessageEncoderInterface {
public:
ProvSketchVersionProvisioningMessageEncoder()
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
#include <stdint.h>
#include <stddef.h>
#include <Arduino_CBOR.h>
#include <cbor/standards/StandardMessages.h>
#include <ConnectionHandlerDefinitions.h>
#include <connectionHandlerModels/settings.h>
#include <configuratorAgents/NetworkOptionsDefinitions.h>
@@ -47,7 +48,6 @@ enum CBORProvisioningMessageTag: CBORTag {
CBORUniqueHardwareIdProvisioningMessage = 0x012010,
CBORJWTProvisioningMessage = 0x012011,
CBORBLEMacAddressProvisioningMessage = 0x012013,
CBORWiFiFWVersionProvisioningMessage = 0x012014,
CBORProvSketchVersionProvisioningMessage = 0x012015,
CBORNetConfigLibVersProvisioningMessage = 0x012016,
};
@@ -58,7 +58,6 @@ enum ProvisioningMessageId: MessageId {
ListWifiNetworksProvisioningMessageId,
UniqueHardwareIdProvisioningMessageId,
BLEMacAddressProvisioningMessageId,
WiFiFWVersionProvisioningMessageId,
ProvSketchVersionProvisioningMessageId,
NetConfigLibVersProvisioningMessageId,
JWTProvisioningMessageId,
@@ -116,13 +115,6 @@ struct BLEMacAddressProvisioningMessage {
};
};

struct WiFiFWVersionProvisioningMessage {
ProvisioningMessage c;
struct {
const char *wifiFwVersion; //The payload is a string.
};
};

struct ProvSketchVersionProvisioningMessage {
ProvisioningMessage c;
struct {