Skip to content

Commit 6a1f8da

Browse files
authored
Merge pull request #869 from pennam/gsm_remove_timeout
GSM: remove possibility to set timeout from constructor
2 parents 8186f2a + a588a81 commit 6a1f8da

File tree

13 files changed

+66
-98
lines changed

13 files changed

+66
-98
lines changed

.github/workflows/compile-examples.yml

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ jobs:
7272
- name: ArduinoGraphics
7373
- name: Arduino_GigaDisplayTouch
7474
- name: emWin
75+
- name: Arduino_DebugUtils
7576
additional-sketch-paths: |
7677
- libraries/PDM
7778
- libraries/doom
@@ -177,6 +178,7 @@ jobs:
177178
fqbn: arduino:mbed:edge_control
178179
additional-libraries: |
179180
- name: MicroNMEA
181+
- name: Arduino_DebugUtils
180182
additional-sketch-paths: |
181183
- libraries/GSM
182184
- libraries/USBHID

libraries/GSM/examples/GSMClient/GSMClient.ino

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
1+
/*
2+
GSMClient
3+
4+
This sketch connects to a website (https://example.com)
5+
using the Portenta CAT.M1/NB IoT GNSS Shield.
6+
7+
*/
8+
19
#include <GSM.h>
10+
#include <Arduino_DebugUtils.h>
11+
#include <GSMDebug.h>
12+
#include "arduino_secrets.h"
213

3-
#include "arduino_secrets.h"
414
char pin[] = SECRET_PIN;
515
char apn[] = SECRET_APN;
616
char username[] = SECRET_USERNAME;
@@ -13,19 +23,22 @@ GSMClient client;
1323

