Exemple #1
0
void onEvent (ev_t ev)
{
    debug_event(ev);

    switch(ev)
    {
   
      // network joined, session established
      case EV_JOINED:
          debug_val("\r\nnetid = ", LMIC.netid);

          // immediately prepare next transmission
          debug_str("\r\nSending");
          LMIC.frame[0] = LMIC.snr;
          LMIC_setTxData2(1, LMIC.frame, 1, 0);	// schedule transmission (port 1, datalen 1, no ack requested)
    	  break;
        
      // scheduled data sent (optionally data received)
      case EV_TXCOMPLETE:
          if(LMIC.dataLen) { // data received in rx slot after tx
        	  debug_str("\r\nReceived:");
              debug_buf(LMIC.frame+LMIC.dataBeg, LMIC.dataLen);
          }
          // immediately prepare next transmission
          LMIC.frame[0] = LMIC.snr;
          debug_val("\r\nSending:", LMIC.frame[0]);
			// schedule transmission (port 1, datalen 1, no ack requested)
          LMIC_setTxData2(1, LMIC.frame, 1, 0);
          break;
    }
}
Exemple #2
0
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;
	default:
		break;
	}
}
Exemple #3
0
// initial job
static void initfunc (osjob_t* j) {

    LMIC_reset();	// reset MAC state

   LMIC_setSession(0x12345678, 0xB710566C, nwkKey, artKey);

   //LMIC_startJoining();	// start joining
   // init done - onEvent() callback will be invoked...

/*void LMIC_setSession (u4_t netid, devaddr_t(u4_t) devaddr, xref2u1_t nwkKey, xref2u1_t artKey) {
LMIC.netid = netid;
LMIC.devaddr = devaddr;
if( nwkKey != (xref2u1_t)0 )
os_copyMem(LMIC.nwkKey, nwkKey, 16);
if( artKey != (xref2u1_t)0 )
os_copyMem(LMIC.artKey, artKey, 16);*/

debug_str("\r\nSending");
// 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)

LMIC_sendAlive();
}
void do_send(osjob_t* j){
//      Serial.print("Time: ");
//      Serial.println(millis() / 1000);
  printf("Time: %lu\n", (unsigned int) (millis() / 1000));
      // Show TX channel (channel numbers are local to LMIC)
//      Serial.print("Send, txCnhl: ");
//      Serial.println(LMIC.txChnl);
//      Serial.print("Opmode check: ");
        printf("Send, txCnhl: %u Opmode check: ", LMIC.txChnl);
      // Check if there is not a current TX/RX job running
    if (LMIC.opmode & (1 << 7)) {
      //Serial.println("OP_TXRXPEND, not sending");
        printf("OP_TXRXPEND, not sending\n");
    } else {
      //Serial.println("ok");
      printf("ok\n");
      // Prepare upstream data transmission at the next possible time.
      //   LMIC_setTxData2(1, mydata, sizeof(mydata)-1, 0);
      char buf[128];
      sprintf(buf, "NYC TTN test packet %u\n", xmit_count++);
      LMIC_setTxData2(1, (unsigned char *) buf, strlen(buf)-1, 0);
      printf("sending %s\n", buf);
    }
    // Schedule a timed job to run at the given timestamp (absolute system time)
    os_setTimedCallback(j, os_getTime()+sec2osticks(TRANSMIT_INTERVAL), do_send);
         
}
Exemple #5
0
// report sensor value when change was detected
static void sensorfunc (osjob_t* j) {
    // read sensor
    u2_t val = readsensor();
    debug_val("val = ", val);
    // prepare and schedule data for transmission
    LMIC.frame[0] = val << 8;
    LMIC.frame[1] = val;
    LMIC_setTxData2(1, LMIC.frame, 2, 0); // (port 1, 2 bytes, unconfirmed)
}