void ts_error(int state, const char *format,...) { va_list args; int tlen = 128, len = 0; char *buf; reset_cfg(); reset_dict(); reset_prs(); va_start(args, format); buf = palloc(tlen); len = vsnprintf(buf, tlen - 1, format, args); if (len >= tlen) { tlen = len + 1; buf = repalloc(buf, tlen); vsnprintf(buf, tlen - 1, format, args); } va_end(args); /* ?? internal error ?? */ elog(state, "%s", buf); pfree(buf); }
int16 iot_atcmd_parser(puchar cmd_buf, int16 AtCmdLen) { int16 ret_code = 0; #if (ATCMD_CH_SWITCH_SUPPORT == 1) int8 cTypeLen = 0; #endif //BUFFER_INFO *rx_ring = &(UARTPort.Rx_Buffer); //PKT_DESC *rx_desc = &(UARTPort.Rx_desc); cmd_buf[AtCmdLen] = '\0'; //printf_high("AT command: %s , len=%d \n",cmd_buf, AtCmdLen); //printf_high("ring buf:pkt=%d,R=%d,W=%d\n", rx_desc->pkt_num,BRead(rx_ring),BWrite(rx_ring)); /* The current process is not encough*/ /* need improve for the command type and paramters parsing */ /* Format: AT#Default+enter*/ if (!memcmp(cmd_buf,AT_CMD_DEFAULT,sizeof(AT_CMD_DEFAULT)-1)) { reset_cfg(); iot_linkdown(0); //disable Link Down to fix STA machine keeps SMNT and no reponse } #if (ATCMD_SET_SMNT_SUPPORT == 1) /* Format: AT#Smnt+enter*/ else if (!memcmp(cmd_buf,AT_CMD_SET_SMNT,sizeof(AT_CMD_SET_SMNT)-1)) { ret_code = iot_atcmd_exec_smnt(cmd_buf); } #endif #if (ATCMD_GET_VER_SUPPORT == 1) /* Format: AT#Ver+enter*/ else if (!memcmp(cmd_buf,AT_CMD_VER,sizeof(AT_CMD_VER)-1)) { ret_code = iot_atcmd_exec_ver(cmd_buf); } #endif #if (ATCMD_NET_MODE_SUPPORT == 1) else if (!memcmp(cmd_buf,AT_CMD_NETMODE,sizeof(AT_CMD_NETMODE)-1)) { ret_code = iot_exec_atcmd_netmode(cmd_buf, AtCmdLen); } #endif #if (ATCMD_REBOOT_SUPPORT == 1) /* Format: AT#Reboot+enter*/ else if (!memcmp(cmd_buf,AT_CMD_REBOOT,sizeof(AT_CMD_REBOOT)-1)) { iot_atcmd_exec_reboot(); } #endif #if (ATCMD_CH_SWITCH_SUPPORT == 1) /* Format: AT#Channel -b0 -c6+enter */ //-b: [0/1] 0=BW_20, 1=BW_40 //-c: [1~14] else if (!memcmp(cmd_buf,AT_CMD_CHANNEL,sizeof(AT_CMD_CHANNEL)-1)) { ret_code = iot_exec_atcmd_ch_switch(cmd_buf, AtCmdLen); } #endif #if (ATCMD_SOFTAP_SUPPORT == 1) && (ATCMD_SUPPORT == 1) /* Format: AT#SoftAPConf -s[ssid] -c[channel] -a[auth_mode] -p[password]+enter*/ /* now, only support Open mode without password */ /* Format: AT#SoftAPConf -m1+enter --->store current AP setting to flash*/ /* Format: AT#SoftAPConf -d1+enter --->clear AP setting in flash*/ else if (!memcmp(cmd_buf,AT_CMD_SOFTAP_CFG, sizeof(AT_CMD_SOFTAP_CFG)-1)) { ret_code = iot_exec_atcmd_conf_softap(cmd_buf, AtCmdLen); if (ret_code == 0) printf_high("Config SoftAP success\n"); else printf_high("Config SoftAP fail: %d\n", ret_code); } #endif #if (ATCMD_FLASH_SUPPORT == 1) /* Format: AT#FLASH -r6 +enter*/ /* Format: AT#FLASH -s6 -v56+enter*/ else if (!memcmp(cmd_buf,AT_CMD_FLASH_SET,sizeof(AT_CMD_FLASH_SET)-1)) { //printf_high("Flash Write/Read \n"); ret_code = iot_atcmd_exec_flash(cmd_buf, AtCmdLen); } #endif #if (ATCMD_EFUSE_SUPPORT == 1) /* Format: AT#EFUSE -r6 +enter*/ /* Format: AT#EFUSE -s6 -v56 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_EFUSE_SET,sizeof(AT_CMD_EFUSE_SET)-1)) { //printf_high("Efuse Write/Read \n"); ret_code = iot_exec_atcmd_efuse_set(cmd_buf, AtCmdLen); } #endif #if (ATCMD_ATE_SUPPORT == 1) //20140528 delete old ATE calibration cmd handler, be instead of iwpriv cmd format handler /* Format: AT#ATECAL -C1 -m1 -c7 -g0 -f65 -p30 -n100000+enter*/ else if (!memcmp(cmd_buf,AT_CMD_ATE_CAL,sizeof(AT_CMD_ATE_CAL)-1)) { //printf_high("ATECAL \n"); gATEInfo.ATECmdFmt = ATE_CMD_TYPE_AT; ret_code = iot_exec_atcmd_ate_cal2(cmd_buf, AtCmdLen); } #endif #if (ATCMD_UART_SUPPORT == 1) && (UART_SUPPORT == 1) /* Format: AT#Uart -b57600 -w7 -p1 -s1 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_UART,sizeof(AT_CMD_UART)-1)) { ret_code = iot_exec_atcmd_uart(cmd_buf, AtCmdLen); } #endif #if ((ATCMD_PS_SUPPORT == 1) && (MT7681_POWER_SAVING == 1)) /* Format: AT#PowerSaving -l0 -t2000+enter*/ /* sleepTime = us */ else if (!memcmp(cmd_buf,AT_CMD_PS_SET,sizeof(AT_CMD_PS_SET)-1)) { ret_code = iot_exec_atcmd_ps_set(cmd_buf, AtCmdLen); } #endif /*Only for Debug*/ #if (ATCMD_ATE_MBR_CTL == 1) else if (!memcmp(cmd_buf,AT_CMD_MAC_SET,sizeof(AT_CMD_MAC_SET)-1)) { ret_code = iot_exec_atcmd_mac_rw(cmd_buf, AtCmdLen); } else if (!memcmp(cmd_buf,AT_CMD_BBP_SET,sizeof(AT_CMD_BBP_SET)-1)) { ret_code = iot_exec_atcmd_bbp_rw(cmd_buf, AtCmdLen); } else if (!memcmp(cmd_buf,AT_CMD_RF_SET,sizeof(AT_CMD_RF_SET)-1)) { ret_code = iot_exec_atcmd_rf_rw(cmd_buf, AtCmdLen); } #endif /*jinchuan These functions developping is pending, no plan to use */ #if 0 //(ATCMD_TCPIP_SUPPORT == 1) && (CFG_SUPPORT_TCPIP == 1) /* Format: AT#Tcp_Connect -a192.168.1.131 -p1234 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_TCPCONNECT,sizeof(AT_CMD_TCPCONNECT)-1)) { iot_tcpip_connect(cmd_buf, AtCmdLen); } /* Format: AT#Tcp_Send -s1 -dtest data +enter*/ else if (!memcmp(cmd_buf,AT_CMD_TCPSEND,sizeof(AT_CMD_TCPSEND)-1)) { iot_tcpip_send(cmd_buf, AtCmdLen); } /* Format: AT#Tcp_Listen -p7682 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_TCPLISTEN,sizeof(AT_CMD_TCPLISTEN)-1)) { iot_tcpip_listen(cmd_buf, AtCmdLen); } /* Format: AT#Tcp_Disconnect -s0 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_TCPDISCONNECT,sizeof(AT_CMD_TCPDISCONNECT)-1)) { iot_tcpip_disconnect(cmd_buf, AtCmdLen); } /* Format: AT#Udp_Create -a192.168.1.132 -r1234 -l4321 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_UDPCREATE,sizeof(AT_CMD_UDPCREATE)-1)) { iot_tcpip_udp_creat(cmd_buf, AtCmdLen); } /* Format: AT#Udp_Remove -s130 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_UDPREMOVE,sizeof(AT_CMD_UDPREMOVE)-1)) { iot_tcpip_udp_del(cmd_buf, AtCmdLen); } /* Format: AT#Udp_Send -s130 -d1234 -a192.168.1.132 -r1234 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_UDPSEND,sizeof(AT_CMD_UDPSEND)-1)) { iot_tcpip_udp_send(cmd_buf, AtCmdLen); } /* Format: AT#StaticIP -i192.168.1.100 -m255.255.255.0 -g192.168.1.1 -d172.26.2.185 +enter*/ else if (!memcmp(cmd_buf,AT_CMD_STATIC_IP,sizeof(AT_CMD_STATIC_IP)-1)) { iot_tcpip_set_static_ip(cmd_buf, AtCmdLen); } else if (!memcmp(cmd_buf,AT_CMD_NETSTAT,sizeof(AT_CMD_NETSTAT)-1)) { iot_tcpip_netstat(cmd_buf, AtCmdLen); } #endif #if (ATCMD_UART_FW_SUPPORT == 1) && (UART_SUPPORT == 1) /* Format: AT#UpdateFW+enter (the range of type is [1~7] ) */ else if (!memcmp(cmd_buf,AT_CMD_UPDATEFW,sizeof(AT_CMD_UPDATEFW)-1)) { iot_xmodem_update_fw_start(); /*Disable Uart Rx Interrupt*/ iot_xmodem_update_fw(); iot_xmodem_update_fw_stop(); /*Restore Uart Rx Interrupt*/ } #endif #if (ATCMD_JTAGMODE_SUPPORT == 1) else if (!memcmp(cmd_buf,AT_CMD_JTAGMODE,sizeof(AT_CMD_JTAGMODE)-1)) { iot_exec_atcmd_jtag_switch(cmd_buf, AtCmdLen); } #endif return ret_code; }