#pragma once #include "main.h" #include #include typedef enum { AT_SUCCESS = 0, /* 指令正常 */ AT_ERR, /* 指令异常 */ AT_ERR_UNINVAIL, /* 没有对应指令 */ AT_ERR_FUN_UNUSED /* 没有可执行函数 */ } AT_STATUS; typedef enum { AT_CMD_TEST = 0, /* 测试指令 */ AT_CMD_IP, /* 设置IP */ AT_CMD_GW, /* 设置网关 */ AT_CMD_NETMASK, /* 设置子网掩码 */ AT_CMD_OBTAINING_IP_MODE, /* 设置网络模式 */ AT_CMD_MAC, /* MAC地址 */ AT_END } AT_Cmd; typedef AT_STATUS (*pFunc)(unsigned char *ptr, unsigned char len); typedef struct { AT_Cmd cmd; /* 指令序号 */ unsigned char *str; /* 指令内容 */ pFunc cb; /* 指令执行 */ } AT_cmd_func; unsigned int mstrlen(const char *s); int mstrncmp(const char *s1, const char *s2, int n); AT_STATUS at_cmd_test(unsigned char *p, unsigned char len); AT_STATUS at_cmd_ip(unsigned char *p, unsigned char len); AT_STATUS at_cmd_gw(unsigned char *p, unsigned char len); AT_STATUS at_cmd_netmask(unsigned char *p, unsigned char len); AT_STATUS at_cmd_obtaining_ip_mode(unsigned char *p, unsigned char len); AT_STATUS at_cmd_mac(unsigned char *p, unsigned char len); unsigned char AT_cmd_search(unsigned char *p, unsigned char len); AT_STATUS at_cmd_parse(unsigned char *p, unsigned char len); void at_cmd_processer_push_data(uint8_t rxdata); void at_cmd_processer_try_process_data(void);