diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml index adb330f8..e8186852 100644 --- a/.github/workflows/check-arduino.yml +++ b/.github/workflows/check-arduino.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v4 - name: Arduino Lint - uses: arduino/arduino-lint-action@v1 + uses: arduino/arduino-lint-action@v2 with: compliance: specification library-manager: update diff --git a/library.properties b/library.properties index c202d604..f3c10c58 100644 --- a/library.properties +++ b/library.properties @@ -1,10 +1,10 @@ name=Arduino_ConnectionHandler -version=1.0.0 +version=1.0.1 author=Ubi de Feo, Cristian Maglie, Andrea Catozzi, Alexander Entinger et al. maintainer=Arduino sentence=Arduino Library for network connection management (WiFi, GSM, NB, [Ethernet], Notecard) paragraph=Originally part of ArduinoIoTCloud category=Communication url=https://github.com/arduino-libraries/Arduino_ConnectionHandler -architectures=samd,esp32,esp8266,mbed,megaavr,mbed_nano,mbed_portenta,mbed_nicla,mbed_opta,mbed_giga,renesas_portenta,renesas_uno,mbed_edge,stm32 +architectures=samd,esp32,esp8266,mbed,megaavr,mbed_nano,mbed_portenta,mbed_nicla,mbed_opta,mbed_giga,renesas_portenta,renesas_uno,mbed_edge,stm32,rp2040 depends=Arduino_DebugUtils, WiFi101, WiFiNINA, MKRGSM, MKRNB, MKRWAN, Blues Wireless Notecard (>=1.6.3) diff --git a/src/NotecardConnectionHandler.cpp b/src/NotecardConnectionHandler.cpp index 5205c4a8..9917fcef 100644 --- a/src/NotecardConnectionHandler.cpp +++ b/src/NotecardConnectionHandler.cpp @@ -31,13 +31,11 @@ #define NOTEFILE_BASE_NAME "arduino_iot_cloud" // Notecard LoRa requires us to choose an arbitrary port between 1-99 -#define NOTEFILE_DATABASE_LORA_PORT 1 #define NOTEFILE_INBOUND_LORA_PORT 2 #define NOTEFILE_OUTBOUND_LORA_PORT 3 // Note that we use "s" versions of the Notefile extensions to ensure that // traffic always happens on a secure transport -#define NOTEFILE_SECURE_DATABASE NOTEFILE_BASE_NAME ".dbs" #define NOTEFILE_SECURE_INBOUND NOTEFILE_BASE_NAME ".qis" #define NOTEFILE_SECURE_OUTBOUND NOTEFILE_BASE_NAME ".qos" @@ -423,41 +421,6 @@ NetworkConnectionState NotecardConnectionHandler::update_handleInit() } #endif - // Set database template to support LoRa/Satellite Notecard - if (NetworkConnectionState::INIT == result) { - if (J *req = _notecard.newRequest("note.template")) { - JAddStringToObject(req, "file", NOTEFILE_SECURE_DATABASE); - JAddStringToObject(req, "format", "compact"); // Support LoRa/Satellite Notecards - JAddIntToObject(req, "port", NOTEFILE_DATABASE_LORA_PORT); // Support LoRa/Satellite Notecards - if (J *body = JAddObjectToObject(req, "body")) { - JAddStringToObject(body, "text", TSTRINGV); - JAddNumberToObject(body, "value", TFLOAT64); - JAddBoolToObject(body, "flag", TBOOL); - if (J *rsp = _notecard.requestAndResponse(req)) { - // Check the response for errors - if (NoteResponseError(rsp)) { - const char *err = JGetString(rsp, "err"); - Debug.print(DBG_ERROR, F("%s"), err); - result = NetworkConnectionState::ERROR; - } else { - result = NetworkConnectionState::INIT; - } - JDelete(rsp); - } else { - Debug.print(DBG_ERROR, F("Failed to receive response from Notecard.")); - result = NetworkConnectionState::ERROR; // Assume the worst - } - } else { - Debug.print(DBG_ERROR, "Failed to allocate request: note.template:body"); - JFree(req); - result = NetworkConnectionState::ERROR; // Assume the worst - } - } else { - Debug.print(DBG_ERROR, "Failed to allocate request: note.template"); - result = NetworkConnectionState::ERROR; // Assume the worst - } - } - // Set inbound template to support LoRa/Satellite Notecard if (NetworkConnectionState::INIT == result) { if (J *req = _notecard.newRequest("note.template")) { @@ -811,9 +774,13 @@ bool NotecardConnectionHandler::updateUidCache (void) result = false; } else { _notecard_uid = JGetString(rsp, "device"); - _device_id = JGetString(rsp, "sn"); - _device_id = (_device_id.length() ? _device_id : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); - Debug.print(DBG_DEBUG, F("NotecardConnectionHandler::%s updated cache with Notecard UID: <%s> and Arduino Device ID: <%s>"), __FUNCTION__, _notecard_uid.c_str(), _device_id.c_str()); + char device_id[] = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; + if (NoteGetEnv("_arduino_device_id", device_id, device_id, sizeof(device_id))) { + _device_id = device_id; + } else { + Debug.print(DBG_DEBUG, F("NotecardConnectionHandler::%s Arduino Device ID not cached on Notecard, using default value: <%s>"), __FUNCTION__, _device_id.c_str()); + } + Debug.print(DBG_DEBUG, F("NotecardConnectionHandler::%s updated local cache with Notecard UID: <%s> and Arduino Device ID: <%s>"), __FUNCTION__, _notecard_uid.c_str(), _device_id.c_str()); result = true; } JDelete(rsp); diff --git a/src/NotecardConnectionHandler.h b/src/NotecardConnectionHandler.h index c758030f..4278c144 100644 --- a/src/NotecardConnectionHandler.h +++ b/src/NotecardConnectionHandler.h @@ -28,8 +28,8 @@ ******************************************************************************/ #define NOTECARD_CONNECTION_HANDLER_VERSION_MAJOR 1 -#define NOTECARD_CONNECTION_HANDLER_VERSION_MINOR 0 -#define NOTECARD_CONNECTION_HANDLER_VERSION_PATCH 0 +#define NOTECARD_CONNECTION_HANDLER_VERSION_MINOR 1 +#define NOTECARD_CONNECTION_HANDLER_VERSION_PATCH 1 #define NOTECARD_CONNECTION_HANDLER_VERSION NOTE_C_STRINGIZE(NOTECARD_CONNECTION_HANDLER_VERSION_MAJOR) "." NOTE_C_STRINGIZE(NOTECARD_CONNECTION_HANDLER_VERSION_MINOR) "." NOTE_C_STRINGIZE(NOTECARD_CONNECTION_HANDLER_VERSION_PATCH) @@ -261,6 +261,7 @@ class NotecardConnectionHandler final : public ConnectionHandler * @param interval_min[in] The inbound polling interval (in minutes) * * @note Set the interval to 0 to disable inbound polling. + * @note Must be set prior to initializing the connection to the Notecard. */ inline void setNotehubPollingInterval (int32_t interval_min) { _inbound_polling_interval_min = (interval_min ? interval_min : -1); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy