Job_SignsPads/STM32/Code/STM32F405/Application/com.c
2025-04-22 10:29:37 +08:00

324 lines
8.9 KiB
C

#include "main.h"
unsigned char const board[] = "Sleeping mattress"; // 版本号
unsigned char const ver[] = "V0.0.2"; // 版本号
unsigned char network[5] = {0XA5, 0X5A, 0X00, 0X01, 0XAA}; // 配网指令
unsigned char SC_Cmd[5] = {0XA5, 0X5A, 0X00, 0X01, 0XCC}; // SC指令
unsigned char Start_Cmd[5] = {0XA5, 0X5A, 0X00, 0X01, 0XDD}; // 启动配网指令
unsigned char myScan[5] = {0XA5, 0X5A, 0X00, 0X01, 0XEE}; // 上电扫描指令
unsigned char myReset[5] = {0XA5, 0X5A, 0X00, 0X01, 0XFF}; // 复位指令
unsigned char const data_str[] = __DATE__; // 程序编译系统日期
unsigned char const time_str[] = __TIME__; // 程序编译系统时间
//int do_help(cmd_tbl_t *cmdtp, int argc, char *argv[]);
//int do_sys(cmd_tbl_t *cmdtp, int argc, char *argv[]);
//int do_cal(cmd_tbl_t *cmdtp, int argc, char *argv[]);
//int do_rename(cmd_tbl_t *cmdtp, int argc, char *argv[]);
///**
// * @brief 系统命令结构体数组,添加命令添加结构体即可
// */
//struct cmd_tbl_s sys_cmd_tab[] =
// {
// {"help", CFG_MAXARGS, do_help,
// "help - Print online help\r\n"},
// {"sys", CFG_MAXARGS, do_sys,
// "sys - sys check\r\n"},
// {"cal", CFG_MAXARGS, do_cal,
// "cal - cal set\r\n"},
//};
//#define __cmd_start (sys_cmd_tab[0])
//#define __cmd_end (sys_cmd_tab[sizeof(sys_cmd_tab) / sizeof(struct cmd_tbl_s)])
//char system_command_print(char *argv[])
//{
// char value = 0;
// if (strncmp(argv[1], "version", 7) == 0)
// {
// value = 1;
// }
// else if (strncmp(argv[1], "upgrade", 7) == 0)
// {
// value = 2;
// }
// else
// {
// value = 99;
// }
// return value;
//}
//int do_help(cmd_tbl_t *cmdtp, int argc, char *argv[])
//{
// switch (argc)
// {
// case 1:
// {
// printf("sys - sys check\r\n");
// printf("cal - cal set\r\n");
// }
// break;
// default:
// goto Parametre_error;
// }
// return 0;
//Parametre_error:
// printf("Parametre error\r\n");
// return 0;
//}
//int do_sys(cmd_tbl_t *cmdtp, int argc, char *argv[])
//{
// char val_flg = 0;
// switch (argc)
// {
// case 1:
// {
// printf("sys version\r\n");
// printf("sys upgrade\r\n");
// printf("version is v.%d,%d,%d\r\n", version[5], version[6], version[7]);
// }
// break;
// case 2:
// {
// val_flg = system_command_print(argv);
// switch (val_flg)
// {
// case 1:
// printf("%s,%s,%s,%s\r\n", board, ver, data_str, time_str);
// printf("version is v.%d,%d,%d\r\n", version[5], version[6], version[7]);
// break;
// case 2:
// printf("go upgrade");
// upgradeVersion();
// break;
// case 99:
// goto Parametre_error;
// }
// }
// break;
// default:
// goto Parametre_error;
// }
// return 0;
//Parametre_error:
// printf("Parametre error\r\n");
// return 0;
//}
//int do_cal(cmd_tbl_t *cmdtp, int argc, char *argv[])
//{
// switch (argc)
// {
// case 1:
// {
// }
// break;
// default:
// goto Parametre_error;
// }
// return 0;
//Parametre_error:
// printf("Parametre error\r\n");
// return 0;
//}
///**
// * @brief 在 sys_cmd_tab[] 结构体数组中查找 name
// * @param cmd: 传入的str
// * @retval 找到的结构体数组
// * NULL,无匹配
// */
//cmd_tbl_t *find_cmd(const char *cmd)
//{
// cmd_tbl_t *cmdtp;
// cmd_tbl_t *cmdtp_temp = &__cmd_start; /*Init value */
// const char *p;
// int len;
// int n_found = 0;
// /*
// * Some commands allow length modifiers (like "cp.b");
// * compare command name only until first dot.
// */
// len = ((p = strchr(cmd, '.')) == NULL) ? strlen(cmd) : (p - cmd);
// for (cmdtp = &__cmd_start; cmdtp != &__cmd_end; cmdtp++)
// {
// if (strncmp(cmd, cmdtp->name, len) == 0)
// {
// if (len == strlen(cmdtp->name))
// return cmdtp; /* full match */
// cmdtp_temp = cmdtp; /* abbreviated command ? */
// n_found++;
// }
// }
// if (n_found == 1)
// { /* exactly one match */
// return cmdtp_temp;
// }
// return NULL; /* not found or ambiguous command */
//}
///**
// * @brief 命令分割提取
// * @param line: 传入的str
// * argv[]:分割后的字符串
// * @retval 0,成功处理
// * 其他,错误代码
// */
//int parse_line(char *line, char *argv[])
//{
// int nargs = 0;
//#ifdef DEBUG_PARSER
// printf("parse_line: \"%s\"\r\n", line);
//#endif
// while (nargs < CFG_MAXARGS)
// {
// /* skip any white space */
// while ((*line == ' ') || (*line == '\t'))
// {
// ++line;
// }
// if (*line == '\0')
// { /* end of line, no more args */
// argv[nargs] = NULL;
//#ifdef DEBUG_PARSER
// printf("parse_line: nargs=%d\r\n", nargs);
//#endif
// return (nargs);
// }
// argv[nargs++] = line; /* begin of argument string */
// /* find end of string */
// while (*line && (*line != ' ') && (*line != '\t'))
// {
// ++line;
// }
// if (*line == '\0')
// { /* end of line, no more args */
// argv[nargs] = NULL;
//#ifdef DEBUG_PARSER
// printf("parse_line: nargs=%d\r\n", nargs);
//#endif
// return (nargs);
// }
// *line++ = '\0'; /* terminate current arg */
// }
// printf("** Too many args (max. %d) **\r\n", CFG_MAXARGS);
//#ifdef DEBUG_PARSER
// printf("parse_line: nargs=%d\r\n", nargs);
//#endif
// return (nargs);
//}
///**
// * @brief 命令解释函数
// * @param cmd: 传入的字符串
// * @retval 0,成功处理
// * 其他,错误代码
// */
//int run_sys_command(const char *cmd)
//{
// cmd_tbl_t *cmdtp;
// char cmdbuf[CFG_CBSIZE]; /* working copy of cmd */
// char *token; /* start of token in cmdbuf */
// char *sep; /* end of token (separator) in cmdbuf */
// char *str = cmdbuf;
// char *argv[CFG_MAXARGS + 1]; /* NULL terminated */
// int argc, inquotes;
// int repeatable = 1;
// int rc = 0;
// if (!cmd || !*cmd)
// {
// return -1; /* empty command */
// }
// if (strlen(cmd) >= CFG_CBSIZE)
// {
// printf("## Command too long!\r\n");
// return -1;
// }
// strcpy(cmdbuf, cmd);
// /* Process separators and check for invalid
// * repeatable commands
// */
//#ifdef DEBUG_PARSER
// printf("[PROCESS_SEPARATORS] %s\r\n", cmd);
//#endif
// while (*str)
// {
// /*
// * Find separator, or string end
// * Allow simple escape of ';' by writing "\;"
// */
// for (inquotes = 0, sep = str; *sep; sep++)
// {
// if ((*sep == '\'') &&
// (*(sep - 1) != '\\'))
// inquotes = !inquotes;
// if (!inquotes &&
// (*sep == ';') && /* separator */
// (sep != str) && /* past string start */
// (*(sep - 1) != '\\')) /* and NOT escaped */
// break;
// }
// /*
// * Limit the token to data between separators
// */
// token = str;
// if (*sep)
// {
// str = sep + 1; /* start of command for next pass */
// *sep = '\0';
// }
// else
// str = sep; /* no more commands for next pass */
//#ifdef DEBUG_PARSER
// printf("token: \"%s\"\r\n", token);
//#endif
// /* Extract arguments */
// if ((argc = parse_line(token, argv)) == 0)
// {
// rc = -1; /* no command at all */
// continue;
// }
// /* Look up command in command table */
// if ((cmdtp = find_cmd(argv[0])) == NULL)
// {
// printf("Unknown command '%s' - try 'help'\r\n", argv[0]);
// rc = -1; /* give up after bad command */
// continue;
// }
// /* found - check max args */
// if (argc > cmdtp->maxargs)
// {
// printf("Usage:\r\n%s\r\n", cmdtp->usage);
// rc = -1;
// continue;
// }
// /* OK - call function to do the command */
// if ((cmdtp->cmd)(cmdtp, argc, argv) != 0)
// {
// rc = -1;
// }
// }
// return rc ? rc : repeatable;
//}
///**
// * @brief 处理系统命令
// * @param void
// * @retval void
// */
//void sys_cmd_exe(void)
//{
// int len = 0;
// if (USART2_RX_STA & 0x8000) // 串口接收完成
// {
// len = USART2_RX_STA & 0x3fff; // 得到此次接收到的数据长度
// USART2_RX_BUF[len] = '\0'; // 在末尾加入结束符.
// run_sys_command((const char *)USART2_RX_BUF);
// USART2_RX_STA = 0; // 状态寄存器清空
// }
//}