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