|
|
@@ -61,6 +61,7 @@ enum Result esp32_query_mac_address(char * MAC_address); //34.
|
|
|
enum Result esp32_set_ip_address(char *IP_address); //35.设置WiFi模块的IP地址
|
|
|
enum Result esp32_set_dhcp(uint8_t operate,uint8_t mode); //36.设置启用DHCP模式
|
|
|
enum Result esp32_set_gateway(char *IP_address, char *Gateway, char *Netmask); //37.设置WiFi模块的IP地址、网关、掩码
|
|
|
+enum Result esp32_rst(void); //38.重启WiFi模块
|
|
|
|
|
|
|
|
|
/*************************************************** AT指令相关函数 ***************************************************/
|
|
|
@@ -1424,6 +1425,51 @@ enum Result esp32_set_gateway(char *IP_address, char *Gateway, char *Netmask)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+/******************************************************************************
|
|
|
+* 38.重启WiFi模块
|
|
|
+*
|
|
|
+*******************************************************************************/
|
|
|
+enum Result esp32_rst(void)
|
|
|
+{
|
|
|
+ enum Result result = Result_None;
|
|
|
+ int activeID = 38, time=5000; // 活动ID, 超时时间
|
|
|
+ // 校验ID
|
|
|
+ if(!verifyActiveID(activeID)){ return Result_Failed; }
|
|
|
+ // 判断状态
|
|
|
+ if(getStatus() == Status_None) // 空闲状态
|
|
|
+ {
|
|
|
+ sprintf(AT_CMD, "AT+RST\r\n"); // 拼接AT指令
|
|
|
+ result = send_at(AT_CMD, activeID);
|
|
|
+ }
|
|
|
+ else if(getStatus() != Status_Sending) // 上一次的结果没有清除,返回错误,为了保证时效性,需要重置状态。重新调用
|
|
|
+ {
|
|
|
+ Log_Printf_Debug("返回结果过期,请重置状态\r\n");// 打印日志
|
|
|
+ result = failed(1); // 失败
|
|
|
+ }
|
|
|
+ else if(getTimerMs() > time) // 正在发送状态。判断超时
|
|
|
+ {
|
|
|
+ Log_Printf_Debug("AT指令返回超时\r\n"); // 打印日志
|
|
|
+ result = overtime(); // 超时
|
|
|
+ }
|
|
|
+ else if(strstr((char * )AT_result(), "OK") != NULL) // 查询是否返回
|
|
|
+ {
|
|
|
+ if(strstr((char * )AT_result(), "ready") != NULL)
|
|
|
+ {
|
|
|
+ // 发送日志
|
|
|
+ Log_Printf_Debug("AT返回: %d\r\n", AT_result_length());
|
|
|
+ Log_SendArray_Debug(AT_result(), AT_result_length());
|
|
|
+ result = success(); // 成功
|
|
|
+ }
|
|
|
+ else if(strstr((char * )AT_result(), "ERROR\r\n") != NULL) // 查询是否返回
|
|
|
+ {
|
|
|
+ Log_Printf_Debug("返回: %d\r\n", AT_result_length());
|
|
|
+ Log_SendArray_Debug(AT_result(), AT_result_length());
|
|
|
+ result = failed(2); // 失败
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
/***************************************** 基于ESP32_C3模组的相关结构体声明 *****************************************/
|
|
|
|
|
|
struct ESP32_Struct esp32=
|
|
|
@@ -1469,6 +1515,7 @@ struct ESP32_Struct esp32=
|
|
|
.set_ip_address = esp32_set_ip_address,
|
|
|
.set_dhcp = esp32_set_dhcp,
|
|
|
.set_gateway = esp32_set_gateway,
|
|
|
+ .rst = esp32_rst,
|
|
|
|
|
|
};
|
|
|
|