Teste Flash

Dependencies:   pulga-lorawan-drv Si1133 BME280

serial_cmds.cpp

Committer:
MatteusCarr
Date:
2021-09-13
Revision:
70:99b7a15c09da
Parent:
69:2d56b571c78e

File content as of revision 70:99b7a15c09da:

#include "serial.h"

gps_navPVT gps_data;

bool SerialCommandRun(const char *msg)
{
    char Option = msg[1]; /// recebo opcao
    
    switch (Option)
    {
    
    case CMD_PRINT_LAST_GPS:
        {int local_lat, local_log;

        gps_data = get_struct();
        pc.printf("<g%d,%d\n>", (int)gps_data.lat, (int)gps_data.lon);        
        pc.printf("<t%d/%d/%d-%d:%d:%d\n>", (int)gps_data.year, (int)gps_data.month,(int)gps_data.day, (int)gps_data.hour, (int)gps_data.min, (int)gps_data.sec);
        
        break;}
        
    case CMD_SEND_HELLO:
        {pc.printf("<hHello>");
        char hello[100] = "helloWord\n";
        int ret;
        ret = lora_send_message((uint8_t*)hello, (uint16_t)strlen(hello));
        if(ret > 0){
            pc.printf("Send OK\n");
        }
        else{
            ret == LORAWAN_STATUS_WOULD_BLOCK ? pc.printf("send - WOULD BLOCK\r\n") : pc.printf("\r\n send() Error  \r\n");
            //if (ret == LORAWAN_STATUS_WOULD_BLOCK) {
            //retry in 3 seconds
                //if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
                    //ev_queue.call_in(10000, send_message);
            pc.printf("Fail to Send\n");
        }
        break;}
    case CMD_SEND_LORAWAN_NO_RETRANS:
        {pc.printf("<w %s>", msg+2);
        char msg_lora [256]; 
        strncpy(msg_lora, msg+2, strlen(msg)); //original string, begin index (2), substring length
        int ret1;
        ret1 = lora_send_message((uint8_t*)msg_lora, (uint16_t)strlen(msg_lora));
        if(ret1 > 0){
            pc.printf("Send OK\n");
        }
        else{
            ret1 == LORAWAN_STATUS_WOULD_BLOCK ? pc.printf("send - WOULD BLOCK\r\n") : pc.printf("\r\n send() Error  \r\n");
            //if (ret == LORAWAN_STATUS_WOULD_BLOCK) {
            //retry in 3 seconds
                //if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
                    //ev_queue.call_in(10000, send_message);
            pc.printf("Fail to Send\n");
        }
        break;}
        
        case CMD_SEND_LORAWAN_RETRANS:
        {pc.printf("<w %s>", msg+2);
        char msg_lora_retrans [256]; 
        strncpy(msg_lora_retrans, msg+2, strlen(msg)); //original string, begin index (2), substring length
        int ret2;
        ret2 = lora_send_message((uint8_t*)msg_lora_retrans, (uint16_t)strlen(msg_lora_retrans));
        if(ret2 > 0){
            pc.printf("Send OK\n");
        }
        else{
            ret2 == LORAWAN_STATUS_WOULD_BLOCK ? pc.printf("send - WOULD BLOCK\r\n") : pc.printf("\r\n send() Error  \r\n");
            if (ret2 == LORAWAN_STATUS_WOULD_BLOCK) {
            //retry in 3 seconds
                if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
                    //ev_queue.call_in(10000, lora_send_message);
                    wait_ms(3000);
                    ret2 = lora_send_message((uint8_t*)msg_lora_retrans, (uint16_t)strlen(msg_lora_retrans));
                    }
            pc.printf("Fail to Send\n");}
        }
        break;}
    }
    
    return true;
}