Skip to content

Commit 3ce80fd

Browse files
committed
Adding method checkPhyConnection which takes over checking the connection to the LoRa gateway
1 parent 04a7cd2 commit 3ce80fd

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

src/ArduinoIoTCloudLPWAN.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ void ArduinoIoTCloudLPWAN::update() {
7474
// Check if a primitive property wrapper is locally changed
7575
_thing.updateTimestampOnLocallyChangedProperties();
7676

77+
if(checkPhyConnection() != NetworkConnectionState::CONNECTED) return;
7778
if(connectionCheck() != ArduinoIoTConnectionStatus::CONNECTED) return;
7879

7980
if (_connection->available()) {
@@ -120,20 +121,23 @@ int ArduinoIoTCloudLPWAN::writeProperties(const byte data[], int length) {
120121
return 1;
121122
}
122123

123-
ArduinoIoTConnectionStatus ArduinoIoTCloudLPWAN::connectionCheck() {
124-
if (_connection != NULL) {
125-
126-
_connection->check();
124+
NetworkConnectionState ArduinoIoTCloudLPWAN::checkPhyConnection()
125+
{
126+
NetworkConnectionState const connect_state = _connection->check();
127127

128-
if (_connection->getStatus() != NetworkConnectionState::CONNECTED) {
129-
if (_iotStatus == ArduinoIoTConnectionStatus::CONNECTED) {
130-
_iotStatus = ArduinoIoTConnectionStatus::DISCONNECTED;
131-
printConnectionStatus(_iotStatus);
132-
}
133-
return _iotStatus;
128+
if (_connection->check() != NetworkConnectionState::CONNECTED)
129+
{
130+
if (_iotStatus == ArduinoIoTConnectionStatus::CONNECTED)
131+
{
132+
disconnect();
134133
}
135134
}
136135

136+
return connect_state;
137+
}
138+
139+
ArduinoIoTConnectionStatus ArduinoIoTCloudLPWAN::connectionCheck()
140+
{
137141
switch (_iotStatus) {
138142
case ArduinoIoTConnectionStatus::IDLE: {
139143
_iotStatus = ArduinoIoTConnectionStatus::CONNECTING;

src/ArduinoIoTCloudLPWAN.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class ArduinoIoTCloudLPWAN : public ArduinoIoTCloudClass {
5959

6060
void sendPropertiesToCloud();
6161
int writeProperties(const byte data[], int length);
62+
NetworkConnectionState checkPhyConnection();
6263
ArduinoIoTConnectionStatus connectionCheck();
6364
};
6465

0 commit comments

Comments
 (0)