개발 가이드

IoT Portal 서비스 개발에 필요한 개발 가이드 입니다.

LoRa 디바이스 개발하기(KEIL_MDK)

Confirmed Uplink&Downlink

LoRa Confirmed Uplink

LORA_CON_SEND로 Define되어있는 Command를 통해 Data 값인 010203040506을 Thingplug로 Uplink 시킵니다.

개발가이드 설명
Function Send_handler(void)
Param [Option 1] Message
DataRate 별 Tx data의 최대 전송 사이즈가 다르다.
[Option 2] Cnf : confirmed data
Uncnf: unconfirmed data
[Option 3] Fport : 1~221
Returns None
Description Uplink confirmed date 전송
void send_handler(void)
{
    state_ret_t ret;
    uint8_t send_str[75];
    PRINTF("send_handler\r\n");
    sprintf(send_str, LORA_CON_SEND, "010203040506");
    ret = send_and_check_command(send_str, RECV_ACK, LORA_CMD_ERR_RSP, SEND_TIMEOUT);
    lora_state = LORA_SEND_STATE;
}

LoRa Downlink (Message & Reset)

Web/App Server에서 받아온 값은 모듈을 거쳐서 MCU로 들어오게 됩니다. 코드의 Str을 통해 line by line으로 들어오게 되는데, 이 데이터 중 Downlink에 관련된 line을 parsing하여 모니터링 합니다.

개발가이드 설명
MSG Type Version(1Byte) MSG Type(1Byte) Payload Length(1Byte) PayLoad(0~62Bytes)
0x00 00 00 00 Null
0x80 00 80
0x81 00 81 00 Null
0x82 00 82
개발가이드 설명
Byte Length 1 1 1 0~n
Bit Length 2 6
Name VER RFU Message type Payload Len Payload
개발가이드 설명
Function LoRa Downlink
Returns RX_MSG 222 : 0000(00:data size)(00000…:data value)
Description 단말로 보낸 Downlink 값 확인
if (strstr(str, RXDONE) != 0){
PRINTF("[DEBUG] %s\r\n", str);
}
if (strstr(str, RXMSG) != 0){
PRINTF("[DEBUG] %s\r\n", str);
str = str+strlen("Rx_MSG 222 : 0000xx");
PRINTF("[DEBUG] Downlink Value: %s\r\n", str);
}
if (strstr(str, EXTDEVMGMT) != 0){
PRINTF("[DEBUG] %s\r\n", str);
}
if (strstr(str, DEVRESET) != 0){
PRINTF("[DEBUG] DevReset %s\r\n", str);
NVIC_SystemReset();
}

top