W801_SDK_dev_env/demo/console/wm_demo_console.h
2023-03-08 08:23:45 +01:00

438 lines
15 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*****************************************************************************
*
* File Name : wm_demo_cmd.h
*
* Description: demo command header
*
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd.
* All rights reserved.
*****************************************************************************/
#ifndef __WM_DEMO_CMD_H__
#define __WM_DEMO_CMD_H__
#include <string.h>
#include "wm_include.h"
#include "wm_watchdog.h"
#include "wm_config.h"
#include "wm_ram_config.h"
/*****************************************************************
EXTERN FUNC
*****************************************************************/
extern int demo_connect_net(void *, ...);
extern int demo_connect_net_with_specific_info(void *, ...);
extern int demo_socket_client(void *, ...);
extern int demo_socket_server(void *, ...);
extern int demo_oneshot(void *, ...);
extern int demo_socket_config(void *, ...);
extern int demo_webserver_config(void *, ...);
extern int demo_create_softap(void *, ...);
extern int uart_demo(void *, ...);
extern int ntp_demo(void *, ...);
extern int ntp_set_server_demo(void *, ...);
extern int ntp_query_cfg(void *, ...);
extern int flash_demo(void *, ...);
extern int Socket_Client_Demo(void *, ...);
extern int sck_c_send_data_demo(void *, ...);
extern int socket_server_demo(void *, ...);
extern int sck_s_send_data_demo(void *, ...);
extern int socket_udp_demo(void *, ...);
extern int udp_send_data_demo(void *, ...);
extern int apsta_demo(void *, ...);
extern int apsta_socket_demo(void *, ...);
extern int gpio_demo(void *, ...);
extern int gpio_isr_test(void *, ...);
extern int pwm_demo(void *, ...);
extern int crypt_hard_demo(void *, ...);
extern int wm_7816_demo(void *, ...);
extern int rsa_demo(void *, ...);
extern int slave_spi_demo(void *, ...);
//extern int master_spi_demo(void *, ...);
extern int master_spi_recv_data(void *, ...);
extern int master_spi_send_data(void *, ...);
extern int pmu_timer0_demo(void *, ...);
extern int pmu_timer1_demo(void *, ...);
extern int rtc_demo(void *, ...);
extern int timer_demo(void *, ...);
extern int http_fwup_demo(void *, ...);
extern int http_get_demo(void *, ...);
extern int http_post_demo(void *, ...);
extern int http_put_demo(void *, ...);
extern int socket_server_demo(void *, ...);
extern int sck_s_send_data_demo(void *, ...);
extern int CreateMCastDemoTask(void *, ...);
extern int adc_input_voltage_demo(void *, ...);
extern int adc_chip_temperature_demo(void*,...);
extern int adc_power_voltage_demo(void *, ...);
extern int adc_input_voltage_cal_demo(void *, ...);
extern int adc_input_voltage_multipoint_cal_demo(void *, ...);
extern int sd_card_test(void *, ...);
extern int demo_wps_pbc(void *, ...);
extern int demo_wps_pin(void *, ...);
extern int demo_wps_get_pin(void *, ...);
extern int demo_iperf_auto_test(void *, ...);
extern int CreateSSLServerDemoTask(void *, ...);
extern int lwsDemoTest(void *, ...);
extern int tls_i2s_io_init(void *, ...);
extern int tls_i2s_demo(void *, ...);
extern int i2c_demo(void *, ...);
extern int scan_demo(void *, ...);
extern int scan_format2_demo(void *, ...);
extern int scan_specified_demo(void *, ...);
extern int https_demo(void *, ...);
extern int mqtt_demo(void *, ...);
extern int fatfs_test(void *, ...);
extern int mbedtls_demo(void *, ...);
extern int dsp_demo(void *,...);
#if (TLS_CONFIG_BLE == CFG_ON)
extern int demo_ble_config(void *, ...); /*wifi connection by ble configuration*/
#endif
#if DEMO_BT
extern int demo_bt_enable(void *, ...);
extern int demo_bt_destroy(void *, ...);
#if (TLS_CONFIG_BLE == CFG_ON)
extern int demo_ble_server_on(void *, ...);
extern int demo_ble_server_off(void *, ...);
extern int demo_ble_client_on(void *, ...);
extern int demo_ble_client_off(void *, ...);
extern int demo_ble_scan(void *,...);
extern int demo_ble_adv(void *,...);
#endif
#if (TLS_CONFIG_BR_EDR== CFG_ON)
extern int demo_bt_app_on(void *, ...);
extern int demo_bt_app_off(void *, ...);
#endif
#endif
#if DEMO_TOUCHSENSOR
extern int demo_touchsensor(void *, ...);
#endif
#if DEMO_LCD
extern void lcd_test(void);
#endif
extern int avoid_copy_entry(void *, ...);
/*****************************************************************
LOCAL FUNC
*****************************************************************/
static void demo_console_show_info(char *buf);
static int demo_console_show_help(void *p, ...);
static int demo_sys_reset(void *p, ...);
/*****************************************************************
LOCAL TYPE
*****************************************************************/
typedef struct demo_console_st
{
int rx_data_len;
u8 *rx_buf; /*uart rx*/
u16 rptr;
u8 MsgNum;
} Demo_Console;
struct demo_console_info_t
{
char *cmd;
int (*callfn)(void *, ...);
short type;/* perbit: 0-string, 1-number */
short param_cnt;
char *info;
};
#define DEMO_CONSOLE_CMD 1 //被解析成cmd
#define DEMO_CONSOLE_SHORT_CMD 2 //CMD的一部分没有解析完
#define DEMO_CONSOLE_WRONG_CMD 3
#define DEMO_BUF_SIZE TLS_UART_RX_BUF_SIZE
const char HTTP_POST[] = "t-httppost";
const char HTTP_PUT[] = "t-httpput";
struct demo_console_info_t console_tbl[] =
{
//To Do When Add New Demo
#if DEMO_CONNECT_NET
{"t-connect", demo_connect_net, 0, 2, "Test connecting ap;t-connect(\"ssid\",\"pwd\"); For open ap, pwd should be empty"},
{"t-connect_ss", demo_connect_net_with_specific_info, 0x1C, 5, "Test connecting ap;t-connect_ss(\"ssid\",\"pwd\",timeout,pci_en,scan_mode); For open ap, pwd should be empty"},
{"t-oneshot", demo_oneshot, 0, 0, "Test Oneshot configuration"},
// {"t-socketcfg", demo_socket_config, 0, 0, "Test socket configuration"},
{"t-webcfg", demo_webserver_config, 0, 0, "Test web server configuration"},
#if (TLS_CONFIG_BLE == CFG_ON)
{"t-blecfg", demo_ble_config, 0, 0, "Test ble mode configuration"},
#endif
#endif
#if DEMO_APSTA
{"t-apsta", apsta_demo, 0x0, 4, "Test connecting with AP by apsta mode;"},
{"t-asskt", apsta_socket_demo, 0x0, 0, "Test socket communication in apsta mode;"},
#endif
#if DEMO_SOFT_AP
{"t-softap", demo_create_softap, 0x1C, 5, "Test softap create & station join monitor;"},
#endif
#if DEMO_WPS
{"t-wps-get-pin", demo_wps_get_pin, 0x0, 0, "Test WPS get pin"},
{"t-wps-start-pin", demo_wps_pin, 0x0, 0, "Test WPS start pin"},
{"t-wps-start-pbc", demo_wps_pbc, 0x0, 0, "Test WPS start pbc"},
#endif
#if DEMO_SCAN
{"t-scan", scan_demo, 0x0, 0, "Test wifi scan"},
{"t-scanf2", scan_format2_demo, 0x0, 0, "Test wifi scan format2"},
{"t-ss", scan_specified_demo, 0x3c, 6, "Test specified scan t-ss(\"ssid\",\"mac\",chan,scan_type,min_interval,max_interval)"},
#endif
/************************************************************************/
#if DEMO_UARTx
{"t-uart", uart_demo, 0x7, 3, "Test uart tx/rx; For example t-uart=(9600,0,0),baudrate 9600 ,parity none and 1 stop bit"},
#endif
#if DEMO_GPIO
{"t-gpioirq", gpio_isr_test, 0x0, 0, "Test gpio interrupt services"},
{"t-gpio", gpio_demo, 0x0, 0, "Test gpio read and write"},
#endif
#if DEMO_FLASH
{"t-flash", flash_demo, 0x0, 0, "Test Read/Write Flash "},
#endif
#if DEMO_ENCRYPT
{"t-crypt", crypt_hard_demo, 0x0, 0, "Test Encryption/Decryption API"},
#endif
#if DEMO_RSA
{"t-rsa", rsa_demo, 0x0, 0, "Test RSA Encryption/Decryption API"},
#endif
#if DEMO_RTC
{"t-rtc", rtc_demo, 0x0, 0, "Test rtc"},
#endif
#if DEMO_TIMER
{"t-timer", timer_demo, 0x0, 0, "Test timer"},
#endif
#if DEMO_PWM
{"t-pwm", pwm_demo, 0x1F, 5, "Test PWM output, for example t-pwm=(0,20,99,1,0) to test ALLSYC mode."},
#endif
#if DEMO_PMU
{"t-pmuT0", pmu_timer0_demo, 0x1, 1, "Test power management unit with timer0"},
{"t-pmuT1", pmu_timer1_demo, 0x1, 1, "Test power management unit with timer1"},
#endif
#if DEMO_I2C
{"t-i2c", i2c_demo, 0x1, 1, "Test I2C module, for example t-i2c to W&R AT24CXX."},
#endif
#if DEMO_I2S
{"t-i2sioinit", tls_i2s_io_init, 0, 0, "Initialize I2S IO."},
{"t-i2s", tls_i2s_demo, 0x3F, 6, "Test I2S module, for example t-i2s=(0,1,44100,16,0,0) to send data."},
#endif
#if DEMO_MASTER_SPI
{"t-mspi-s", master_spi_send_data, 0x3, 2, "Test SPI Master sending data(Note: need another module acts as a client device)"},
{"t-mspi-r", master_spi_recv_data, 0x3, 2, "Test SPI Master receiving data(Note: need another module acts as a client device)"},
#endif
#if DEMO_SLAVE_SPI
{"t-sspi", slave_spi_demo, 0x1, 1, "Test slave HSPI,t-sspi=(0),(Note: need another module support as a master device)"},
#endif
#if DEMO_SDIO_HOST
{"t-sdh", sd_card_test, 0x0, 0, "Test sdio host write & read sd card"},
#endif
#if DEMO_ADC
{"t-adctemp", adc_chip_temperature_demo, 0x0, 0, "(ADC)Test chip temperature"},
{"t-adcvolt", adc_input_voltage_demo, 0x1, 1, "(ADC)Test input voltage,0-PA1(chan0), 1-PA4(chan1),8-different"},
{"t-adcpower", adc_power_voltage_demo, 0x0, 0, "(ADC)Sample power supply voltage"},
{"t-adccal", adc_input_voltage_cal_demo, 0x3, 2, "(ADC)Calibrate input voltage"},
{"t-adccalmp", adc_input_voltage_multipoint_cal_demo, 0x1F, 5, "(ADC) mulitpoint Calibrate t-adccalmp(chanbitmap,chan1ref,chan2ref,chan3ref,chan4ref),unit:mV"},
#endif
#if DEMO_7816
{"t-7816", wm_7816_demo, 0x0, 0, "Test 7816 tx/rx function"},
#endif
/************************************************************************/
#if DEMO_STD_SOCKET_CLIENT
{"t-sockc", Socket_Client_Demo, 0x1, 2, "Test data stream as [STANDARD SOCKET] CLIENT(working after connecting with AP successfully)"},
{"t-skcsnd", sck_c_send_data_demo, 0x3, 2, "Test socket client send data, len:send len, uart_trans: is or not use uart retransmission"},
#endif
#if DEMO_STD_SOCKET_SERVER
{"t-socks", socket_server_demo, 0x1, 1, "Test data stream as [STANDARD SOCKET] SERVER(working after connecting with AP successfully)"},
{"t-skssnd", sck_s_send_data_demo, 0x7, 3, "Test socket server send data skt_no:socket num, len:send len, uart_trans: is or not use uart retransmission"},
#endif
#if DEMO_SOCKET_CLIENT_SERVER
{"t-client", demo_socket_client,0x4,4,"Test socket client; t-client(\"ssid\",\"pwd\",port,\"ip\")"},
{"t-server", demo_socket_server,0x4,3,"Test socket server; t-server(\"ssid\",\"pwd\",port,)"},
#endif
#if DEMO_UDP
{"t-udp", socket_udp_demo, 0x3, 3, "Test data stream as UDP(working after connecting with AP successfully)"},
{"t-sndudp", udp_send_data_demo, 0x1, 1, "Test udp send data"},
#endif
#if DEMO_UDP_MULTI_CAST
{"t-mcast", CreateMCastDemoTask, 0x0, 1, "Test Multicast data stream"},
#endif
#if DEMO_NTP
{"t-ntp", ntp_demo, 0x0, 0, "Test NTP"},
{"t-setntps", ntp_set_server_demo, 0x0, 3, "Set NTP server ip;For example:t-setntps(\"cn.ntp.org.cn\", \"ntp.sjtu.edu.cn\", \"192.168.1.101\"),max server num is 3"},
{"t-queryntps", ntp_query_cfg, 0x0, 0, "Query the NTP server domain"},
#endif
#if DEMO_HTTP
{"t-httpfwup", http_fwup_demo, 0x0, 1, "Test firmware update via HTTP, like this t-httpfwup=(http://192.168.1.100:8080/WM_W600_SEC.img)"},
{"t-httpget", http_get_demo, 0x0, 1, "Test HTTP get method, like this t-httpget"},
{(char *)HTTP_POST, http_post_demo, 0x0, 1, "Test HTTP post method, like this t-httppost=(user=winnermicro)"},
{(char *)HTTP_PUT, http_put_demo, 0x0, 1, "Test HTTP put method, like this t-httpput=(user=winnermicro)"},
#endif
#if DEMO_SSL_SERVER
{"t-ssl-server", CreateSSLServerDemoTask, 0x0, 1, "Test ssl server,remember to turn on TLS_CONFIG_SERVER_SIDE_SSL"},
#endif
#if DEMO_WEBSOCKETS
{"t-websockets", lwsDemoTest, 0x0, 0, "websockets demo test"},
#endif
#if DEMO_HTTPS
{"t-https", https_demo, 0x0, 0, "Test https request"},
#endif
#if DEMO_MBEDTLS
{"t-mbedtls", mbedtls_demo, 0x0, 0, "Test mbedtls ssl"},
#endif
#if DEMO_MQTT
{"t-mqtt", mqtt_demo, 0x1, 1, "Test mqtt: 0-TCP; 1-TLS; 2-WS; 3-WSS"},
#endif
#if DEMO_FATFS
{"t-fatfs", fatfs_test, 0x0, 0, "Test fatfs on sd card"},
#endif
#if DEMO_IPERF_AUTO_TEST
{"t-iperf", demo_iperf_auto_test, 0x7E, 7, "Iperf auto test"},
#endif
#if DEMO_DSP
{"t-dsp", dsp_demo, 0x1, 1, "DSP demo:0-fir,1-matrix,2-rfft,3-sin,4-variance"},
#endif
#if DEMO_BT
{"t-bt-on", demo_bt_enable, 0x0, 0, "Test enable bt system"},
{"t-bt-off", demo_bt_destroy, 0x0, 0, "Test destroy bt system"},
#if (TLS_CONFIG_BLE == CFG_ON)
{"t-ble-server-on", demo_ble_server_on, 0x0, 0, "Test enable ble server"},
{"t-ble-server-off", demo_ble_server_off, 0x0, 0, "Test disable ble server"},
{"t-ble-client-on", demo_ble_client_on, 0x0, 0, "Test enable ble client"},
{"t-ble-client-off", demo_ble_client_off, 0x0, 0, "Test disable ble client"},
{"t-ble-adv", demo_ble_adv, 0x01, 1, "Test start connectable/unconnectable/stop ble advertisement,eg: t-ble-adv=(1/2/0)"},
{"t-ble-scan",demo_ble_scan, 0x01, 1, "Test start/stop ble scan,eg: t-ble-scan=(1/0)"},
#endif
#if (TLS_CONFIG_BR_EDR == CFG_ON)
{"t-bt-demo-on", demo_bt_app_on, 0x0, 0, "Test enable bt app on"},
{"t-bt-demo-off", demo_bt_app_off, 0x0, 0, "Test disable bt app off"},
#endif
#endif
#if DEMO_TOUCHSENSOR
{"t-touch", demo_touchsensor, 0x1, 1, "Test Touch sensor function,0:all, 1:touch sensor 1... 15:touch sensor 15"},
#endif
#if DEMO_LCD
{"t-lcd", (void *)lcd_test, 0, 0, "Test LCD output, eg: t-lcd"},
#endif
#if DEMO_AVOID_COPY
{"t-avoidcopy", avoid_copy_entry, 0x0, 0, "Test Avoid Copy function"},
#endif
//控制台上显示的最后一个命令,如果要让命令显示在控制台上,需要放在该行的上面
{"demohelp", demo_console_show_help, 0, 0, "Display Help information"},
//下面的命令用于内部测试,不显示在控制台上
{"reset", demo_sys_reset, 0, 0, "Reset System"},
//最后一个命令,检索命令时判断结束标识
{"lastcmd", NULL, 0, 0, "Table Terminal Flag; MUST BE THE LAST ONE"}
};
static void demo_console_show_info(char *buf)
{
char *p = NULL;
char *p1 = NULL;
p = buf;
p1 = strchr(p, '\n');
if(NULL == p1)
{
printf("%s\n", p);
return;
}
while(p1 != NULL)
{
*p1 = '\0';
printf("%s\n", p);
printf("%-30s", " ");
p = p1 + 1;
p1 = strchr(p, '\n');
}
printf("%s\n", p);
}
static int demo_console_show_help(void *p, ...)
{
int i;
printf("\n%-10s", "Sequence");
printf("%-20s", "Command");
printf("%s", "Description");
printf("\n------------------------------------------------------------------------------------\n");
for(i = 0; ; i ++)
{
printf("%-10d", i + 1);
printf("%-20s", console_tbl[i].cmd);
//printf("%s\n",console_tbl[i].info);
demo_console_show_info(console_tbl[i].info);
if(0 == strcmp(console_tbl[i].cmd, "demohelp"))
break;
}
printf("------------------------------------------------------------------------------------\n");
return WM_SUCCESS;
}
int demo_sys_reset(void *p, ...)
{
tls_sys_set_reboot_reason(REBOOT_REASON_ACTIVE);
tls_sys_reset();
return WM_SUCCESS;
}
#endif /*__WM_DEMO_CMD_H__*/