1313#include " utility/HCI.h"
1414#include < Arduino_HEX.h>
1515
16+ extern const char *SKETCH_VERSION;
17+
1618ClaimingHandlerClass::ClaimingHandlerClass ():
1719 _uhwid {nullptr },
1820 _state {ClaimingHandlerStates::END},
@@ -45,6 +47,10 @@ bool ClaimingHandlerClass::begin(SecureElement &secureElement, String &uhwid, Cl
4547 return false ;
4648 }
4749
50+ if (!_agentManager.addRequestHandler (RequestType::GET_PROVISIONING_SKETCH_VERSION, getProvSketchVersionRequestCb)) {
51+ return false ;
52+ }
53+
4854 if (!_agentManager.addReturnTimestampCallback (setTimestamp)) {
4955 return false ;
5056 }
@@ -76,9 +82,10 @@ void ClaimingHandlerClass::poll() {
7682 _agentManager.update ();
7783
7884 switch (_receivedEvent) {
79- case ClaimingReqEvents::GET_ID: getIdReqHandler (); break ;
80- case ClaimingReqEvents::RESET: resetStoredCredReqHandler (); break ;
81- case ClaimingReqEvents::GET_BLE_MAC_ADDRESS: getBLEMacAddressReqHandler (); break ;
85+ case ClaimingReqEvents::GET_ID: getIdReqHandler (); break ;
86+ case ClaimingReqEvents::RESET: resetStoredCredReqHandler (); break ;
87+ case ClaimingReqEvents::GET_BLE_MAC_ADDRESS: getBLEMacAddressReqHandler (); break ;
88+ case ClaimingReqEvents::GET_PROV_SKETCH_VERSION: getProvSketchVersionReqHandler (); break ;
8289 }
8390 _receivedEvent = ClaimingReqEvents::NONE;
8491 return ;
@@ -149,6 +156,13 @@ void ClaimingHandlerClass::getBLEMacAddressReqHandler() {
149156 _agentManager.sendMsg (outputMsg);
150157}
151158
159+ void ClaimingHandlerClass::getProvSketchVersionReqHandler () {
160+ ProvisioningOutputMessage outputMsg;
161+ outputMsg.type = MessageOutputType::PROV_SKETCH_VERSION;
162+ outputMsg.m .provSketchVersion = SKETCH_VERSION;
163+ _agentManager.sendMsg (outputMsg);
164+ }
165+
152166void ClaimingHandlerClass::getIdRequestCb () {
153167 DEBUG_VERBOSE (" CH Get ID request received" );
154168 _receivedEvent = ClaimingReqEvents::GET_ID;
@@ -167,6 +181,11 @@ void ClaimingHandlerClass::getBLEMacAddressRequestCb() {
167181 _receivedEvent = ClaimingReqEvents::GET_BLE_MAC_ADDRESS;
168182}
169183
184+ void ClaimingHandlerClass::getProvSketchVersionRequestCb () {
185+ DEBUG_VERBOSE (" CH Get provisioning sketch version request received" );
186+ _receivedEvent = ClaimingReqEvents::GET_PROV_SKETCH_VERSION;
187+ }
188+
170189bool ClaimingHandlerClass::sendStatus (StatusMessage msg) {
171190 ProvisioningOutputMessage statusMsg = { MessageOutputType::STATUS, { msg } };
172191 return _agentManager.sendMsg (statusMsg);
0 commit comments