Skip to content

Commit d45acbf

Browse files
authored
Merge pull request #12 from AIS-DeviceIntegration/main
Enhance function & Add the new feature for Magellan
2 parents 23589b3 + 93b7b37 commit d45acbf

31 files changed

Lines changed: 2323 additions & 120 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include <Arduino.h>
2+
#include <MAGELLAN_SIM7600E_MQTT.h>
3+
MAGELLAN_SIM7600E_MQTT magel;
4+
5+
int checkStatusUpdate = UNKNOWN;
6+
void setup()
7+
{
8+
Serial.begin(115200);
9+
magel.OTA.autoUpdate(); // this function ENABLED by default unless you set FALSE
10+
setting.clientBufferSize = defaultOTABuffer; // set buffer size compatible for OTA
11+
magel.begin(setting);
12+
}
13+
14+
void loop()
15+
{
16+
magel.loop();
17+
magel.subscribes([](){
18+
checkStatusUpdate = magel.OTA.checkUpdate();
19+
// subscribe function here!
20+
});
21+
magel.interval(10,[](){ //time interval function inside every 10000 millis
22+
// doing function something every 10 sec here!
23+
switch (checkStatusUpdate)
24+
{
25+
case UP_TO_DATE:
26+
Serial.print(F("checkStatusUpdate: "));
27+
Serial.println("# UP_TO_DATE");
28+
break;
29+
case OUT_OF_DATE:
30+
Serial.print(F("checkStatusUpdate: "));
31+
Serial.println(F("# OUT_OF_DATE"));
32+
break;
33+
default:
34+
Serial.print(F("checkStatusUpdate: "));
35+
Serial.println("# UNKNOWN");
36+
break;
37+
}
38+
});
39+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#include <Arduino.h>
2+
#include <MAGELLAN_SIM7600E_MQTT.h>
3+
MAGELLAN_SIM7600E_MQTT magel;
4+
5+
int checkStatusUpdate = UNKNOWN;
6+
void setup()
7+
{
8+
Serial.begin(115200);
9+
magel.OTA.autoUpdate(false); // this function ENABLED by default unless you set FALSE
10+
setting.clientBufferSize = defaultOTABuffer; // set buffer size compatible for OTA
11+
magel.begin(setting);
12+
13+
magel.getServerConfig("autoUpdate", [](String resp){
14+
if(resp == "1")
15+
{
16+
magel.OTA.autoUpdate(true);
17+
}
18+
else{
19+
magel.OTA.autoUpdate(false);
20+
}
21+
magel.clientConfig.add("autoUpdateMode", ((magel.OTA.getAutoUpdate())? "ENABLE" : "DISABLE"));
22+
magel.clientConfig.save(); // update client config from device to thing optional
23+
});
24+
25+
magel.getControl([](String key, String value){
26+
if(key == "executeUpdate")
27+
{
28+
magel.control.ACK("executeUpdate", value);
29+
if(value == "1")
30+
{
31+
magel.OTA.executeUpdate(); // executeUpdate OTA
32+
}
33+
}
34+
else // acknowledge other control
35+
{
36+
magel.control.ACK(key, value);
37+
}
38+
});
39+
40+
// prepare sensor for add widget control
41+
magel.report.send("executeUpdate", "0");
42+
}
43+
44+
void loop()
45+
{
46+
magel.loop();
47+
magel.subscribes([](){
48+
magel.subscribe.serverConfig(PLAINTEXT);
49+
magel.subscribe.control(PLAINTEXT);
50+
checkStatusUpdate = magel.OTA.checkUpdate(); // checkUpdate once time after connect and after reconnect
51+
// subscribe function here!
52+
});
53+
magel.interval(10,[](){ //time interval function inside every 10000 millis
54+
// doing function something every 10 sec here!
55+
switch (checkStatusUpdate)
56+
{
57+
case UP_TO_DATE:
58+
Serial.print(F("checkStatusUpdate: "));
59+
Serial.println("# UP_TO_DATE");
60+
break;
61+
case OUT_OF_DATE:
62+
Serial.print(F("checkStatusUpdate: "));
63+
Serial.println(F("# OUT_OF_DATE"));
64+
break;
65+
default:
66+
Serial.print(F("checkStatusUpdate: "));
67+
Serial.println("# UNKNOWN");
68+
break;
69+
}
70+
});
71+
}
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#include <Arduino.h>
2+
#include <MAGELLAN_SIM7600E_MQTT.h>
3+
MAGELLAN_SIM7600E_MQTT magel;
4+
5+
void setup()
6+
{
7+
Serial.begin(115200);
8+
magel.OTA.autoUpdate(false); // this function ENABLED by default unless you set FALSE
9+
setting.clientBufferSize = defaultOTABuffer; // set buffer size compatible for OTA
10+
magel.begin(setting);
11+
12+
magel.getServerConfig("autoUpdate", [](String resp){
13+
if(resp == "1")
14+
{
15+
magel.OTA.autoUpdate(true);
16+
}
17+
else{
18+
magel.OTA.autoUpdate(false);
19+
}
20+
//magel.OTA.getAutoUpdate() is return TRUE if set autoUpdate, FALSE if set manualUpdate
21+
magel.clientConfig.add("autoUpdateMode", ((magel.OTA.getAutoUpdate())? "ENABLE" : "DISABLE"));
22+
magel.clientConfig.save(); // update client config from device to thing optional
23+
});
24+
25+
magel.getControl([](String key, String value){
26+
if(key == "executeUpdate")
27+
{
28+
magel.control.ACK("executeUpdate", value);
29+
if(value == "1")
30+
{
31+
magel.OTA.executeUpdate(); // executeUpdate OTA
32+
}
33+
}
34+
else // acknowledge other control
35+
{
36+
magel.control.ACK(key, value);
37+
}
38+
});
39+
40+
// prepare sensor for add widget control
41+
magel.report.send("executeUpdate", "0");
42+
}
43+
44+
int checkStatusUpdate = UNKNOWN;
45+
void loop()
46+
{
47+
magel.loop();
48+
magel.subscribes([](){
49+
magel.subscribe.serverConfig(PLAINTEXT);
50+
magel.subscribe.control(PLAINTEXT);
51+
checkStatusUpdate = magel.OTA.checkUpdate(); // checkUpdate once time after connect and after reconnect
52+
// subscribe function here!
53+
});
54+
magel.interval(10,[](){ //time interval function inside every 10000 millis
55+
// doing function something every 10 sec here!
56+
switch (checkStatusUpdate)
57+
{
58+
case UP_TO_DATE:
59+
Serial.print(F("checkStatusUpdate: "));
60+
Serial.println("# UP_TO_DATE");
61+
break;
62+
case OUT_OF_DATE:
63+
Serial.print(F("checkStatusUpdate: "));
64+
Serial.println(F("# OUT_OF_DATE"));
65+
break;
66+
default:
67+
Serial.print(F("checkStatusUpdate: "));
68+
Serial.println("# UNKNOWN");
69+
break;
70+
}
71+
72+
// you can use get information about OTA with this function too
73+
switch (magel.OTA.utility().firmwareIsUpToDate)
74+
{
75+
case UP_TO_DATE:
76+
Serial.print(F("checkStatusUpdate: "));
77+
Serial.println("# UP_TO_DATE");
78+
break;
79+
case OUT_OF_DATE:
80+
Serial.print(F("checkStatusUpdate: "));
81+
Serial.println(F("# OUT_OF_DATE"));
82+
break;
83+
default:
84+
Serial.print(F("checkStatusUpdate: "));
85+
Serial.println("# UNKNOWN");
86+
break;
87+
}
88+
89+
Serial.print("# checksum: ");
90+
//boolean TRUE meaning information in magel.OTA.utility is already get data about OTA
91+
Serial.println(magel.OTA.utility().isReadyOTA);
92+
93+
Serial.print("# firmware name: ");
94+
Serial.println(magel.OTA.utility().firmwareName);
95+
96+
Serial.print("# firmware version: ");
97+
Serial.println(magel.OTA.utility().firmwareVersion);
98+
99+
Serial.print("# firmware size: ");
100+
Serial.println(magel.OTA.utility().firmwareTotalSize);
101+
102+
Serial.print("# checksumAlgorithm: ");
103+
Serial.println(magel.OTA.utility().checksumAlgorithm);
104+
105+
Serial.print("# checksum: ");
106+
Serial.println(magel.OTA.utility().checksum);
107+
108+
Serial.print("# Device information: ");
109+
// if get "null" in value because this device never OTA before
110+
Serial.println(magel.OTA.readDeviceInfo());
111+
});
112+
}

examples/Magellan/MQTT/getControl/getControlJSON/getControlJSON.ino

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ void setup()
2323
// Serial.println(Lamp1);
2424
// magel.sensor.add("Lamp1", Lamp1);
2525
// magel.control.ACK(magel.sensor.toJSONString()); //ACKNOWLEDGE control to magellan
26+
// magel.sensor.clear();
2627
// }
2728
// });
2829

@@ -36,7 +37,7 @@ void loop()
3637
magel.subscribes([](){
3738
magel.subscribe.control(); // subscribe server control content type JSON
3839
});
39-
magel.interval(10,[](){ //time interval function inside every 10 second
40+
magel.interval(10,[](){ //time interval function inside every 10000 millis
4041

4142
});
42-
}
43+
}

examples/Magellan/MQTT/getControl/getControlPlaintext/getControlPlaintext.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ void loop()
3333
magel.subscribes([](){
3434
magel.subscribe.control(PLAINTEXT); // subscribe server control content type PLAINTEXT
3535
});
36-
magel.interval(10,[](){ //time interval function inside every 10 second
36+
magel.interval(10,[](){ //time interval function inside every 10000 millis
3737

3838
});
39-
}
39+
}

examples/Magellan/MQTT/getControlLED/getControlJSON_LED/getControlJSON_LED.ino

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@ void setup()
2020
Serial.println("LED ON");
2121
magel.sensor.add("Lamp1", digitalRead(LED_E15));
2222
magel.control.ACK(magel.sensor.toJSONString()); //ACKNOWLEDGE control to magellan
23+
magel.sensor.clear();
2324
}
2425
else if (control == "{\"Lamp1\":0}")
2526
{
2627
digitalWrite(LED_E15, LOW);
2728
Serial.println("LED OFF");
2829
magel.sensor.add("Lamp1", digitalRead(LED_E15));
2930
magel.control.ACK(magel.sensor.toJSONString()); //ACKNOWLEDGE control to magellan
31+
magel.sensor.clear();
3032
}
3133
else
3234
{
@@ -48,13 +50,15 @@ void setup()
4850
// Serial.println("LED ON");
4951
// magel.sensor.add("Lamp1", digitalRead(LED_E15));
5052
// magel.control.ACK(magel.sensor.toJSONString()); //ACKNOWLEDGE control to magellan
53+
// magel.sensor.clear();
5154
// }
5255
// else if (Lamp1 == "0")
5356
// {
5457
// digitalWrite(LED_E15, LOW);
5558
// Serial.println("LED OFF");
5659
// magel.sensor.add("Lamp1", digitalRead(LED_E15));
5760
// magel.control.ACK(magel.sensor.toJSONString()); //ACKNOWLEDGE control to magellan
61+
// magel.sensor.clear();
5862
// }
5963
// }
6064
// });
@@ -69,7 +73,7 @@ void loop()
6973
magel.subscribes([](){
7074
magel.subscribe.control(); // subscribe server config content type JSON
7175
});
72-
magel.interval(10,[](){ //time interval function inside every 10 second
76+
magel.interval(10,[](){ //time interval function inside every 10000 millis
7377

7478
});
75-
}
79+
}

examples/Magellan/MQTT/getControlLED/getControlPlaintext_LED/getControlPlaintext_LED.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void loop()
6363
magel.subscribes([](){
6464
magel.subscribe.control(PLAINTEXT); // subscribe server config content type JSON
6565
});
66-
magel.interval(10,[](){ //time interval function inside every 10 second
66+
magel.interval(10,[](){ //time interval function inside every 10000 millis
6767

6868
});
69-
}
69+
}

examples/Magellan/MQTT/getServerConfig/getServerConfigJSON/getServerConfigJSON.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void loop()
3131
magel.subscribes([](){
3232
magel.subscribe.serverConfig(); // subscribe server config content type JSON
3333
});
34-
magel.interval(10,[](){ //time interval function inside every 10 second
34+
magel.interval(10,[](){ //time interval function inside every 10000 millis
3535
magel.serverConfig.request(); // request server config content type JSON
3636
});
37-
}
37+
}

examples/Magellan/MQTT/getServerConfig/getServerConfigPlaintext/getServerConfigPlaintext.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ void loop()
2727
magel.subscribes([](){
2828
magel.subscribe.serverConfig(PLAINTEXT); // subscribe server config content type PLAINTEXT
2929
});
30-
magel.interval(10,[](){ //time interval function inside every 10 second
30+
magel.interval(10,[](){ //time interval function inside every 10 sec
3131
magel.serverConfig.request("DELAY"); // request server config content type PLAINTEXT
3232
magel.serverConfig.request("INTERVAL"); // request server config content type PLAINTEXT
3333
magel.serverConfig.request("SSID"); // request server config content type PLAINTEXT
3434
});
35-
}
35+
}

examples/Magellan/MQTT/getServerTime/getServerTime.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void loop()
2222
{
2323
magel.subscribe.getServerTime(PLAINTEXT);
2424
});
25-
magel.interval(5, [](){ //time interval function inside every 5 second
25+
magel.interval(5, [](){
2626
magel.getServerTime(); // request time from magellan server
2727
});
2828
}

0 commit comments

Comments
 (0)