1515#include " SecretsHelper.h"
1616#include < utility/time/TimeService.h>
1717#include < stdlib.h>
18+ #include " Utility/LEDFeedback/LEDFeedback.h"
1819
1920#define RESPONSE_MAX_LEN 1100
2021#define RESPONSE_TIMEOUT 5000
@@ -42,6 +43,7 @@ void CSRHandlerClass::begin(ConnectionHandler *connectionHandler, SecureElement
4243 _uhwid = uhwid;
4344 if (*_uhwid == " " ) {
4445 Serial.println (" Error: UHWID not found" );
46+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
4547 _state = CSRHandlerStates::ERROR;
4648 return ;
4749 }
@@ -82,7 +84,7 @@ CSRHandlerClass::CSRHandlerStates CSRHandlerClass::poll() {
8284 case CSRHandlerStates::CERT_CREATED: _state = handleCertCreated (); break ;
8385 case CSRHandlerStates::WAITING_COMPLETE_RES: _state = handleWaitingCompleteRes (); break ;
8486 case CSRHandlerStates::COMPLETED: break ;
85- case CSRHandlerStates::ERROR: break ;
87+ case CSRHandlerStates::ERROR: handleError (); break ;
8688 case CSRHandlerStates::END: break ;
8789 }
8890
@@ -156,13 +158,15 @@ CSRHandlerClass::CSRHandlerStates CSRHandlerClass::handleBuildCSR() {
156158 }
157159 if (!_certForCSR->begin ()) {
158160 Serial.println (" Error starting CSR generation!" );
161+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
159162 return CSRHandlerStates::ERROR;
160163 }
161164
162165 _certForCSR->setSubjectCommonName (*_uhwid);
163166
164167 if (!SElementCSR::build (*_secureElement, *_certForCSR, static_cast <int >(SElementArduinoCloudSlot::Key), true )) {
165168 Serial.println (" Error generating CSR!" );
169+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
166170 return CSRHandlerStates::ERROR;
167171 }
168172 return CSRHandlerStates::REQUEST_SIGNATURE;
@@ -277,13 +281,15 @@ CSRHandlerClass::CSRHandlerStates CSRHandlerClass::handleBuildCertificate() {
277281
278282 if (!SElementArduinoCloudDeviceId::write (*_secureElement, _deviceId, SElementArduinoCloudSlot::DeviceId)) {
279283 Serial.println (" Error storing device id!" );
284+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
280285 return CSRHandlerStates::ERROR;
281286 }
282287
283288
284289 ECP256Certificate cert;
285290 if (!cert.begin ()) {
286291 Serial.println (" Error starting secureElement storage!" );
292+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
287293 return CSRHandlerStates::ERROR;
288294 }
289295
@@ -303,11 +309,13 @@ CSRHandlerClass::CSRHandlerStates CSRHandlerClass::handleBuildCertificate() {
303309
304310 if (!SElementArduinoCloudCertificate::build (*_secureElement, cert, static_cast <int >(SElementArduinoCloudSlot::Key))) {
305311 Serial.println (" Error building secureElement compressed cert!" );
312+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
306313 return CSRHandlerStates::ERROR;
307314 }
308315
309316 if (!SElementArduinoCloudCertificate::write (*_secureElement, cert, SElementArduinoCloudSlot::CompressedCertificate)) {
310317 Serial.println (" Error storing cert!" );
318+ LEDFeedbackClass::getInstance ().setMode (LEDFeedbackClass::LEDFeedbackMode::ERROR);
311319 return CSRHandlerStates::ERROR;
312320 }
313321
@@ -379,3 +387,7 @@ CSRHandlerClass::CSRHandlerStates CSRHandlerClass::handleWaitingCompleteRes() {
379387
380388 return nextState;
381389}
390+
391+ void CSRHandlerClass::handleError () {
392+ LEDFeedbackClass::getInstance ().poll ();
393+ }
0 commit comments