Skip to content

Commit 326ecbf

Browse files
Bug fixing
Patching incorrect int casting into String on WiFi.RSSI()
1 parent 31292f2 commit 326ecbf

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed

LiveObjectsWiFi.cpp

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
/*
2+
* Copyright (C) Orange
3+
*
4+
* This software is distributed under the terms and conditions of the 'MIT'
5+
* license which can be found in the file 'LICENSE.md' in this package distribution
6+
*/
7+
#include "LiveObjectsWiFi.h"
8+
#ifdef WIFID
9+
LiveObjectsWiFi::LiveObjectsWiFi()
10+
:
11+
LiveObjectsMKR()
12+
,m_sMac()
13+
,m_sIP()
14+
{
15+
}
16+
LiveObjectsWiFi::~LiveObjectsWiFi()
17+
{}
18+
19+
20+
21+
void LiveObjectsWiFi::begin(Protocol p, Encoding s, bool bDebug)
22+
{
23+
LiveObjectsBase::begin(p,s,bDebug);
24+
if(p != MQTT)
25+
{
26+
outputDebug(ERR,"Wrong protocol! This board support only MQTT! Stopping....");
27+
while(true);
28+
}
29+
switch(m_Security)
30+
{
31+
case TLS:
32+
#ifdef ARDUINO_SAMD_MKR1000
33+
outputDebug(ERR,"TLS NOT COMPATIBLE, STOPPING...");
34+
while(true);
35+
#endif
36+
m_pClient = new WiFiSSLClient();
37+
m_pMqttclient = new MqttClient(m_pClient);
38+
m_nPort = 8883;
39+
break;
40+
case NONE:
41+
m_pClient = new WiFiClient();
42+
m_pMqttclient = new MqttClient(m_pClient);
43+
m_nPort = 1883;
44+
break;
45+
default:
46+
outputDebug(ERR,"Wrong mode! Stopping...");
47+
while(true);
48+
}
49+
m_bInitialized = true;
50+
m_pMqttclient->onMessage(messageCallback);
51+
}
52+
53+
void LiveObjectsWiFi::connectNetwork()
54+
{
55+
#ifdef ADAFRUIT_FEATHER_M0
56+
WiFi.setPins(8,7,4,2);
57+
#endif
58+
if(!m_bInitialized)
59+
{
60+
outputDebug(WARN,"missing begin() call, calling with default protcol=MQTT, security protcol=TLS, debug=true");
61+
begin();
62+
}
63+
if (WiFi.status() == WL_NO_SHIELD) {
64+
outputDebug(ERR,"Communication with WiFi module failed! Stopping here...");
65+
// don't continue
66+
while (true);
67+
}
68+
69+
if(String(SECRET_SSID).length()<1)
70+
{
71+
outputDebug(ERR,"SECRET_SSID is empty, check arduino_secrets.h, Stopping here...");
72+
while(true);
73+
}
74+
String s = WiFi.firmwareVersion();
75+
outputDebug(INFO,"WiFi firmware version ",s);
76+
77+
outputDebug(INFO,"Attempting to connect to SSID: ", SECRET_SSID);
78+
79+
while (WiFi.begin(SECRET_SSID.c_str(), SECRET_WIFI_PASS.c_str()) != WL_CONNECTED) {
80+
// failed, retry
81+
outputDebug(TXT,".");
82+
delay(1000);
83+
}
84+
outputDebug();
85+
IPAddress ip = WiFi.localIP();
86+
for(int i=0;i<4;++i)
87+
{
88+
m_sIP+=ip[i];
89+
if(i!=3) m_sIP+='.';
90+
}
91+
92+
uint8_t mac[6];
93+
char buff[10];
94+
WiFi.macAddress(mac);
95+
96+
for(int i=5;i>=0;--i)
97+
{
98+
memset(buff,'\0',10);
99+
itoa(mac[i],buff,16);
100+
if(mac[i]<17)
101+
{
102+
m_sMac+="0";
103+
m_sMqttid+="0";
104+
}
105+
for(int j=0;j<strlen(buff);++j)
106+
{
107+
m_sMac += (char)toupper(buff[j]);
108+
m_sMqttid += (char)toupper(buff[j]);
109+
}
110+
if(i!=0) m_sMac += ':';
111+
}
112+
m_sModel = m_sMqttid;
113+
}
114+
void LiveObjectsWiFi::checkNetwork()
115+
{
116+
if(WiFi.status()== WL_DISCONNECTED)
117+
connectNetwork();
118+
}
119+
void LiveObjectsWiFi::disconnectNetwork()
120+
{
121+
outputDebug(INFO,"Disconnecting WiFi");
122+
WiFi.disconnect();
123+
}
124+
void LiveObjectsWiFi::messageCallback(int msg)
125+
{
126+
LiveObjects::get().onMQTTmessage(msg);
127+
}
128+
129+
130+
131+
132+
133+
134+
135+
void LiveObjectsWiFi::addNetworkInfo()
136+
{
137+
String tmp;
138+
tmp = String(WiFi.RSSI());
139+
tmp += " dbm";
140+
if(m_Protocol == MQTT && m_Encoding==TEXT) addToPayload(easyDataPayload[JSONVALUE].createNestedObject("networkInfo"),"mac",m_sMac,"ssid",SECRET_SSID,"ip",m_sIP,"strength",tmp);
141+
else addToPayload(m_sMac,SECRET_SSID,m_sIP,tmp);
142+
}
143+
#endif

0 commit comments

Comments
 (0)