Send text with LoRaWAN.

Dependencies:   LMiC SX1276Lib mbed

Fork of LoRaWAN-lmic-app by Semtech

Committer:
tamberg
Date:
Wed Sep 16 23:28:25 2015 +0000
Revision:
10:576f275cfc14
Parent:
9:fdd150f9db9e
Child:
11:0cc0f7b84c72
Cleanup.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tamberg 9:fdd150f9db9e 1 // License: Revised BSD License, see LICENSE.TXT, (c)2015 tamberg.org, (c)2015 Semtech
mluis 0:a2929fa6e4f0 2
mluis 1:60184eda0066 3 #include "mbed.h"
mluis 0:a2929fa6e4f0 4 #include "lmic.h"
mluis 1:60184eda0066 5 #include "debug.h"
mluis 0:a2929fa6e4f0 6
tamberg 6:fbfc95b5c979 7 #define LORAWAN_NET_ID (uint32_t) 0x00000000
tamberg 6:fbfc95b5c979 8 #define LORAWAN_DEV_ADDR (uint32_t) 0x00001056
tamberg 6:fbfc95b5c979 9 #define LORAWAN_ADR_ON 1
tamberg 6:fbfc95b5c979 10 #define LORAWAN_CONFIRMED_MSG_ON 1
tamberg 6:fbfc95b5c979 11 #define LORAWAN_APP_PORT 15
tamberg 10:576f275cfc14 12 #define LORAWAN_APP_DATA_SIZE 32 // max 51
mluis 0:a2929fa6e4f0 13
tamberg 5:1f8829bd11ed 14 static uint8_t NwkSKey[] = {
tamberg 4:f83ad3eee79d 15 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
tamberg 4:f83ad3eee79d 16 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
mluis 0:a2929fa6e4f0 17 };
mluis 0:a2929fa6e4f0 18
tamberg 5:1f8829bd11ed 19 static uint8_t ArtSKey[] = {
tamberg 4:f83ad3eee79d 20 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
tamberg 4:f83ad3eee79d 21 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
mluis 0:a2929fa6e4f0 22 };
mluis 0:a2929fa6e4f0 23
tamberg 9:fdd150f9db9e 24 osjob_t initjob;
mluis 0:a2929fa6e4f0 25 osjob_t sendFrameJob;
tamberg 9:fdd150f9db9e 26 u1_t n = 0;
mluis 0:a2929fa6e4f0 27
tamberg 7:4adfa7248a0b 28 void os_getArtEui (uint8_t *buf) {} // ignore
tamberg 7:4adfa7248a0b 29 void os_getDevEui (uint8_t *buf) {} // ignore
tamberg 7:4adfa7248a0b 30 void os_getDevKey (uint8_t *buf) {} // ignore
mluis 0:a2929fa6e4f0 31
tamberg 9:fdd150f9db9e 32 void onSendFrame (osjob_t* j) {
tamberg 10:576f275cfc14 33 for (int i = 0; i < LORAWAN_APP_DATA_SIZE; i++) {
tamberg 10:576f275cfc14 34 LMIC.frame[i] = n++; // or any other payload
tamberg 10:576f275cfc14 35 }
tamberg 9:fdd150f9db9e 36 int result = LMIC_setTxData2(LORAWAN_APP_PORT, LMIC.frame,
tamberg 9:fdd150f9db9e 37 LORAWAN_APP_DATA_SIZE, LORAWAN_CONFIRMED_MSG_ON); // calls onEvent()
mluis 0:a2929fa6e4f0 38 }
mluis 0:a2929fa6e4f0 39
tamberg 9:fdd150f9db9e 40 void onInit (osjob_t* j) {
tamberg 9:fdd150f9db9e 41 LMIC_reset();
tamberg 5:1f8829bd11ed 42 LMIC_setAdrMode(LORAWAN_ADR_ON);
tamberg 9:fdd150f9db9e 43 LMIC_setDrTxpow(DR_SF12, 14);
tamberg 9:fdd150f9db9e 44 LMIC_setSession(LORAWAN_NET_ID, LORAWAN_DEV_ADDR, NwkSKey, ArtSKey);
tamberg 5:1f8829bd11ed 45 onSendFrame(NULL);
mluis 1:60184eda0066 46 }
mluis 1:60184eda0066 47
tamberg 8:747796516a2f 48 void onEvent (ev_t ev) { // called by lmic.cpp, see also oslmic.h
tamberg 10:576f275cfc14 49 //debug_event(ev);
tamberg 9:fdd150f9db9e 50 if (ev == EV_TXCOMPLETE) {
tamberg 8:747796516a2f 51 os_setCallback(&sendFrameJob, onSendFrame);
tamberg 8:747796516a2f 52 }
tamberg 8:747796516a2f 53 }
tamberg 8:747796516a2f 54
tamberg 6:fbfc95b5c979 55 int main (void) {
tamberg 4:f83ad3eee79d 56 debug_str("main\r\n");
tamberg 5:1f8829bd11ed 57 os_init();
tamberg 5:1f8829bd11ed 58 os_setCallback(&initjob, onInit);
tamberg 5:1f8829bd11ed 59 os_runloop(); // blocking
tamberg 8:747796516a2f 60 }