1424
void setup() {
1525

26+
Serial.begin(9600);
27+
while(!Serial) {}
28+
1629
#if defined(ARDUINO_EDGE_CONTROL)
1730
// Power ON MKR2
1831
pinMode(ON_MKR2, OUTPUT);
1932
digitalWrite(ON_MKR2, HIGH);
2033
#endif
2134

22-
Serial.begin(115200);
23-
while(!Serial) {}
24-
2535
// To enable AT Trace debug uncomment the following lines
2636
//GSM.trace(Serial);
2737
//GSM.setTraceLevel(4);
2838

39+
Debug.setDebugOutputStream(&Serial);
40+
Debug.setDebugLevel(4);
41+
2942
Serial.println("Starting Carrier Network registration");
3043
if(!GSM.begin(pin, apn, username, pass, CATNB, BAND_20 | BAND_19)){
3144
Serial.println("The board was not able to register to the network...");

libraries/GSM/examples/GSMSSLClient/GSMSSLClient.ino

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
/*
2-
GSMSSLlient
2+
GSMSSLClient
33
44
This sketch connects to a website (https://example.com)
55
using the Portenta CAT.M1/NB IoT GNSS Shield and TLS.
66
77
*/
88

99
#include <GSM.h>
10+
#include <Arduino_DebugUtils.h>
11+
#include <GSMDebug.h>
1012
#include "arduino_secrets.h"
1113

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

2628
void setup() {
2729

30+
Serial.begin(9600);
31+
while(!Serial) {}
32+
2833
#if defined(ARDUINO_EDGE_CONTROL)
2934
// Power ON MKR2
3035
pinMode(ON_MKR2, OUTPUT);
@@ -34,13 +39,14 @@ void setup() {
3439
client.appendCustomCACert(root_ca);
3540
#endif
3641

37-
Serial.begin(115200);
38-
while(!Serial) {}
39-
4042
// To enable AT Trace debug uncomment the following lines
4143
//GSM.trace(Serial);
4244
//GSM.setTraceLevel(4);
4345

46+
// Enable GSM library debug
47+
Debug.setDebugOutputStream(&Serial);
48+
Debug.setDebugLevel(4);
49+
4450
Serial.println("Starting Carrier Network registration");
4551
if(!GSM.begin(pin, apn, username, pass, CATM1, BAND_3 | BAND_20 | BAND_19)){
4652
Serial.println("The board was not able to register to the network...");
+25-19
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
11
static const char root_ca[] =
22
"-----BEGIN CERTIFICATE-----\n"
3-
"MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\n"
3+
"MIIEyDCCA7CgAwIBAgIQDPW9BitWAvR6uFAsI8zwZjANBgkqhkiG9w0BAQsFADBh\n"
44
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
5-
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n"
6-
"QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\n"
7-
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
8-
"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n"
9-
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\n"
10-
"CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\n"
11-
"nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n"
12-
"43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\n"
13-
"T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\n"
14-
"gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\n"
15-
"BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\n"
16-
"TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\n"
17-
"DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\n"
18-
"hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n"
19-
"06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\n"
20-
"PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\n"
21-
"YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\n"
22-
"CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n"
5+
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\n"
6+
"MjAeFw0yMTAzMzAwMDAwMDBaFw0zMTAzMjkyMzU5NTlaMFkxCzAJBgNVBAYTAlVT\n"
7+
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMzAxBgNVBAMTKkRpZ2lDZXJ0IEdsb2Jh\n"
8+
"bCBHMiBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
9+
"ggEPADCCAQoCggEBAMz3EGJPprtjb+2QUlbFbSd7ehJWivH0+dbn4Y+9lavyYEEV\n"
10+
"cNsSAPonCrVXOFt9slGTcZUOakGUWzUb+nv6u8W+JDD+Vu/E832X4xT1FE3LpxDy\n"
11+
"FuqrIvAxIhFhaZAmunjZlx/jfWardUSVc8is/+9dCopZQ+GssjoP80j812s3wWPc\n"
12+
"3kbW20X+fSP9kOhRBx5Ro1/tSUZUfyyIxfQTnJcVPAPooTncaQwywa8WV0yUR0J8\n"
13+
"osicfebUTVSvQpmowQTCd5zWSOTOEeAqgJnwQ3DPP3Zr0UxJqyRewg2C/Uaoq2yT\n"
14+
"zGJSQnWS+Jr6Xl6ysGHlHx+5fwmY6D36g39HaaECAwEAAaOCAYIwggF+MBIGA1Ud\n"
15+
"EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHSFgMBmx9833s+9KTeqAx2+7c0XMB8G\n"
16+
"A1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjAd\n"
17+
"BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQG\n"
18+
"CCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\n"
19+
"NGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RH\n"
20+
"Mi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29t\n"
21+
"L0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwC\n"
22+
"ATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG\n"
23+
"9w0BAQsFAAOCAQEAkPFwyyiXaZd8dP3A+iZ7U6utzWX9upwGnIrXWkOH7U1MVl+t\n"
24+
"wcW1BSAuWdH/SvWgKtiwla3JLko716f2b4gp/DA/JIS7w7d7kwcsr4drdjPtAFVS\n"
25+
"slme5LnQ89/nD/7d+MS5EHKBCQRfz5eeLjJ1js+aWNJXMX43AYGyZm0pGrFmCW3R\n"
26+
"bpD0ufovARTFXFZkAdl9h6g4U5+LXUZtXMYnhIHUfoyMo5tS58aI7Dd8KvvwVVo4\n"
27+
"chDYABPPTHPbqjc1qCmBaZx2vN4Ye5DUys/vZwP9BFohFrH/6j/f3IL16/RZkiMN\n"
28+
"JCqVJUzKoZHm1Lesh3Sz8W2jmdv51b2EQJ8HmA==\n"
2329
"-----END CERTIFICATE-----\n";

libraries/GSM/src/GSM.cpp

+12-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ int arduino::GSMClass::begin(const char* pin, const char* apn, const char* usern
5050
reset();
5151
}
5252

53-
_context = mbed::CellularContext::get_default_instance();
53+
if (!_context) {
54+
_context = mbed::CellularContext::get_default_instance();
55+
}
5456

5557
if (_context == nullptr) {
5658
DEBUG_ERROR("Invalid mbed::CellularContext");
@@ -117,7 +119,10 @@ void arduino::GSMClass::end() {
117119
}
118120

119121
int arduino::GSMClass::disconnect() {
120-
return _context->disconnect();
122+
if (_context) {
123+
return _context->disconnect();
124+
}
125+
return 0;
121126
}
122127

123128
unsigned long arduino::GSMClass::getTime()
@@ -144,9 +149,12 @@ bool arduino::GSMClass::isConnected()
144149
}
145150
}
146151

147-
148-
149152
NetworkInterface* arduino::GSMClass::getNetwork() {
153+
/* Can happen this is called before GSM.begin( .. ) when configuring GSMSSLClient
154+
* from sketch calling client.appendCustomCACert( .. ) */
155+
if (!_context) {
156+
_context = mbed::CellularContext::get_default_instance();
157+
}
150158
return _context;
151159
}
152160

libraries/GSM/src/GSMClient.cpp

-24
This file was deleted.

libraries/GSM/src/GSMClient.h

-4
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
namespace arduino {
2727

2828
class GSMClient : public AClient {
29-
public:
30-
GSMClient();
31-
32-
private:
3329
NetworkInterface *getNetwork() {
3430
return GSM.getNetwork();
3531
}

libraries/GSM/src/GSMSSLClient.cpp

-24
This file was deleted.

libraries/GSM/src/GSMSSLClient.h

-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ extern const char CA_CERTIFICATES[];
2828
namespace arduino {
2929

3030
class GSMSSLClient : public arduino::ASslClient {
31-
public:
32-
GSMSSLClient();
33-
3431
private:
3532
NetworkInterface *getNetwork() {
3633
return GSM.getNetwork();

libraries/SocketWrapper/src/AClient.cpp

-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
#include "AClient.h"
33
#include "MbedSSLClient.h"
44

5-
AClient::AClient(unsigned long timeout) {
6-
setSocketTimeout(timeout);
7-
}
8-
95
void arduino::AClient::newMbedClient() {
106
client.reset(new MbedClient());
117
client->setNetwork(getNetwork());

libraries/SocketWrapper/src/AClient.h

-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class AClient : public Client {
2828
public:
2929

3030
AClient() {}
31-
AClient(unsigned long timeout);
3231

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

7372
ASslClient() {}
74-
ASslClient(unsigned long timeout) : AClient(timeout) {}
7573

7674
void disableSNI(bool statusSNI);
7775

Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
#include "MbedSSLClient.h"
22

3-
arduino::MbedSSLClient::MbedSSLClient(unsigned long timeout): MbedClient(timeout), _disableSNI{false} {
4-
onBeforeConnect(mbed::callback(this, &MbedSSLClient::setRootCA));
5-
}
6-
73
arduino::MbedSSLClient::MbedSSLClient(): _disableSNI{false} {
84
onBeforeConnect(mbed::callback(this, &MbedSSLClient::setRootCA));
95
};

libraries/SocketWrapper/src/MbedSSLClient.h

-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ class MbedSSLClient : public arduino::MbedClient {
3333
public:
3434
MbedSSLClient();
3535

36-
MbedSSLClient(unsigned long timeout);
37-
3836
virtual ~MbedSSLClient() {
3937
stop();
4038
}

0 commit comments

Comments
 (0)