Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DHT LMiC SX1276Lib mbed
Fork of LoRaWAN_send_text by
Diff: main.cpp
- Revision:
- 9:fdd150f9db9e
- Parent:
- 8:747796516a2f
- Child:
- 10:576f275cfc14
diff -r 747796516a2f -r fdd150f9db9e main.cpp
--- a/main.cpp Wed Sep 16 00:02:20 2015 +0000
+++ b/main.cpp Wed Sep 16 07:53:43 2015 +0000
@@ -1,4 +1,4 @@
-/* License: Revised BSD License, see LICENSE.TXT, (c)2015 tamberg.org, (c)2015 Semtech */
+// License: Revised BSD License, see LICENSE.TXT, (c)2015 tamberg.org, (c)2015 Semtech
#include "mbed.h"
#include "lmic.h"
@@ -21,76 +21,37 @@
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
};
+osjob_t initjob;
osjob_t sendFrameJob;
+u1_t n = 0;
void os_getArtEui (uint8_t *buf) {} // ignore
void os_getDevEui (uint8_t *buf) {} // ignore
void os_getDevKey (uint8_t *buf) {} // ignore
-u1_t n = 0;
-
-static void prepareTxFrame (void) {
- debug_str("prepareTxFrame\r\n");
- //for (int i = 0; i < LORAWAN_APP_DATA_SIZE; i++) {
- // LMIC.frame[i] = n;
- //}
- //n++;
- LMIC.frame[0] = n++;
-}
-
-void processRxFrame (void) {
- debug_str("processRxFrame\r\n");
- u1_t rxPort = LMIC.frame[LMIC.dataBeg - 1];
- debug_val("rxPort", rxPort);
- for (int i = 0; i < LMIC.dataLen; i++) {
- debug_hex(LMIC.frame[LMIC.dataBeg + i]);
- debug_char(' ');
- }
+void onSendFrame (osjob_t* j) {
+ LMIC.frame[0] = n++; // or any other payload
+ int result = LMIC_setTxData2(LORAWAN_APP_PORT, LMIC.frame,
+ LORAWAN_APP_DATA_SIZE, LORAWAN_CONFIRMED_MSG_ON); // calls onEvent()
}
-static void onSendFrame (osjob_t* j) {
- debug_str("onSendFrame\r\n");
- prepareTxFrame();
- int result = LMIC_setTxData2(
- LORAWAN_APP_PORT,
- LMIC.frame,
- LORAWAN_APP_DATA_SIZE,
- LORAWAN_CONFIRMED_MSG_ON); // calls onEvent()
- debug_val("LMIC_setTxData2, result = ", result);
-}
-
-static void onInit (osjob_t* j) {
- debug_str("onInit\r\n");
- LMIC_reset(); // reset MAC state
+void onInit (osjob_t* j) {
+ LMIC_reset();
LMIC_setAdrMode(LORAWAN_ADR_ON);
- LMIC_setDrTxpow(DR_SF12, 16); // 14
- LMIC_setSession(
- LORAWAN_NET_ID,
- LORAWAN_DEV_ADDR,
- NwkSKey,
- ArtSKey);
+ LMIC_setDrTxpow(DR_SF12, 14);
+ LMIC_setSession(LORAWAN_NET_ID, LORAWAN_DEV_ADDR, NwkSKey, ArtSKey);
onSendFrame(NULL);
}
void onEvent (ev_t ev) { // called by lmic.cpp, see also oslmic.h
- debug_str("onEvent\r\n");
debug_event(ev);
- if (ev == EV_TXCOMPLETE) { // scheduled data sent (optionally data received)
- debug_val("Datarate = ", LMIC.datarate);
- if ((LMIC.txrxFlags & (TXRX_DNW1 | TXRX_DNW2)) != 0) { // downlink?
- if (LMIC.dataLen != 0) { // data received in rx slot after tx
- debug_buf(LMIC.frame + LMIC.dataBeg, LMIC.dataLen);
- processRxFrame();
- }
- }
- //os_setTimedCallback(&sendFrameJob, os_getTime() + 5000, onSendFrame);
+ if (ev == EV_TXCOMPLETE) {
os_setCallback(&sendFrameJob, onSendFrame);
}
}
int main (void) {
debug_str("main\r\n");
- osjob_t initjob;
os_init();
os_setCallback(&initjob, onInit);
os_runloop(); // blocking
