@@ -190,8 +190,10 @@ const char mac_band[] PROGMEM = "band";
190
190
const char mac_ar[] PROGMEM = " ar" ;
191
191
const char mac_rx2[] PROGMEM = " rx2" ;
192
192
const char mac_ch[] PROGMEM = " ch" ;
193
+ const char mac_gwnb[] PROGMEM = " gwnb" ;
194
+ const char mac_mrgn[] PROGMEM = " mrgn" ;
193
195
194
- const char *const mac_options[] PROGMEM = {mac_devaddr, mac_deveui, mac_appeui, mac_nwkskey, mac_appskey, mac_appkey, mac_pwridx, mac_dr, mac_adr, mac_bat, mac_retx, mac_linkchk, mac_rxdelay1, mac_rxdelay2, mac_band, mac_ar, mac_rx2, mac_ch};
196
+ const char *const mac_options[] PROGMEM = {mac_devaddr, mac_deveui, mac_appeui, mac_nwkskey, mac_appskey, mac_appkey, mac_pwridx, mac_dr, mac_adr, mac_bat, mac_retx, mac_linkchk, mac_rxdelay1, mac_rxdelay2, mac_band, mac_ar, mac_rx2, mac_ch, mac_gwnb, mac_mrgn };
195
197
196
198
#define MAC_DEVADDR 0
197
199
#define MAC_DEVEUI 1
@@ -211,6 +213,8 @@ const char *const mac_options[] PROGMEM = {mac_devaddr, mac_deveui, mac_appeui,
211
213
#define MAC_AR 15
212
214
#define MAC_RX2 16
213
215
#define MAC_CH 17
216
+ #define MAC_GWNB 18
217
+ #define MAC_MRGN 19
214
218
215
219
const char mac_join_mode_otaa[] PROGMEM = " otaa" ;
216
220
const char mac_join_mode_abp[] PROGMEM = " abp" ;
@@ -963,3 +967,30 @@ void TheThingsNetwork::wake()
963
967
{
964
968
autoBaud ();
965
969
}
970
+
971
+ void TheThingsNetwork::linkCheck (uint16_t seconds)
972
+ {
973
+ clearReadBuffer ();
974
+ debugPrint (SENDING);
975
+ sendCommand (MAC_TABLE, MAC_PREFIX, true );
976
+ sendCommand (MAC_TABLE, MAC_SET, true );
977
+ sendCommand (MAC_GET_SET_TABLE, MAC_LINKCHK, true );
978
+
979
+ sprintf (buffer, " %u" , seconds);
980
+ modemStream->write (buffer);
981
+ modemStream->write (SEND_MSG);
982
+ debugPrintLn (buffer);
983
+ waitForOk ();
984
+ }
985
+
986
+ uint8_t TheThingsNetwork::getLinkCheckGateways ()
987
+ {
988
+ readResponse (MAC_TABLE, MAC_GET_SET_TABLE, MAC_GWNB, buffer, sizeof (buffer));
989
+ return strtol (buffer, NULL , 10 );
990
+ }
991
+
992
+ uint8_t TheThingsNetwork::getLinkCheckMargin ()
993
+ {
994
+ readResponse (MAC_TABLE, MAC_GET_SET_TABLE, MAC_MRGN, buffer, sizeof (buffer));
995
+ return strtol (buffer, NULL , 10 );
996
+ }
0 commit comments