51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#include "DLLN3X.h"
|
|
|
|
DLLN3X dlln33; //Instantiating DLLN3X module
|
|
zigbee_frame zframe;
|
|
void zigbee_call_back(uint8_t orig_port,
|
|
uint8_t dest_port, uint16_t addr,
|
|
uint8_t data[], int length) {
|
|
switch (dest_port) {
|
|
case 0x82:
|
|
{
|
|
/* Do everything you want to do */
|
|
char temp[200];
|
|
sprintf(temp, "Hello from port 0x%X: %s",orig_port,data);
|
|
Serial.println(temp);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
while (!Serial || millis() < 5000)
|
|
;
|
|
dlln33.init(&Serial1);// could be used like HardwareSerial(Serial1, Serial2 and etc.) or SoftwareSerial
|
|
dlln33.setcallback(zigbee_call_back);
|
|
while(dlln33.read_addr()==0)
|
|
{
|
|
Serial.println("Waiting for DL33NX to connect........");
|
|
delay(1000);
|
|
}
|
|
char temp[20];
|
|
sprintf(temp, "DL33NX addr: 0x%04X.",dlln33.read_addr());
|
|
Serial.println(temp);
|
|
}
|
|
|
|
uint64_t interval = 5000, pre_milli = 0;
|
|
void loop() {
|
|
dlln33.loop();
|
|
if (millis() - pre_milli >= interval) {
|
|
zframe.src_port = 0x81;
|
|
zframe.des_port = 0x82;
|
|
*((uint16_t *)&zframe.remote_addrL) = 0; // send pkg to self.
|
|
strncpy((char*)zframe.data,"Hello to port 0x82!",19);
|
|
zframe.length = 19;
|
|
dlln33.send(&zframe);
|
|
pre_milli = millis();
|
|
}
|
|
} |