Content CAT LoRa Lab 9 - loraReceive Function
void loraReceive() { | |
String receive = lora.receive(); | |
if (receive != "") { | |
unsigned int rxPort = lora.getPortReceive(receive); | |
String rxPayload = lora.getPayloadReceive(receive); | |
if (rxPort != 0 && rxPayload != "") { | |
Serial.println("-----RX From CAT LORA-----"); | |
Serial.println(String("Port = ") + rxPort); | |
Serial.println(String("Payload = ") + rxPayload); | |
/*Downlink from Lora IoT by CAT is 012020012412105920200124143000 (00yyyyMMddhhmmssyyyyMMddhhmmss) | |
Device : RelayA => 01, RelayB => 02 | |
Start : 2020-01-24 12:10:59 => 20200124121059 | |
Stop : 2020-01-24 14:30:00 => 20200124143000 | |
rxPayload = 012020012412105920200124143000; | |
*/ | |
//for device | |
uint8_t device = (uint8_t) rxPayload.substring(0, 2).toInt(); | |
//new start datetime | |
uint16_t sYear = (uint16_t) rxPayload.substring(2, 6).toInt(); | |
uint8_t sMonth = (uint8_t) rxPayload.substring(6, 8).toInt(); | |
uint8_t sDay = (uint8_t) rxPayload.substring(8, 10).toInt(); | |
uint8_t sHour = (uint8_t) rxPayload.substring(10, 12).toInt(); | |
uint8_t sMinute = (uint8_t) rxPayload.substring(12, 14).toInt(); | |
uint8_t sSecond = (uint8_t) rxPayload.substring(14, 16).toInt(); | |
//new stop datetime | |
uint16_t eYear = (uint16_t) rxPayload.substring(16, 20).toInt(); | |
uint8_t eMonth = (uint8_t) rxPayload.substring(20, 22).toInt(); | |
uint8_t eDay = (uint8_t) rxPayload.substring(22, 24).toInt(); | |
uint8_t eHour = (uint8_t) rxPayload.substring(24, 26).toInt(); | |
uint8_t eMinute = (uint8_t) rxPayload.substring(26, 28).toInt(); | |
uint8_t eSecond = (uint8_t) rxPayload.substring(28, 30).toInt(); | |
//set startLedUnixtime and stopLedUnixtime | |
String deviceSelected = "Not Found"; | |
if (device == 1) { | |
deviceSelected = "Relay A"; | |
relayA.trunOnWhen(sYear, sMonth, sDay, sHour, sMinute, sSecond, eYear, eMonth, eDay, eHour, eMinute, eSecond); | |
} else if (device == 2) { | |
deviceSelected = "Relay B"; | |
relayB.trunOnWhen(sYear, sMonth, sDay, sHour, sMinute, sSecond, eYear, eMonth, eDay, eHour, eMinute, eSecond); | |
} | |
//set datetime format yyyy-MM-dd HH:mm:ss | |
char startLedDateTime[32]; | |
char stopLedDateTime[32]; | |
sprintf(startLedDateTime, "%04d-%02d-%02d %02d:%02d:%02d", sYear, sMonth, sDay, sHour, sMinute, sSecond); | |
sprintf(stopLedDateTime, "%04d-%02d-%02d %02d:%02d:%02d", eYear, eMonth, eDay, eHour, eMinute, eSecond); | |
//Show new datetime | |
Serial.println(String("Device Select : ") + deviceSelected); | |
Serial.println(String("New Start LED : ") + startLedDateTime); | |
Serial.println(String("New Stop LED : ") + stopLedDateTime); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment