transmit example for LMIC_MOTE_L152RC
Dependencies: lmic_MOTE_L152RC mbed-src
transmit_main.cpp
- Committer:
- dudmuck
- Date:
- 2015-06-02
- Revision:
- 1:1ff358d55507
- Parent:
- 0:cf8cd2f1ab24
File content as of revision 1:1ff358d55507:
//#if 0 /******************************************************************************* * Copyright (c) 2014-2015 IBM Corporation. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Zurich Research Lab - initial API, implementation and documentation *******************************************************************************/ #include "lmic.h" #include "debug.h" ////////////////////////////////////////////////// // CONFIGURATION (FOR APPLICATION CALLBACKS BELOW) ////////////////////////////////////////////////// // application router ID (LSBF) static const u1_t APPEUI[8] = { 0x01, 0x00, 0x01, 0x00, 0x00, 0x0c, 0x25, 0x00 }; // unique device ID (LSBF) static const u1_t DEVEUI[8] = { 0x0f, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x25, 0x00 }; // device-specific AES key (derived from device EUI) static const u1_t DEVKEY[16] = { 0xe4, 0x72, 0x71, 0xc5, 0xf5, 0x30, 0xa9, 0x9f, 0xcf, 0xc4, 0x0e, 0xab, 0xea, 0xd7, 0x19, 0x42, }; // E4 -72 -71 -C5 -F5 -30 -A9 -9F -CF -C4 -0E -AB -EA -D7 -19 -42 ////////////////////////////////////////////////// // APPLICATION CALLBACKS ////////////////////////////////////////////////// // provide application router ID (8 bytes, LSBF) void os_getArtEui (u1_t* buf) { memcpy(buf, APPEUI, 8); } // provide device ID (8 bytes, LSBF) void os_getDevEui (u1_t* buf) { memcpy(buf, DEVEUI, 8); } // provide device key (16 bytes) void os_getDevKey (u1_t* buf) { memcpy(buf, DEVKEY, 16); } ////////////////////////////////////////////////// // MAIN - INITIALIZATION AND STARTUP ////////////////////////////////////////////////// // initial job static void initfunc (osjob_t* j) { // reset MAC state LMIC_reset(); // start joining LMIC_startJoining(); // init done - onEvent() callback will be invoked... } // application entry point int main () { osjob_t initjob; // initialize runtime env os_init(); // initialize debug library debug_init(); // setup initial job os_setCallback(&initjob, initfunc); // execute scheduled jobs and events os_runloop(); // (not reached) return 0; } ////////////////////////////////////////////////// // LMIC EVENT CALLBACK ////////////////////////////////////////////////// void onEvent (ev_t ev) { debug_event(ev); switch(ev) { // network joined, session established case EV_JOINED: debug_val("netid = ", LMIC.netid); goto tx; // scheduled data sent (optionally data received) case EV_TXCOMPLETE: if(LMIC.dataLen) { // data received in rx slot after tx debug_buf(LMIC.frame+LMIC.dataBeg, LMIC.dataLen); } tx: // immediately prepare next transmission LMIC.frame[0] = LMIC.snr; // schedule transmission (port 1, datalen 1, no ack requested) LMIC_setTxData2(1, LMIC.frame, 1, 0); // (will be sent as soon as duty cycle permits) break; } } //#endif /* #if 0 */