Skip to content

Commit

Permalink
Merge pull request #869 from pennam/gsm_remove_timeout
Browse files Browse the repository at this point in the history
GSM: remove possibility to set timeout from constructor
  • Loading branch information
pennam committed Apr 19, 2024
2 parents 8186f2a + a588a81 commit 6a1f8da
Show file tree
Hide file tree
Showing 13 changed files with 66 additions and 98 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/compile-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ jobs:
- name: ArduinoGraphics
- name: Arduino_GigaDisplayTouch
- name: emWin
- name: Arduino_DebugUtils
additional-sketch-paths: |
- libraries/PDM
- libraries/doom
Expand Down Expand Up @@ -177,6 +178,7 @@ jobs:
fqbn: arduino:mbed:edge_control
additional-libraries: |
- name: MicroNMEA
- name: Arduino_DebugUtils
additional-sketch-paths: |
- libraries/GSM
- libraries/USBHID
Expand Down
21 changes: 17 additions & 4 deletions libraries/GSM/examples/GSMClient/GSMClient.ino
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
/*
GSMClient
This sketch connects to a website (https://example.com)
using the Portenta CAT.M1/NB IoT GNSS Shield.
*/

#include <GSM.h>
#include <Arduino_DebugUtils.h>
#include <GSMDebug.h>
#include "arduino_secrets.h"

#include "arduino_secrets.h"
char pin[] = SECRET_PIN;
char apn[] = SECRET_APN;
char username[] = SECRET_USERNAME;
Expand All @@ -13,19 +23,22 @@ GSMClient client;

