Skip to content

Commit 760e5c8

Browse files
committed
move fona logic to .h
1 parent 7c3e261 commit 760e5c8

File tree

2 files changed

+54
-86
lines changed

2 files changed

+54
-86
lines changed

AdafruitIO_FONA.cpp

Lines changed: 0 additions & 76 deletions
This file was deleted.

AdafruitIO_FONA.h

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
#ifndef ADAFRUITIO_FONA_H
1313
#define ADAFRUITIO_FONA_H
1414

15-
#ifdef ARDUINO_ARCH_AVR
16-
1715
#include "Arduino.h"
1816
#include <SoftwareSerial.h>
1917
#include "Adafruit_MQTT.h"
@@ -27,26 +25,72 @@
2725
#define FONA_RI 7
2826
#define FONA_BAUD 4800
2927

28+
// all logic in .h to avoid auto compile
3029
class AdafruitIO_FONA : public AdafruitIO {
3130

3231
public:
33-
AdafruitIO_FONA(const char *user, const char *key);
34-
AdafruitIO_FONA(const __FlashStringHelper *user, const __FlashStringHelper *key);
32+
AdafruitIO_FONA(const char *user, const char *key):AdafruitIO(user, key)
33+
{
34+
_serial = new SoftwareSerial(FONA_TX, FONA_RX);
35+
_fona = new Adafruit_FONA(FONA_RST);
36+
_mqtt = new Adafruit_MQTT_FONA(_fona, _host, _port);
37+
_packetread_timeout = 500;
38+
}
3539

36-
void setAPN(FONAFlashStringPtr apn, FONAFlashStringPtr username=0, FONAFlashStringPtr password=0);
40+
AdafruitIO_FONA(const __FlashStringHelper *user, const __FlashStringHelper *key):AdafruitIO(user, key)
41+
{
42+
_serial = new SoftwareSerial(FONA_TX, FONA_RX);
43+
_fona = new Adafruit_FONA(FONA_RST);
44+
_mqtt = new Adafruit_MQTT_FONA(_fona, _host, _port);
45+
_packetread_timeout = 500;
46+
}
3747

38-
aio_status_t networkStatus();
48+
void setAPN(FONAFlashStringPtr apn, FONAFlashStringPtr username=0, FONAFlashStringPtr password=0)
49+
{
50+
_fona->setGPRSNetworkSettings(apn, username, password);
51+
}
3952

40-
protected:
41-
void _connect();
53+
aio_status_t AdafruitIO_FONA::networkStatus()
54+
{
55+
// return if in a failed state
56+
if(_status == AIO_NET_CONNECT_FAILED)
57+
return _status;
58+
59+
// if we are connected, return
60+
if(_fona->GPRSstate())
61+
return AIO_NET_CONNECTED;
4262

63+
// wait for connection to network
64+
if(_fona->getNetworkStatus() != 1)
65+
return AIO_NET_DISCONNECTED;
66+
67+
_fona->enableGPRS(true);
68+
return AIO_NET_CONNECTED;
69+
}
70+
71+
protected:
4372
uint16_t _port = 1883;
4473

4574
SoftwareSerial *_serial;
4675
Adafruit_FONA *_fona;
4776

48-
};
77+
void _connect()
78+
{
79+
// set software serial baud rate
80+
_serial->begin(FONA_BAUD);
81+
82+
// if fona can't be found, bail
83+
if(! _fona->begin(*_serial)) {
84+
_status = AIO_NET_CONNECT_FAILED;
85+
return;
86+
}
87+
88+
// disable cme error reporting
89+
_serial->println("AT+CMEE=2");
4990

50-
#endif // ARDUINO_ARCH_AVR
91+
_status = AIO_NET_DISCONNECTED;
92+
}
93+
94+
};
5195

5296
#endif // ADAFRUITIO_FONA_H

0 commit comments

Comments
 (0)