void setup() {

Serial.begin(9600);
while(!Serial) {}

#if defined(ARDUINO_EDGE_CONTROL)
// Power ON MKR2
pinMode(ON_MKR2, OUTPUT);
digitalWrite(ON_MKR2, HIGH);
#endif

Serial.begin(115200);
while(!Serial) {}

// To enable AT Trace debug uncomment the following lines
//GSM.trace(Serial);
//GSM.setTraceLevel(4);

Debug.setDebugOutputStream(&Serial);
Debug.setDebugLevel(4);

Serial.println("Starting Carrier Network registration");
if(!GSM.begin(pin, apn, username, pass, CATNB, BAND_20 | BAND_19)){
Serial.println("The board was not able to register to the network...");
Expand Down
14 changes: 10 additions & 4 deletions libraries/GSM/examples/GSMSSLClient/GSMSSLClient.ino
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/*
GSMSSLlient
GSMSSLClient
This sketch connects to a website (https://example.com)
using the Portenta CAT.M1/NB IoT GNSS Shield and TLS.
*/

#include <GSM.h>
#include <Arduino_DebugUtils.h>
#include <GSMDebug.h>
#include "arduino_secrets.h"

#if defined(ARDUINO_EDGE_CONTROL)
Expand All @@ -25,6 +27,9 @@ GSMSSLClient client;

void setup() {

Serial.begin(9600);
while(!Serial) {}

#if defined(ARDUINO_EDGE_CONTROL)
// Power ON MKR2
pinMode(ON_MKR2, OUTPUT);
Expand All @@ -34,13 +39,14 @@ void setup() {
client.appendCustomCACert(root_ca);
#endif

Serial.begin(115200);
while(!Serial) {}

// To enable AT Trace debug uncomment the following lines
//GSM.trace(Serial);
//GSM.setTraceLevel(4);

// Enable GSM library debug
Debug.setDebugOutputStream(&Serial);
Debug.setDebugLevel(4);

Serial.println("Starting Carrier Network registration");
if(!GSM.begin(pin, apn, username, pass, CATM1, BAND_3 | BAND_20 | BAND_19)){
Serial.println("The board was not able to register to the network...");
Expand Down
44 changes: 25 additions & 19 deletions libraries/GSM/examples/GSMSSLClient/root_ca.h
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
static const char root_ca[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\n"
"MIIEyDCCA7CgAwIBAgIQDPW9BitWAvR6uFAsI8zwZjANBgkqhkiG9w0BAQsFADBh\n"
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n"
"QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\n"
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n"
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\n"
"CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\n"
"nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n"
"43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\n"
"T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\n"
"gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\n"
"BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\n"
"TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\n"
"DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\n"
"hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n"
"06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\n"
"PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\n"
"YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\n"
"CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n"
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\n"
"MjAeFw0yMTAzMzAwMDAwMDBaFw0zMTAzMjkyMzU5NTlaMFkxCzAJBgNVBAYTAlVT\n"
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMzAxBgNVBAMTKkRpZ2lDZXJ0IEdsb2Jh\n"
"bCBHMiBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
"ggEPADCCAQoCggEBAMz3EGJPprtjb+2QUlbFbSd7ehJWivH0+dbn4Y+9lavyYEEV\n"
"cNsSAPonCrVXOFt9slGTcZUOakGUWzUb+nv6u8W+JDD+Vu/E832X4xT1FE3LpxDy\n"
"FuqrIvAxIhFhaZAmunjZlx/jfWardUSVc8is/+9dCopZQ+GssjoP80j812s3wWPc\n"
"3kbW20X+fSP9kOhRBx5Ro1/tSUZUfyyIxfQTnJcVPAPooTncaQwywa8WV0yUR0J8\n"
"osicfebUTVSvQpmowQTCd5zWSOTOEeAqgJnwQ3DPP3Zr0UxJqyRewg2C/Uaoq2yT\n"
"zGJSQnWS+Jr6Xl6ysGHlHx+5fwmY6D36g39HaaECAwEAAaOCAYIwggF+MBIGA1Ud\n"
"EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHSFgMBmx9833s+9KTeqAx2+7c0XMB8G\n"
"A1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjAd\n"
"BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQG\n"
"CCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\n"
"NGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RH\n"
"Mi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29t\n"
"L0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwC\n"
"ATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG\n"
"9w0BAQsFAAOCAQEAkPFwyyiXaZd8dP3A+iZ7U6utzWX9upwGnIrXWkOH7U1MVl+t\n"
"wcW1BSAuWdH/SvWgKtiwla3JLko716f2b4gp/DA/JIS7w7d7kwcsr4drdjPtAFVS\n"
"slme5LnQ89/nD/7d+MS5EHKBCQRfz5eeLjJ1js+aWNJXMX43AYGyZm0pGrFmCW3R\n"
"bpD0ufovARTFXFZkAdl9h6g4U5+LXUZtXMYnhIHUfoyMo5tS58aI7Dd8KvvwVVo4\n"
"chDYABPPTHPbqjc1qCmBaZx2vN4Ye5DUys/vZwP9BFohFrH/6j/f3IL16/RZkiMN\n"
"JCqVJUzKoZHm1Lesh3Sz8W2jmdv51b2EQJ8HmA==\n"
"-----END CERTIFICATE-----\n";
16 changes: 12 additions & 4 deletions libraries/GSM/src/GSM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ int arduino::GSMClass::begin(const char* pin, const char* apn, const char* usern
reset();
}

_context = mbed::CellularContext::get_default_instance();
if (!_context) {
_context = mbed::CellularContext::get_default_instance();
}

if (_context == nullptr) {
DEBUG_ERROR("Invalid mbed::CellularContext");
Expand Down Expand Up @@ -117,7 +119,10 @@ void arduino::GSMClass::end() {
}

int arduino::GSMClass::disconnect() {
return _context->disconnect();
if (_context) {
return _context->disconnect();
}
return 0;
}

unsigned long arduino::GSMClass::getTime()
Expand All @@ -144,9 +149,12 @@ bool arduino::GSMClass::isConnected()
}
}



NetworkInterface* arduino::GSMClass::getNetwork() {
/* Can happen this is called before GSM.begin( .. ) when configuring GSMSSLClient
* from sketch calling client.appendCustomCACert( .. ) */
if (!_context) {
_context = mbed::CellularContext::get_default_instance();
}
return _context;
}

Expand Down
24 changes: 0 additions & 24 deletions libraries/GSM/src/GSMClient.cpp

This file was deleted.

4 changes: 0 additions & 4 deletions libraries/GSM/src/GSMClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
namespace arduino {

class GSMClient : public AClient {
public:
GSMClient();

private:
NetworkInterface *getNetwork() {
return GSM.getNetwork();
}
Expand Down
24 changes: 0 additions & 24 deletions libraries/GSM/src/GSMSSLClient.cpp

This file was deleted.

3 changes: 0 additions & 3 deletions libraries/GSM/src/GSMSSLClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ extern const char CA_CERTIFICATES[];
namespace arduino {

class GSMSSLClient : public arduino::ASslClient {
public:
GSMSSLClient();

private:
NetworkInterface *getNetwork() {
return GSM.getNetwork();
Expand Down
4 changes: 0 additions & 4 deletions libraries/SocketWrapper/src/AClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
#include "AClient.h"
#include "MbedSSLClient.h"

AClient::AClient(unsigned long timeout) {
setSocketTimeout(timeout);
}

void arduino::AClient::newMbedClient() {
client.reset(new MbedClient());
client->setNetwork(getNetwork());
Expand Down
2 changes: 0 additions & 2 deletions libraries/SocketWrapper/src/AClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ class AClient : public Client {
public:

AClient() {}
AClient(unsigned long timeout);

virtual int connect(IPAddress ip, uint16_t port);
virtual int connect(const char *host, uint16_t port);
Expand Down Expand Up @@ -71,7 +70,6 @@ class ASslClient : public AClient {
public:

ASslClient() {}
ASslClient(unsigned long timeout) : AClient(timeout) {}

void disableSNI(bool statusSNI);

Expand Down
4 changes: 0 additions & 4 deletions libraries/SocketWrapper/src/MbedSSLClient.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
#include "MbedSSLClient.h"

arduino::MbedSSLClient::MbedSSLClient(unsigned long timeout): MbedClient(timeout), _disableSNI{false} {
onBeforeConnect(mbed::callback(this, &MbedSSLClient::setRootCA));
}

arduino::MbedSSLClient::MbedSSLClient(): _disableSNI{false} {
onBeforeConnect(mbed::callback(this, &MbedSSLClient::setRootCA));
};
2 changes: 0 additions & 2 deletions libraries/SocketWrapper/src/MbedSSLClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ class MbedSSLClient : public arduino::MbedClient {
public:
MbedSSLClient();

MbedSSLClient(unsigned long timeout);

virtual ~MbedSSLClient() {
stop();
}
Expand Down

0 comments on commit 6a1f8da

Please sign in to comment.