mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-12 13:08:13 +08:00
用AaaBbbCcc()格式重命名函数名
This commit is contained in:
@@ -243,7 +243,7 @@ static int HttpSetMqttConfig(httpd_request_t *req)
|
|||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
sscanf(buf, "%s %d", MQTT_SERVER, &MQTT_SERVER_PORT);
|
sscanf(buf, "%s %d", MQTT_SERVER, &MQTT_SERVER_PORT);
|
||||||
//user_mqtt_init();
|
//UserMqttInit();
|
||||||
|
|
||||||
send_http("OK", 2, exit, &err);
|
send_http("OK", 2, exit, &err);
|
||||||
|
|
||||||
@@ -336,7 +336,7 @@ static int OtaStart(httpd_request_t *req)
|
|||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
app_httpd_log("OtaStart ota_url[%s]", buf);
|
app_httpd_log("OtaStart ota_url[%s]", buf);
|
||||||
user_ota_start(buf, NULL);
|
UserOtaStart(buf, NULL);
|
||||||
|
|
||||||
send_http("OK", 2, exit, &err);
|
send_http("OK", 2, exit, &err);
|
||||||
exit:
|
exit:
|
||||||
|
|||||||
10
TC1/main.c
10
TC1/main.c
@@ -131,11 +131,11 @@ int application_start(void)
|
|||||||
sys_config->micoSystemConfig.user_key);
|
sys_config->micoSystemConfig.user_key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
user_udp_init();
|
UserUdpInit();
|
||||||
KeyInit();
|
KeyInit();
|
||||||
err = user_mqtt_init();
|
err = UserMqttInit();
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
err = user_rtc_init();
|
err = UserRtcInit();
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
PowerInit();
|
PowerInit();
|
||||||
|
|
||||||
@@ -153,8 +153,8 @@ int application_start(void)
|
|||||||
//SetPowerRecord(&power_record, power2);
|
//SetPowerRecord(&power_record, power2);
|
||||||
sprintf(power_buf, "{\"mac\":\"%s\",\"power\":\"%u.%u\",\"total_time\":%u}",
|
sprintf(power_buf, "{\"mac\":\"%s\",\"power\":\"%u.%u\",\"total_time\":%u}",
|
||||||
strMac, (unsigned int)(power2 / 10), (unsigned int)(power2 % 10), (unsigned int)total_time);
|
strMac, (unsigned int)(power2 / 10), (unsigned int)(power2 % 10), (unsigned int)total_time);
|
||||||
user_send(0, power_buf);
|
UserSend(0, power_buf);
|
||||||
user_mqtt_hass_power();
|
UserMqttHassPower();
|
||||||
|
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
if (task_top && now >= task_top->prs_time)
|
if (task_top && now >= task_top->prs_time)
|
||||||
|
|||||||
@@ -11,23 +11,22 @@
|
|||||||
#include "user_udp.h"
|
#include "user_udp.h"
|
||||||
|
|
||||||
uint32_t last_time = 0;
|
uint32_t last_time = 0;
|
||||||
|
bool JsonSocketAnalysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend);
|
||||||
|
|
||||||
void user_function_set_last_time()
|
void UserFunctionSetLastTime()
|
||||||
{
|
{
|
||||||
last_time = UpTicks();
|
last_time = UpTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool json_socket_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend);
|
void UserSend(int udp_flag, char *s)
|
||||||
|
|
||||||
void user_send(int udp_flag, char *s)
|
|
||||||
{
|
{
|
||||||
if (udp_flag || !user_mqtt_isconnect())
|
if (udp_flag || !UserMqttIsConnect())
|
||||||
user_udp_send(s); //发送数据
|
UserUdpSend(s); //发送数据
|
||||||
else
|
else
|
||||||
user_mqtt_send(s);
|
UserMqttSend(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_function_cmd_received(int udp_flag, char* pusrdata)
|
void UserFunctionCmdReceived(int udp_flag, char* pusrdata)
|
||||||
{
|
{
|
||||||
|
|
||||||
unsigned char i;
|
unsigned char i;
|
||||||
@@ -56,7 +55,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
|
|||||||
cJSON_AddStringToObject(pRoot, "ip", para.ip);
|
cJSON_AddStringToObject(pRoot, "ip", para.ip);
|
||||||
|
|
||||||
char *s = cJSON_Print(pRoot);
|
char *s = cJSON_Print(pRoot);
|
||||||
user_send(udp_flag, s); //发送数据
|
UserSend(udp_flag, s); //发送数据
|
||||||
free((void *) s);
|
free((void *) s);
|
||||||
cJSON_Delete(pRoot);
|
cJSON_Delete(pRoot);
|
||||||
}
|
}
|
||||||
@@ -115,7 +114,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
|
|||||||
if (p_ota)
|
if (p_ota)
|
||||||
{
|
{
|
||||||
if (cJSON_IsString(p_ota))
|
if (cJSON_IsString(p_ota))
|
||||||
user_ota_start(p_ota->valuestring, NULL);
|
UserOtaStart(p_ota->valuestring, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
cJSON *json_setting_send = cJSON_CreateObject();
|
cJSON *json_setting_send = cJSON_CreateObject();
|
||||||
@@ -180,7 +179,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
|
|||||||
//解析socket-----------------------------------------------------------------
|
//解析socket-----------------------------------------------------------------
|
||||||
for (i = 0; i < SOCKET_NUM; i++)
|
for (i = 0; i < SOCKET_NUM; i++)
|
||||||
{
|
{
|
||||||
if (json_socket_analysis(udp_flag, i, pJsonRoot, json_send))
|
if (JsonSocketAnalysis(udp_flag, i, pJsonRoot, json_send))
|
||||||
update_user_config_flag = true;
|
update_user_config_flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +188,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
|
|||||||
if (return_flag == true)
|
if (return_flag == true)
|
||||||
{
|
{
|
||||||
char *json_str = cJSON_Print(json_send);
|
char *json_str = cJSON_Print(json_send);
|
||||||
user_send(udp_flag, json_str); //发送数据
|
UserSend(udp_flag, json_str); //发送数据
|
||||||
free((void *) json_str);
|
free((void *) json_str);
|
||||||
}
|
}
|
||||||
cJSON_Delete(json_send);
|
cJSON_Delete(json_send);
|
||||||
@@ -210,7 +209,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
|
|||||||
*udp_flag:发送udp/mqtt标志位,此处修改插座开关状态时,需要实时更新给domoticz
|
*udp_flag:发送udp/mqtt标志位,此处修改插座开关状态时,需要实时更新给domoticz
|
||||||
*x:插座编号
|
*x:插座编号
|
||||||
*/
|
*/
|
||||||
bool json_socket_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend)
|
bool JsonSocketAnalysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend)
|
||||||
{
|
{
|
||||||
if (!pJsonRoot) return false;
|
if (!pJsonRoot) return false;
|
||||||
if (!pJsonSend) return false;
|
if (!pJsonSend) return false;
|
||||||
@@ -234,7 +233,7 @@ bool json_socket_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSO
|
|||||||
UserRelaySet(x, p_socket_on->valueint);
|
UserRelaySet(x, p_socket_on->valueint);
|
||||||
return_flag = true;
|
return_flag = true;
|
||||||
}
|
}
|
||||||
user_mqtt_send_socket_state(x);
|
UserMqttSendSocketState(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
//解析socket中setting项目----------------------------------------------
|
//解析socket中setting项目----------------------------------------------
|
||||||
@@ -250,7 +249,7 @@ bool json_socket_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSO
|
|||||||
{
|
{
|
||||||
return_flag = true;
|
return_flag = true;
|
||||||
sprintf(user_config->socket_configs[x].name, p_socket_setting_name->valuestring);
|
sprintf(user_config->socket_configs[x].name, p_socket_setting_name->valuestring);
|
||||||
user_mqtt_hass_auto_name(x);
|
UserMqttHassAutoName(x);
|
||||||
}
|
}
|
||||||
cJSON_AddStringToObject(json_socket_setting_send, "name", user_config->socket_configs[x].name);
|
cJSON_AddStringToObject(json_socket_setting_send, "name", user_config->socket_configs[x].name);
|
||||||
}
|
}
|
||||||
@@ -264,7 +263,7 @@ bool json_socket_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSO
|
|||||||
return return_flag;
|
return return_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char strtohex(char a, char b)
|
unsigned char StrToHex(char a, char b)
|
||||||
{
|
{
|
||||||
if (a >= 0x30 && a <= 0x39)
|
if (a >= 0x30 && a <= 0x39)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
#include "mico.h"
|
#include "mico.h"
|
||||||
#include "micokit_ext.h"
|
#include "micokit_ext.h"
|
||||||
|
|
||||||
void user_send(int udp_flag, char *s);
|
void UserSend(int udp_flag, char *s);
|
||||||
void user_function_cmd_received(int udp_flag, char* pusrdata);
|
void UserFunctionCmdReceived(int udp_flag, char* pusrdata);
|
||||||
unsigned char strtohex(char a, char b);
|
unsigned char StrToHex(char a, char b);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -66,11 +66,11 @@ typedef struct
|
|||||||
uint32_t datalen;
|
uint32_t datalen;
|
||||||
} mqtt_recv_msg_t, *p_mqtt_recv_msg_t, mqtt_send_msg_t, *p_mqtt_send_msg_t;
|
} mqtt_recv_msg_t, *p_mqtt_recv_msg_t, mqtt_send_msg_t, *p_mqtt_send_msg_t;
|
||||||
|
|
||||||
static void mqtt_client_thread(mico_thread_arg_t arg);
|
static void MqttClientThread(mico_thread_arg_t arg);
|
||||||
static void messageArrived(MessageData* md);
|
static void MessageArrived(MessageData* md);
|
||||||
static OSStatus mqtt_msg_publish(Client *c, const char* topic, char qos, char retained, const unsigned char* msg, uint32_t msg_len);
|
static OSStatus MqttMsgPublish(Client *c, const char* topic, char qos, char retained, const unsigned char* msg, uint32_t msg_len);
|
||||||
|
|
||||||
OSStatus user_recv_handler(void *arg);
|
OSStatus UserRecvHandler(void *arg);
|
||||||
|
|
||||||
bool isconnect = false;
|
bool isconnect = false;
|
||||||
mico_queue_t mqtt_msg_send_queue = NULL;
|
mico_queue_t mqtt_msg_send_queue = NULL;
|
||||||
@@ -86,7 +86,7 @@ char topic_set[MAX_MQTT_TOPIC_SIZE];
|
|||||||
|
|
||||||
mico_timer_t timer_handle;
|
mico_timer_t timer_handle;
|
||||||
static char timer_status = 0;
|
static char timer_status = 0;
|
||||||
void user_mqtt_timer_func(void *arg)
|
void UserMqttTimerFunc(void *arg)
|
||||||
{
|
{
|
||||||
char* buf1 = malloc(1024); //idx为1位时长度为24
|
char* buf1 = malloc(1024); //idx为1位时长度为24
|
||||||
|
|
||||||
@@ -103,51 +103,51 @@ void user_mqtt_timer_func(void *arg)
|
|||||||
switch (timer_status)
|
switch (timer_status)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
user_mqtt_hass_auto_power();
|
UserMqttHassAutoPower();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
user_mqtt_hass_auto(0);
|
UserMqttHassAuto(0);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
user_mqtt_hass_auto(1);
|
UserMqttHassAuto(1);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
user_mqtt_hass_auto(2);
|
UserMqttHassAuto(2);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
user_mqtt_hass_auto(3);
|
UserMqttHassAuto(3);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
user_mqtt_hass_auto(4);
|
UserMqttHassAuto(4);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
user_mqtt_hass_auto(5);
|
UserMqttHassAuto(5);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
user_mqtt_hass_auto_name(0);
|
UserMqttHassAutoName(0);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
user_mqtt_hass_auto_name(1);
|
UserMqttHassAutoName(1);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
user_mqtt_hass_auto_name(2);
|
UserMqttHassAutoName(2);
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
user_mqtt_hass_auto_name(3);
|
UserMqttHassAutoName(3);
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
user_mqtt_hass_auto_name(4);
|
UserMqttHassAutoName(4);
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
user_mqtt_hass_auto_name(5);
|
UserMqttHassAutoName(5);
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
user_mqtt_hass_auto_power_name();
|
UserMqttHassAutoPowerName();
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
if (buf1 == NULL) break;
|
if (buf1 == NULL) break;
|
||||||
sprintf(buf1, "{\"mac\":\"%s\",\"version\":null,\"socket_0\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_1\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_2\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_3\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_4\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_5\":{\"on\":null,\"setting\":{\"name\":null}}}", strMac);
|
sprintf(buf1, "{\"mac\":\"%s\",\"version\":null,\"socket_0\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_1\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_2\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_3\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_4\":{\"on\":null,\"setting\":{\"name\":null}},\"socket_5\":{\"on\":null,\"setting\":{\"name\":null}}}", strMac);
|
||||||
user_function_cmd_received(0, buf1);
|
UserFunctionCmdReceived(0, buf1);
|
||||||
free(buf1);
|
free(buf1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -159,7 +159,7 @@ void user_mqtt_timer_func(void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Application entrance */
|
/* Application entrance */
|
||||||
OSStatus user_mqtt_init(void)
|
OSStatus UserMqttInit(void)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ OSStatus user_mqtt_init(void)
|
|||||||
|
|
||||||
/* start mqtt client */
|
/* start mqtt client */
|
||||||
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "mqtt_client",
|
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "mqtt_client",
|
||||||
(mico_thread_function_t) mqtt_client_thread,
|
(mico_thread_function_t) MqttClientThread,
|
||||||
mqtt_thread_stack_size, 0);
|
mqtt_thread_stack_size, 0);
|
||||||
require_noerr_string(err, exit, "ERROR: Unable to start the mqtt client thread.");
|
require_noerr_string(err, exit, "ERROR: Unable to start the mqtt client thread.");
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ OSStatus user_mqtt_init(void)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OSStatus mqtt_client_release(Client *c, Network *n)
|
static OSStatus UserMqttClientRelease(Client *c, Network *n)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
@@ -213,7 +213,7 @@ static OSStatus mqtt_client_release(Client *c, Network *n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// publish msg to mqtt server
|
// publish msg to mqtt server
|
||||||
static OSStatus mqtt_msg_publish(Client *c, const char* topic, char qos, char retained,
|
static OSStatus MqttMsgPublish(Client *c, const char* topic, char qos, char retained,
|
||||||
const unsigned char* msg,
|
const unsigned char* msg,
|
||||||
uint32_t msg_len)
|
uint32_t msg_len)
|
||||||
{
|
{
|
||||||
@@ -246,7 +246,7 @@ static OSStatus mqtt_msg_publish(Client *c, const char* topic, char qos, char re
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mqtt_client_thread(mico_thread_arg_t arg)
|
void MqttClientThread(mico_thread_arg_t arg)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
|
|
||||||
@@ -327,13 +327,13 @@ void mqtt_client_thread(mico_thread_arg_t arg)
|
|||||||
mqtt_log("MQTT client connect success!");
|
mqtt_log("MQTT client connect success!");
|
||||||
|
|
||||||
/* 4. mqtt client subscribe */
|
/* 4. mqtt client subscribe */
|
||||||
rc = MQTTSubscribe(&c, topic_set, QOS0, messageArrived);
|
rc = MQTTSubscribe(&c, topic_set, QOS0, MessageArrived);
|
||||||
require_noerr_string(rc, MQTT_reconnect, "ERROR: MQTT client subscribe err.");
|
require_noerr_string(rc, MQTT_reconnect, "ERROR: MQTT client subscribe err.");
|
||||||
mqtt_log("MQTT client subscribe success! recv_topic=[%s].", topic_set);
|
mqtt_log("MQTT client subscribe success! recv_topic=[%s].", topic_set);
|
||||||
/*4.1 连接成功后先更新发送一次数据*/
|
/*4.1 连接成功后先更新发送一次数据*/
|
||||||
isconnect = true;
|
isconnect = true;
|
||||||
|
|
||||||
mico_init_timer(&timer_handle, 150, user_mqtt_timer_func, &arg);
|
mico_init_timer(&timer_handle, 150, UserMqttTimerFunc, &arg);
|
||||||
mico_start_timer(&timer_handle);
|
mico_start_timer(&timer_handle);
|
||||||
/* 5. client loop for recv msg && keepalive */
|
/* 5. client loop for recv msg && keepalive */
|
||||||
while (1)
|
while (1)
|
||||||
@@ -363,7 +363,7 @@ void mqtt_client_thread(mico_thread_arg_t arg)
|
|||||||
require_string(p_send_msg, exit, "Wrong data point");
|
require_string(p_send_msg, exit, "Wrong data point");
|
||||||
|
|
||||||
// send message to server
|
// send message to server
|
||||||
err = mqtt_msg_publish(&c, p_send_msg->topic, p_send_msg->qos, p_send_msg->retained,
|
err = MqttMsgPublish(&c, p_send_msg->topic, p_send_msg->qos, p_send_msg->retained,
|
||||||
(const unsigned char*)p_send_msg->data,
|
(const unsigned char*)p_send_msg->data,
|
||||||
p_send_msg->datalen);
|
p_send_msg->datalen);
|
||||||
|
|
||||||
@@ -390,7 +390,7 @@ void mqtt_client_thread(mico_thread_arg_t arg)
|
|||||||
|
|
||||||
timer_status=100;
|
timer_status=100;
|
||||||
|
|
||||||
mqtt_client_release(&c, &n);
|
UserMqttClientRelease(&c, &n);
|
||||||
isconnect = false;
|
isconnect = false;
|
||||||
UserLedSet(-1);
|
UserLedSet(-1);
|
||||||
mico_rtos_thread_msleep(100);
|
mico_rtos_thread_msleep(100);
|
||||||
@@ -401,12 +401,12 @@ void mqtt_client_thread(mico_thread_arg_t arg)
|
|||||||
exit:
|
exit:
|
||||||
isconnect = false;
|
isconnect = false;
|
||||||
mqtt_log("EXIT: MQTT client exit with err = %d.", err);
|
mqtt_log("EXIT: MQTT client exit with err = %d.", err);
|
||||||
mqtt_client_release(&c, &n);
|
UserMqttClientRelease(&c, &n);
|
||||||
mico_rtos_delete_thread(NULL);
|
mico_rtos_delete_thread(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// callback, msg received from mqtt server
|
// callback, msg received from mqtt server
|
||||||
static void messageArrived(MessageData* md)
|
static void MessageArrived(MessageData* md)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
p_mqtt_recv_msg_t p_recv_msg = NULL;
|
p_mqtt_recv_msg_t p_recv_msg = NULL;
|
||||||
@@ -421,7 +421,7 @@ static void messageArrived(MessageData* md)
|
|||||||
strncpy(p_recv_msg->topic, md->topicName->lenstring.data, md->topicName->lenstring.len);
|
strncpy(p_recv_msg->topic, md->topicName->lenstring.data, md->topicName->lenstring.len);
|
||||||
memcpy(p_recv_msg->data, message->payload, message->payloadlen);
|
memcpy(p_recv_msg->data, message->payload, message->payloadlen);
|
||||||
|
|
||||||
err = mico_rtos_send_asynchronous_event(&mqtt_client_worker_thread, user_recv_handler, p_recv_msg);
|
err = mico_rtos_send_asynchronous_event(&mqtt_client_worker_thread, UserRecvHandler, p_recv_msg);
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
@@ -434,21 +434,21 @@ static void messageArrived(MessageData* md)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Application process MQTT received data */
|
/* Application process MQTT received data */
|
||||||
OSStatus user_recv_handler(void *arg)
|
OSStatus UserRecvHandler(void *arg)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
p_mqtt_recv_msg_t p_recv_msg = arg;
|
p_mqtt_recv_msg_t p_recv_msg = arg;
|
||||||
require(p_recv_msg, exit);
|
require(p_recv_msg, exit);
|
||||||
|
|
||||||
app_log("user get data success! from_topic=[%s], msg=[%ld].\r\n", p_recv_msg->topic, p_recv_msg->datalen);
|
app_log("user get data success! from_topic=[%s], msg=[%ld].\r\n", p_recv_msg->topic, p_recv_msg->datalen);
|
||||||
user_function_cmd_received(0, p_recv_msg->data);
|
UserFunctionCmdReceived(0, p_recv_msg->data);
|
||||||
free(p_recv_msg);
|
free(p_recv_msg);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus user_mqtt_send_topic(char *topic, char *arg, char retained)
|
OSStatus UserMqttSendTopic(char *topic, char *arg, char retained)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
p_mqtt_send_msg_t p_send_msg = NULL;
|
p_mqtt_send_msg_t p_send_msg = NULL;
|
||||||
@@ -484,13 +484,13 @@ OSStatus user_mqtt_send_topic(char *topic, char *arg, char retained)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Application collect data and seng them to MQTT send queue */
|
/* Application collect data and seng them to MQTT send queue */
|
||||||
OSStatus user_mqtt_send(char *arg)
|
OSStatus UserMqttSend(char *arg)
|
||||||
{
|
{
|
||||||
return user_mqtt_send_topic(topic_state, arg, 0);
|
return UserMqttSendTopic(topic_state, arg, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//更新ha开关状态
|
//更新ha开关状态
|
||||||
OSStatus user_mqtt_send_socket_state(char socket_id)
|
OSStatus UserMqttSendSocketState(char socket_id)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -501,7 +501,7 @@ OSStatus user_mqtt_send_socket_state(char socket_id)
|
|||||||
{
|
{
|
||||||
sprintf(topic_buf, "homeassistant/switch/%s/socket_%d/state", strMac, (int)socket_id);
|
sprintf(topic_buf, "homeassistant/switch/%s/socket_%d/state", strMac, (int)socket_id);
|
||||||
sprintf(send_buf, "{\"mac\":\"%s\",\"socket_%d\":{\"on\":%d}}", strMac, socket_id, (int)user_config->socket_configs[(int)socket_id].on);
|
sprintf(send_buf, "{\"mac\":\"%s\",\"socket_%d\":{\"on\":%d}}", strMac, socket_id, (int)user_config->socket_configs[(int)socket_id].on);
|
||||||
oss_status = user_mqtt_send_topic(topic_buf, send_buf, 1);
|
oss_status = UserMqttSendTopic(topic_buf, send_buf, 1);
|
||||||
}
|
}
|
||||||
if (send_buf) free(send_buf);
|
if (send_buf) free(send_buf);
|
||||||
if (topic_buf) free(topic_buf);
|
if (topic_buf) free(topic_buf);
|
||||||
@@ -510,7 +510,7 @@ OSStatus user_mqtt_send_socket_state(char socket_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//hass mqtt自动发现数据开关发送
|
//hass mqtt自动发现数据开关发送
|
||||||
void user_mqtt_hass_auto(char socket_id)
|
void UserMqttHassAuto(char socket_id)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -527,13 +527,13 @@ void user_mqtt_hass_auto(char socket_id)
|
|||||||
"\"pl_off\":\"{\\\"mac\\\":\\\"%s\\\",\\\"socket_%d\\\":{\\\"on\\\":0}}\""
|
"\"pl_off\":\"{\\\"mac\\\":\\\"%s\\\",\\\"socket_%d\\\":{\\\"on\\\":0}}\""
|
||||||
"}",
|
"}",
|
||||||
socket_id, strMac + 8, strMac, socket_id, strMac, socket_id, strMac, socket_id);
|
socket_id, strMac + 8, strMac, socket_id, strMac, socket_id, strMac, socket_id);
|
||||||
user_mqtt_send_topic(topic_buf, send_buf, 1);
|
UserMqttSendTopic(topic_buf, send_buf, 1);
|
||||||
}
|
}
|
||||||
if (send_buf) free(send_buf);
|
if (send_buf) free(send_buf);
|
||||||
if (topic_buf) free(topic_buf);
|
if (topic_buf) free(topic_buf);
|
||||||
|
|
||||||
}
|
}
|
||||||
void user_mqtt_hass_auto_name(char socket_id)
|
void UserMqttHassAutoName(char socket_id)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -550,7 +550,7 @@ void user_mqtt_hass_auto_name(char socket_id)
|
|||||||
"\"pl_off\":\"{\\\"mac\\\":\\\"%s\\\",\\\"socket_%d\\\":{\\\"on\\\":0}}\""
|
"\"pl_off\":\"{\\\"mac\\\":\\\"%s\\\",\\\"socket_%d\\\":{\\\"on\\\":0}}\""
|
||||||
"}",
|
"}",
|
||||||
user_config->socket_configs[(int)socket_id].name, strMac, socket_id, strMac, socket_id, strMac, socket_id);
|
user_config->socket_configs[(int)socket_id].name, strMac, socket_id, strMac, socket_id, strMac, socket_id);
|
||||||
user_mqtt_send_topic(topic_buf, send_buf, 0);
|
UserMqttSendTopic(topic_buf, send_buf, 0);
|
||||||
}
|
}
|
||||||
if (send_buf)
|
if (send_buf)
|
||||||
free(send_buf);
|
free(send_buf);
|
||||||
@@ -558,7 +558,7 @@ void user_mqtt_hass_auto_name(char socket_id)
|
|||||||
free(topic_buf);
|
free(topic_buf);
|
||||||
}
|
}
|
||||||
//hass mqtt自动发现数据功率发送
|
//hass mqtt自动发现数据功率发送
|
||||||
void user_mqtt_hass_auto_power(void)
|
void UserMqttHassAutoPower(void)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -576,12 +576,12 @@ void user_mqtt_hass_auto_power(void)
|
|||||||
"}",
|
"}",
|
||||||
strMac + 8, strMac);
|
strMac + 8, strMac);
|
||||||
|
|
||||||
user_mqtt_send_topic(topic_buf, send_buf, 1);
|
UserMqttSendTopic(topic_buf, send_buf, 1);
|
||||||
}
|
}
|
||||||
if (send_buf) free(send_buf);
|
if (send_buf) free(send_buf);
|
||||||
if (topic_buf) free(topic_buf);
|
if (topic_buf) free(topic_buf);
|
||||||
}
|
}
|
||||||
void user_mqtt_hass_auto_power_name(void)
|
void UserMqttHassAutoPowerName(void)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -604,7 +604,7 @@ void user_mqtt_hass_auto_power_name(void)
|
|||||||
send_buf[16] = 0xe7;
|
send_buf[16] = 0xe7;
|
||||||
send_buf[17] = 0x8e;
|
send_buf[17] = 0x8e;
|
||||||
send_buf[18] = 0x87;
|
send_buf[18] = 0x87;
|
||||||
user_mqtt_send_topic(topic_buf, send_buf, 0);
|
UserMqttSendTopic(topic_buf, send_buf, 0);
|
||||||
}
|
}
|
||||||
if (send_buf)
|
if (send_buf)
|
||||||
free(send_buf);
|
free(send_buf);
|
||||||
@@ -612,7 +612,7 @@ void user_mqtt_hass_auto_power_name(void)
|
|||||||
free(topic_buf);
|
free(topic_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_mqtt_hass_power(void)
|
void UserMqttHassPower(void)
|
||||||
{
|
{
|
||||||
char *send_buf = NULL;
|
char *send_buf = NULL;
|
||||||
char *topic_buf = NULL;
|
char *topic_buf = NULL;
|
||||||
@@ -622,13 +622,13 @@ void user_mqtt_hass_power(void)
|
|||||||
{
|
{
|
||||||
sprintf(topic_buf, "homeassistant/sensor/%s/power/state", strMac);
|
sprintf(topic_buf, "homeassistant/sensor/%s/power/state", strMac);
|
||||||
sprintf(send_buf, "{\"power\":\"%d.%d\"}", (int)(power/10), (int)(power%10));
|
sprintf(send_buf, "{\"power\":\"%d.%d\"}", (int)(power/10), (int)(power%10));
|
||||||
user_mqtt_send_topic(topic_buf, send_buf, 0);
|
UserMqttSendTopic(topic_buf, send_buf, 0);
|
||||||
}
|
}
|
||||||
if (send_buf) free(send_buf);
|
if (send_buf) free(send_buf);
|
||||||
if (topic_buf) free(topic_buf);
|
if (topic_buf) free(topic_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool user_mqtt_isconnect()
|
bool UserMqttIsConnect()
|
||||||
{
|
{
|
||||||
return isconnect;
|
return isconnect;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,13 +18,13 @@
|
|||||||
#define MQTT_SERVER user_config->mqtt_ip
|
#define MQTT_SERVER user_config->mqtt_ip
|
||||||
#define MQTT_SERVER_PORT user_config->mqtt_port
|
#define MQTT_SERVER_PORT user_config->mqtt_port
|
||||||
|
|
||||||
extern OSStatus user_mqtt_init(void);
|
extern OSStatus UserMqttInit(void);
|
||||||
extern OSStatus user_mqtt_send(char *arg);
|
extern OSStatus UserMqttSend(char *arg);
|
||||||
extern bool user_mqtt_isconnect(void);
|
extern bool UserMqttIsConnect(void);
|
||||||
extern OSStatus user_mqtt_send_socket_state(char socket_id);
|
extern OSStatus UserMqttSendSocketState(char socket_id);
|
||||||
extern void user_mqtt_hass_auto(char socket_id);
|
extern void UserMqttHassAuto(char socket_id);
|
||||||
extern void user_mqtt_hass_auto_name(char socket_id);
|
extern void UserMqttHassAutoName(char socket_id);
|
||||||
extern void user_mqtt_hass_power(void);
|
extern void UserMqttHassPower(void);
|
||||||
extern void user_mqtt_hass_auto_power(void);
|
extern void UserMqttHassAutoPower(void);
|
||||||
extern void user_mqtt_hass_auto_power_name(void);
|
extern void UserMqttHassAutoPowerName(void);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -49,13 +49,13 @@ static CRC16_Context crc_context;
|
|||||||
static md5_context md5;
|
static md5_context md5;
|
||||||
static uint32_t offset = 0;
|
static uint32_t offset = 0;
|
||||||
|
|
||||||
static OSStatus onReceivedData(struct _HTTPHeader_t * httpHeader,
|
static OSStatus OnReceivedData(struct _HTTPHeader_t * httpHeader,
|
||||||
uint32_t pos,
|
uint32_t pos,
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
size_t len,
|
size_t len,
|
||||||
void * userContext);
|
void * userContext);
|
||||||
|
|
||||||
static void hex2str(char *hex, int hex_len, char *str)
|
static void Hex2Str(char *hex, int hex_len, char *str)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(i=0; i<hex_len; i++){
|
for(i=0; i<hex_len; i++){
|
||||||
@@ -63,7 +63,7 @@ static void hex2str(char *hex, int hex_len, char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void upper2lower(char *str, int len)
|
static void Upper2Ower(char *str, int len)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(i=0; i<len; i++)
|
for(i=0; i<len; i++)
|
||||||
@@ -74,7 +74,7 @@ static void upper2lower(char *str, int len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ota_server_send(char *data, int datalen)
|
static int OtaServerSend(char *data, int datalen)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
||||||
@@ -88,7 +88,7 @@ static int ota_server_send(char *data, int datalen)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OSStatus ota_server_connect(struct sockaddr_in *addr, socklen_t addrlen)
|
static OSStatus OtaServerConnect(struct sockaddr_in *addr, socklen_t addrlen)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
#if OTA_USE_HTTPS
|
#if OTA_USE_HTTPS
|
||||||
@@ -109,7 +109,7 @@ exit:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ota_server_read_header(HTTPHeader_t *httpHeader)
|
static int OtaServerReadHeader(HTTPHeader_t *httpHeader)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
||||||
@@ -124,7 +124,7 @@ static int ota_server_read_header(HTTPHeader_t *httpHeader)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ota_server_read_body(HTTPHeader_t *httpHeader)
|
static int OtaServerReadBody(HTTPHeader_t *httpHeader)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){
|
||||||
@@ -138,7 +138,7 @@ static int ota_server_read_body(HTTPHeader_t *httpHeader)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ota_server_send_header(void)
|
static int OtaServerSendHeader(void)
|
||||||
{
|
{
|
||||||
char *header = NULL;
|
char *header = NULL;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
@@ -174,14 +174,14 @@ static int ota_server_send_header(void)
|
|||||||
|
|
||||||
j += sprintf(header + j, "\r\n");
|
j += sprintf(header + j, "\r\n");
|
||||||
|
|
||||||
ret = ota_server_send((char *) header, strlen(header));
|
ret = OtaServerSend((char *) header, strlen(header));
|
||||||
|
|
||||||
// ota_server_log("send: %d\r\n%s", strlen(header), header);
|
// ota_server_log("send: %d\r\n%s", strlen(header), header);
|
||||||
if (header != NULL) free(header);
|
if (header != NULL) free(header);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ota_server_socket_close(void)
|
static void OtaServerSocketClose(void)
|
||||||
{
|
{
|
||||||
#if OTA_USE_HTTPS
|
#if OTA_USE_HTTPS
|
||||||
if (ota_server_context->download_url.ota_ssl) ssl_close(ota_server_context->download_url.ota_ssl);
|
if (ota_server_context->download_url.ota_ssl) ssl_close(ota_server_context->download_url.ota_ssl);
|
||||||
@@ -190,7 +190,7 @@ static void ota_server_socket_close(void)
|
|||||||
ota_server_context->download_url.ota_fd = -1;
|
ota_server_context->download_url.ota_fd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ota_server_connect_server(struct in_addr in_addr)
|
static int OtaServerConnectServer(struct in_addr in_addr)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
struct sockaddr_in server_address;
|
struct sockaddr_in server_address;
|
||||||
@@ -212,7 +212,7 @@ static int ota_server_connect_server(struct in_addr in_addr)
|
|||||||
server_address.sin_family = AF_INET;
|
server_address.sin_family = AF_INET;
|
||||||
server_address.sin_addr = in_addr;
|
server_address.sin_addr = in_addr;
|
||||||
|
|
||||||
err = ota_server_connect(&server_address, sizeof(server_address));
|
err = OtaServerConnect(&server_address, sizeof(server_address));
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
{
|
{
|
||||||
mico_thread_sleep(1);
|
mico_thread_sleep(1);
|
||||||
@@ -223,7 +223,7 @@ static int ota_server_connect_server(struct in_addr in_addr)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ota_server_progress_set(OTA_STATE_E state)
|
static void OtaServerProgressSet(OTA_STATE_E state)
|
||||||
{
|
{
|
||||||
float progress = 0.00;
|
float progress = 0.00;
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ static void ota_server_progress_set(OTA_STATE_E state)
|
|||||||
ota_server_context->ota_server_cb(state, progress);
|
ota_server_context->ota_server_cb(state, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ota_server_thread(mico_thread_arg_t arg)
|
static void OtaServerThread(mico_thread_arg_t arg)
|
||||||
{
|
{
|
||||||
OSStatus err;
|
OSStatus err;
|
||||||
uint16_t crc16 = 0;
|
uint16_t crc16 = 0;
|
||||||
@@ -249,7 +249,7 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
ota_server_context->ota_control = OTA_CONTROL_START;
|
ota_server_context->ota_control = OTA_CONTROL_START;
|
||||||
|
|
||||||
hostent_content = gethostbyname(ota_server_context->download_url.host);
|
hostent_content = gethostbyname(ota_server_context->download_url.host);
|
||||||
require_action_quiet(hostent_content != NULL, DELETE, ota_server_progress_set(OTA_FAIL));
|
require_action_quiet(hostent_content != NULL, DELETE, OtaServerProgressSet(OTA_FAIL));
|
||||||
pptr=hostent_content->h_addr_list;
|
pptr=hostent_content->h_addr_list;
|
||||||
in_addr.s_addr = *(uint32_t *)(*pptr);
|
in_addr.s_addr = *(uint32_t *)(*pptr);
|
||||||
strcpy(ota_server_context->download_url.ip, inet_ntoa(in_addr));
|
strcpy(ota_server_context->download_url.ip, inet_ntoa(in_addr));
|
||||||
@@ -263,8 +263,8 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
InitMd5(&md5);
|
InitMd5(&md5);
|
||||||
}
|
}
|
||||||
|
|
||||||
httpHeader = HTTPHeaderCreateWithCallback(1024, onReceivedData, NULL, NULL);
|
httpHeader = HTTPHeaderCreateWithCallback(1024, OnReceivedData, NULL, NULL);
|
||||||
require_action(httpHeader, DELETE, ota_server_progress_set(OTA_FAIL));
|
require_action(httpHeader, DELETE, OtaServerProgressSet(OTA_FAIL));
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
@@ -276,11 +276,11 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ota_server_context->download_url.ota_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
ota_server_context->download_url.ota_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
err = ota_server_connect_server(in_addr);
|
err = OtaServerConnectServer(in_addr);
|
||||||
require_noerr_action(err, RECONNECTED, ota_server_progress_set(OTA_FAIL));
|
require_noerr_action(err, RECONNECTED, OtaServerProgressSet(OTA_FAIL));
|
||||||
|
|
||||||
/* Send HTTP Request */
|
/* Send HTTP Request */
|
||||||
ota_server_send_header();
|
OtaServerSendHeader();
|
||||||
|
|
||||||
FD_ZERO(&readfds);
|
FD_ZERO(&readfds);
|
||||||
FD_SET(ota_server_context->download_url.ota_fd, &readfds);
|
FD_SET(ota_server_context->download_url.ota_fd, &readfds);
|
||||||
@@ -289,7 +289,7 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
if (FD_ISSET(ota_server_context->download_url.ota_fd, &readfds))
|
if (FD_ISSET(ota_server_context->download_url.ota_fd, &readfds))
|
||||||
{
|
{
|
||||||
/*parse header*/
|
/*parse header*/
|
||||||
err = ota_server_read_header(httpHeader);
|
err = OtaServerReadHeader(httpHeader);
|
||||||
if (ota_server_context->ota_control == OTA_CONTROL_START)
|
if (ota_server_context->ota_control == OTA_CONTROL_START)
|
||||||
{
|
{
|
||||||
ota_server_context->download_state.download_len = httpHeader->contentLength;
|
ota_server_context->download_state.download_len = httpHeader->contentLength;
|
||||||
@@ -301,7 +301,7 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
#if OTA_DEBUG
|
#if OTA_DEBUG
|
||||||
PrintHTTPHeader(httpHeader);
|
PrintHTTPHeader(httpHeader);
|
||||||
#endif
|
#endif
|
||||||
err = ota_server_read_body(httpHeader);/*get body data*/
|
err = OtaServerReadBody(httpHeader);/*get body data*/
|
||||||
require_noerr(err, RECONNECTED);
|
require_noerr(err, RECONNECTED);
|
||||||
/*get data and print*/
|
/*get data and print*/
|
||||||
break;
|
break;
|
||||||
@@ -317,34 +317,34 @@ static void ota_server_thread(mico_thread_arg_t arg)
|
|||||||
if (ota_server_context->download_state.download_len == ota_server_context->download_state.download_begin_pos)
|
if (ota_server_context->download_state.download_len == ota_server_context->download_state.download_begin_pos)
|
||||||
{
|
{
|
||||||
if(httpHeader->statusCode != 200){
|
if(httpHeader->statusCode != 200){
|
||||||
ota_server_progress_set(OTA_FAIL);
|
OtaServerProgressSet(OTA_FAIL);
|
||||||
goto DELETE;
|
goto DELETE;
|
||||||
}
|
}
|
||||||
CRC16_Final(&crc_context, &crc16);
|
CRC16_Final(&crc_context, &crc16);
|
||||||
if(ota_server_context->ota_check.is_md5 == true){
|
if(ota_server_context->ota_check.is_md5 == true){
|
||||||
Md5Final(&md5, (unsigned char *) md5_value);
|
Md5Final(&md5, (unsigned char *) md5_value);
|
||||||
hex2str((char *)md5_value, 16, md5_value_string);
|
Hex2Str((char *)md5_value, 16, md5_value_string);
|
||||||
}
|
}
|
||||||
if (memcmp(md5_value_string, ota_server_context->ota_check.md5, OTA_MD5_LENTH) == 0){
|
if (memcmp(md5_value_string, ota_server_context->ota_check.md5, OTA_MD5_LENTH) == 0){
|
||||||
ota_server_progress_set(OTA_SUCCE);
|
OtaServerProgressSet(OTA_SUCCE);
|
||||||
mico_ota_switch_to_new_fw(ota_server_context->download_state.download_len, crc16);
|
mico_ota_switch_to_new_fw(ota_server_context->download_state.download_len, crc16);
|
||||||
mico_system_power_perform(mico_system_context_get(), eState_Software_Reset);
|
mico_system_power_perform(mico_system_context_get(), eState_Software_Reset);
|
||||||
}else{
|
}else{
|
||||||
ota_server_log("OTA md5 check err, Calculation:%s, Get:%s", md5_value_string, ota_server_context->ota_check.md5);
|
ota_server_log("OTA md5 check err, Calculation:%s, Get:%s", md5_value_string, ota_server_context->ota_check.md5);
|
||||||
ota_server_progress_set(OTA_FAIL);
|
OtaServerProgressSet(OTA_FAIL);
|
||||||
}
|
}
|
||||||
goto DELETE;
|
goto DELETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
RECONNECTED:
|
RECONNECTED:
|
||||||
ota_server_socket_close();
|
OtaServerSocketClose();
|
||||||
mico_thread_sleep(2);
|
mico_thread_sleep(2);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
}
|
}
|
||||||
DELETE:
|
DELETE:
|
||||||
HTTPHeaderDestory(&httpHeader);
|
HTTPHeaderDestory(&httpHeader);
|
||||||
ota_server_socket_close();
|
OtaServerSocketClose();
|
||||||
if(ota_server_context != NULL){
|
if(ota_server_context != NULL){
|
||||||
if(ota_server_context->download_url.url != NULL){
|
if(ota_server_context->download_url.url != NULL){
|
||||||
free(ota_server_context->download_url.url);
|
free(ota_server_context->download_url.url);
|
||||||
@@ -359,7 +359,7 @@ DELETE:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*one request may receive multi reply*/
|
/*one request may receive multi reply*/
|
||||||
static OSStatus onReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos, uint8_t * inData,
|
static OSStatus OnReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos, uint8_t * inData,
|
||||||
size_t inLen, void * inUserContext)
|
size_t inLen, void * inUserContext)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
@@ -376,7 +376,7 @@ static OSStatus onReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos,
|
|||||||
|
|
||||||
MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, inData, inLen);
|
MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, inData, inLen);
|
||||||
|
|
||||||
ota_server_progress_set(OTA_LOADING);
|
OtaServerProgressSet(OTA_LOADING);
|
||||||
|
|
||||||
if(ota_server_context->ota_control == OTA_CONTROL_PAUSE){
|
if(ota_server_context->ota_control == OTA_CONTROL_PAUSE){
|
||||||
while(1){
|
while(1){
|
||||||
@@ -393,7 +393,7 @@ static OSStatus onReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OSStatus ota_server_set_url(char *url)
|
static OSStatus OtaServerSetUrl(char *url)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
url_field_t *url_t;
|
url_field_t *url_t;
|
||||||
@@ -428,7 +428,7 @@ exit:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus ota_server_start(char *url, char *md5, ota_server_cb_fn call_back)
|
OSStatus OtaServerStart(char *url, char *md5, ota_server_cb_fn call_back)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
@@ -451,38 +451,38 @@ OSStatus ota_server_start(char *url, char *md5, ota_server_cb_fn call_back)
|
|||||||
require_action(ota_server_context->download_url.url, exit, err = kNoMemoryErr);
|
require_action(ota_server_context->download_url.url, exit, err = kNoMemoryErr);
|
||||||
memset(ota_server_context->download_url.url, 0x00, strlen(url));
|
memset(ota_server_context->download_url.url, 0x00, strlen(url));
|
||||||
|
|
||||||
err = ota_server_set_url(url);
|
err = OtaServerSetUrl(url);
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
if(md5 != NULL){
|
if(md5 != NULL){
|
||||||
ota_server_context->ota_check.is_md5 = true;
|
ota_server_context->ota_check.is_md5 = true;
|
||||||
memcpy(ota_server_context->ota_check.md5, md5, OTA_MD5_LENTH);
|
memcpy(ota_server_context->ota_check.md5, md5, OTA_MD5_LENTH);
|
||||||
upper2lower(ota_server_context->ota_check.md5, OTA_MD5_LENTH);
|
Upper2Ower(ota_server_context->ota_check.md5, OTA_MD5_LENTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
ota_server_context->ota_server_cb = call_back;
|
ota_server_context->ota_server_cb = call_back;
|
||||||
|
|
||||||
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "OTA", ota_server_thread, OTA_SERVER_THREAD_STACK_SIZE, 0);
|
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "OTA", OtaServerThread, OTA_SERVER_THREAD_STACK_SIZE, 0);
|
||||||
exit:
|
exit:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ota_server_pause(void)
|
void OtaServerPause(void)
|
||||||
{
|
{
|
||||||
ota_server_context->ota_control = OTA_CONTROL_PAUSE;
|
ota_server_context->ota_control = OTA_CONTROL_PAUSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ota_server_continue(void)
|
void OtaServerContinue(void)
|
||||||
{
|
{
|
||||||
ota_server_context->ota_control = OTA_CONTROL_CONTINUE;
|
ota_server_context->ota_control = OTA_CONTROL_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ota_server_stop(void)
|
void OtaServerStop(void)
|
||||||
{
|
{
|
||||||
ota_server_context->ota_control = OTA_CONTROL_STOP;
|
ota_server_context->ota_control = OTA_CONTROL_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
OTA_CONTROL_E ota_server_get(void)
|
OTA_CONTROL_E OtaServerGet(void)
|
||||||
{
|
{
|
||||||
return ota_server_context->ota_control;
|
return ota_server_context->ota_control;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,34 +109,34 @@ typedef struct _ota_server_context_t{
|
|||||||
* @return kNoErr : on success.
|
* @return kNoErr : on success.
|
||||||
* @return kGeneralErr : if an error occurred
|
* @return kGeneralErr : if an error occurred
|
||||||
*/
|
*/
|
||||||
OSStatus ota_server_start(char *url, char *md5, ota_server_cb_fn call_back);
|
OSStatus OtaServerStart(char *url, char *md5, ota_server_cb_fn call_back);
|
||||||
|
|
||||||
|
|
||||||
/** @brief Get OTA server state
|
/** @brief Get OTA server state
|
||||||
*
|
*
|
||||||
* @return OTA_CONTROL_E : state
|
* @return OTA_CONTROL_E : state
|
||||||
*/
|
*/
|
||||||
OTA_CONTROL_E ota_server_state_get(void);
|
OTA_CONTROL_E OtaServerStateGet(void);
|
||||||
|
|
||||||
|
|
||||||
/** @brief Pause OTA server daemons
|
/** @brief Pause OTA server daemons
|
||||||
*
|
*
|
||||||
* @return No
|
* @return No
|
||||||
*/
|
*/
|
||||||
void ota_server_pause(void);
|
void OtaServerPause(void);
|
||||||
|
|
||||||
|
|
||||||
/** @brief Continue OTA server daemons
|
/** @brief Continue OTA server daemons
|
||||||
*
|
*
|
||||||
* @return No
|
* @return No
|
||||||
*/
|
*/
|
||||||
void ota_server_continue(void);
|
void OtaServerContinue(void);
|
||||||
|
|
||||||
|
|
||||||
/** @brief Stop OTA server daemons
|
/** @brief Stop OTA server daemons
|
||||||
*
|
*
|
||||||
* @return No
|
* @return No
|
||||||
*/
|
*/
|
||||||
void ota_server_stop(void);
|
void OtaServerStop(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
float ota_progress = 0;
|
float ota_progress = 0;
|
||||||
|
|
||||||
static void ota_server_status_handler(OTA_STATE_E state, float progress)
|
static void OtaServerStatusHandler(OTA_STATE_E state, float progress)
|
||||||
{
|
{
|
||||||
char str[64] = { 0 };
|
char str[64] = { 0 };
|
||||||
switch (state)
|
switch (state)
|
||||||
@@ -35,14 +35,14 @@ static void ota_server_status_handler(OTA_STATE_E state, float progress)
|
|||||||
}
|
}
|
||||||
if (str[0] > 0)
|
if (str[0] > 0)
|
||||||
{
|
{
|
||||||
user_send(true, str);
|
UserSend(true, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_ota_start(char *url, char *md5)
|
void UserOtaStart(char *url, char *md5)
|
||||||
{
|
{
|
||||||
ota_progress = 0;
|
ota_progress = 0;
|
||||||
os_log("ready to ota:%s",url);
|
os_log("ready to ota:%s",url);
|
||||||
ota_server_start(url, md5, ota_server_status_handler);
|
OtaServerStart(url, md5, OtaServerStatusHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
|
|
||||||
extern float ota_progress;
|
extern float ota_progress;
|
||||||
|
|
||||||
void user_ota_start(char *url, char *md5);
|
void UserOtaStart(char *url, char *md5);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
#include "mqtt_server/user_mqtt_client.h"
|
#include "mqtt_server/user_mqtt_client.h"
|
||||||
#include "mqtt_server/user_function.h"
|
#include "mqtt_server/user_function.h"
|
||||||
|
|
||||||
void rtc_thread(mico_thread_arg_t arg);
|
void RtcThread(mico_thread_arg_t arg);
|
||||||
|
|
||||||
OSStatus user_sntp_get_time()
|
OSStatus UserSntpGetTime()
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
ntp_timestamp_t current_time;
|
ntp_timestamp_t current_time;
|
||||||
@@ -64,13 +64,13 @@ OSStatus user_sntp_get_time()
|
|||||||
return kNoErr;
|
return kNoErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus user_rtc_init(void)
|
OSStatus UserRtcInit(void)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
/* start rtc client */
|
/* start rtc client */
|
||||||
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "rtc",
|
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "rtc",
|
||||||
(mico_thread_function_t) rtc_thread,
|
(mico_thread_function_t) RtcThread,
|
||||||
0x1000, 0);
|
0x1000, 0);
|
||||||
require_noerr_string(err, exit, "ERROR: Unable to start the rtc thread.");
|
require_noerr_string(err, exit, "ERROR: Unable to start the rtc thread.");
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ OSStatus user_rtc_init(void)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtc_thread(mico_thread_arg_t arg)
|
void RtcThread(mico_thread_arg_t arg)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
LinkStatusTypeDef LinkStatus;
|
LinkStatusTypeDef LinkStatus;
|
||||||
@@ -93,7 +93,7 @@ void rtc_thread(mico_thread_arg_t arg)
|
|||||||
micoWlanGetLinkStatus(&LinkStatus);
|
micoWlanGetLinkStatus(&LinkStatus);
|
||||||
if (LinkStatus.is_connected == 1)
|
if (LinkStatus.is_connected == 1)
|
||||||
{
|
{
|
||||||
err = user_sntp_get_time();
|
err = UserSntpGetTime();
|
||||||
if (err == kNoErr)
|
if (err == kNoErr)
|
||||||
{
|
{
|
||||||
os_log("sntp success!");
|
os_log("sntp success!");
|
||||||
@@ -133,7 +133,7 @@ void rtc_thread(mico_thread_arg_t arg)
|
|||||||
micoWlanGetLinkStatus(&LinkStatus);
|
micoWlanGetLinkStatus(&LinkStatus);
|
||||||
if (LinkStatus.is_connected == 1)
|
if (LinkStatus.is_connected == 1)
|
||||||
{
|
{
|
||||||
err = user_sntp_get_time();
|
err = UserSntpGetTime();
|
||||||
if (err == kNoErr)
|
if (err == kNoErr)
|
||||||
rtc_init = 1;
|
rtc_init = 1;
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include "micokit_ext.h"
|
#include "micokit_ext.h"
|
||||||
|
|
||||||
|
|
||||||
extern OSStatus user_rtc_init(void);
|
extern OSStatus UserRtcInit(void);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ static void KeyLongPress(void)
|
|||||||
{
|
{
|
||||||
// os_log("KeyLongPress");
|
// os_log("KeyLongPress");
|
||||||
// UserLedSet(1);
|
// UserLedSet(1);
|
||||||
// user_mqtt_send("mqtt test");
|
// UserMqttSend("mqtt test");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void KeyLong10sPress(void)
|
static void KeyLong10sPress(void)
|
||||||
@@ -127,7 +127,7 @@ static void KeyShortPress(void)
|
|||||||
|
|
||||||
for (i = 0; i < SOCKET_NUM; i++)
|
for (i = 0; i < SOCKET_NUM; i++)
|
||||||
{
|
{
|
||||||
user_mqtt_send_socket_state(i);
|
UserMqttSendSocketState(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mico_timer_t user_key_timer;
|
mico_timer_t user_key_timer;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#define MAX_UDP_DATA_SIZE (1024)
|
#define MAX_UDP_DATA_SIZE (1024)
|
||||||
#define MAX_UDP_SEND_QUEUE_SIZE (5)
|
#define MAX_UDP_SEND_QUEUE_SIZE (5)
|
||||||
mico_queue_t udp_msg_send_queue = NULL;
|
mico_queue_t UdpMsgSend_queue = NULL;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@@ -17,15 +17,15 @@ typedef struct
|
|||||||
char data[MAX_UDP_DATA_SIZE];
|
char data[MAX_UDP_DATA_SIZE];
|
||||||
} udp_send_msg_t, *p_udp_send_msg_t;
|
} udp_send_msg_t, *p_udp_send_msg_t;
|
||||||
|
|
||||||
static OSStatus udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_len);
|
static OSStatus UdpMsgSend(int socket, const unsigned char* msg, uint32_t msg_len);
|
||||||
void udp_thread(void *arg);
|
void UdpThread(void *arg);
|
||||||
|
|
||||||
OSStatus user_udp_init(void)
|
OSStatus UserUdpInit(void)
|
||||||
{
|
{
|
||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
/* start udp client */
|
/* start udp client */
|
||||||
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "udp",
|
err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "udp",
|
||||||
(mico_thread_function_t) udp_thread,
|
(mico_thread_function_t) UdpThread,
|
||||||
0x1000, 0);
|
0x1000, 0);
|
||||||
require_noerr_string(err, exit, "ERROR: Unable to start the rtc thread.");
|
require_noerr_string(err, exit, "ERROR: Unable to start the rtc thread.");
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ OSStatus user_udp_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*create udp socket*/
|
/*create udp socket*/
|
||||||
void udp_thread(void *arg)
|
void UdpThread(void *arg)
|
||||||
{
|
{
|
||||||
UNUSED_PARAMETER(arg);
|
UNUSED_PARAMETER(arg);
|
||||||
|
|
||||||
@@ -53,11 +53,11 @@ void udp_thread(void *arg)
|
|||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
|
|
||||||
/* create udp msg send queue */
|
/* create udp msg send queue */
|
||||||
err = mico_rtos_init_queue(&udp_msg_send_queue, "uqp_msg_send_queue", sizeof(p_udp_send_msg_t),
|
err = mico_rtos_init_queue(&UdpMsgSend_queue, "uqp_msg_send_queue", sizeof(p_udp_send_msg_t),
|
||||||
MAX_UDP_SEND_QUEUE_SIZE);
|
MAX_UDP_SEND_QUEUE_SIZE);
|
||||||
require_noerr_action(err, exit, os_log("ERROR: create udp msg send queue err=%d.", err));
|
require_noerr_action(err, exit, os_log("ERROR: create udp msg send queue err=%d.", err));
|
||||||
/* create msg send queue event fd */
|
/* create msg send queue event fd */
|
||||||
msg_send_event_fd = mico_create_event_fd(udp_msg_send_queue);
|
msg_send_event_fd = mico_create_event_fd(UdpMsgSend_queue);
|
||||||
require_action(msg_send_event_fd >= 0, exit, os_log("ERROR: create msg send queue event fd failed!!!"));
|
require_action(msg_send_event_fd >= 0, exit, os_log("ERROR: create msg send queue event fd failed!!!"));
|
||||||
|
|
||||||
buf = malloc(1024);
|
buf = malloc(1024);
|
||||||
@@ -91,21 +91,21 @@ void udp_thread(void *arg)
|
|||||||
strcpy(ip_address, inet_ntoa(addr.sin_addr));
|
strcpy(ip_address, inet_ntoa(addr.sin_addr));
|
||||||
if(len<1024) buf[len]=0;
|
if(len<1024) buf[len]=0;
|
||||||
os_log("udp recv from %s:%d, len:%d ", ip_address,addr.sin_port, len);
|
os_log("udp recv from %s:%d, len:%d ", ip_address,addr.sin_port, len);
|
||||||
user_function_cmd_received(1,buf);
|
UserFunctionCmdReceived(1,buf);
|
||||||
// sendto(udp_fd, buf, len, 0, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
|
// sendto(udp_fd, buf, len, 0, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* recv msg from user worker thread to be sent to server */
|
/* recv msg from user worker thread to be sent to server */
|
||||||
if (FD_ISSET(msg_send_event_fd, &readfds))
|
if (FD_ISSET(msg_send_event_fd, &readfds))
|
||||||
{
|
{
|
||||||
while (mico_rtos_is_queue_empty(&udp_msg_send_queue) == false)
|
while (mico_rtos_is_queue_empty(&UdpMsgSend_queue) == false)
|
||||||
{
|
{
|
||||||
// get msg from send queue
|
// get msg from send queue
|
||||||
mico_rtos_pop_from_queue(&udp_msg_send_queue, &p_send_msg, 0);
|
mico_rtos_pop_from_queue(&UdpMsgSend_queue, &p_send_msg, 0);
|
||||||
require_string(p_send_msg, exit, "Wrong data point");
|
require_string(p_send_msg, exit, "Wrong data point");
|
||||||
|
|
||||||
// send message to server
|
// send message to server
|
||||||
err = udp_msg_send(udp_fd, (const unsigned char*)p_send_msg->data, p_send_msg->datalen);
|
err = UdpMsgSend(udp_fd, (const unsigned char*)p_send_msg->data, p_send_msg->datalen);
|
||||||
// require_noerr_string(err, MQTT_reconnect, "ERROR: udp publish data err");
|
// require_noerr_string(err, MQTT_reconnect, "ERROR: udp publish data err");
|
||||||
|
|
||||||
//os_log("udp send data success! msg=[%ld].\r\n", p_send_msg->datalen);
|
//os_log("udp send data success! msg=[%ld].\r\n", p_send_msg->datalen);
|
||||||
@@ -123,7 +123,7 @@ void udp_thread(void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send msg to udp
|
// send msg to udp
|
||||||
static OSStatus udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_len)
|
static OSStatus UdpMsgSend(int socket, const unsigned char* msg, uint32_t msg_len)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ exit:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Application collect data and seng them to udp send queue */
|
/* Application collect data and seng them to udp send queue */
|
||||||
OSStatus user_udp_send(char *arg)
|
OSStatus UserUdpSend(char *arg)
|
||||||
{
|
{
|
||||||
OSStatus err = kUnknownErr;
|
OSStatus err = kUnknownErr;
|
||||||
p_udp_send_msg_t p_send_msg = NULL;
|
p_udp_send_msg_t p_send_msg = NULL;
|
||||||
@@ -152,9 +152,9 @@ OSStatus user_udp_send(char *arg)
|
|||||||
// app_log("======App prepare to send ![%d]======", MicoGetMemoryInfo()->free_memory);
|
// app_log("======App prepare to send ![%d]======", MicoGetMemoryInfo()->free_memory);
|
||||||
|
|
||||||
/* Send queue is full, pop the oldest */
|
/* Send queue is full, pop the oldest */
|
||||||
if (mico_rtos_is_queue_full(&udp_msg_send_queue) == true)
|
if (mico_rtos_is_queue_full(&UdpMsgSend_queue) == true)
|
||||||
{
|
{
|
||||||
mico_rtos_pop_from_queue(&udp_msg_send_queue, &p_send_msg, 0);
|
mico_rtos_pop_from_queue(&UdpMsgSend_queue, &p_send_msg, 0);
|
||||||
free(p_send_msg);
|
free(p_send_msg);
|
||||||
p_send_msg = NULL;
|
p_send_msg = NULL;
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ OSStatus user_udp_send(char *arg)
|
|||||||
p_send_msg->datalen = strlen(arg);
|
p_send_msg->datalen = strlen(arg);
|
||||||
memcpy(p_send_msg->data, arg, p_send_msg->datalen);
|
memcpy(p_send_msg->data, arg, p_send_msg->datalen);
|
||||||
|
|
||||||
err = mico_rtos_push_to_queue(&udp_msg_send_queue, &p_send_msg, 0);
|
err = mico_rtos_push_to_queue(&UdpMsgSend_queue, &p_send_msg, 0);
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
//app_log("Push user msg into send queue success!");
|
//app_log("Push user msg into send queue success!");
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
#include "mico.h"
|
#include "mico.h"
|
||||||
#include "micokit_ext.h"
|
#include "micokit_ext.h"
|
||||||
|
|
||||||
OSStatus user_udp_init(void);
|
OSStatus UserUdpInit(void);
|
||||||
OSStatus user_udp_send(char *arg);
|
OSStatus UserUdpSend(char *arg);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ char wifi_status = WIFI_STATE_NOCONNECT;
|
|||||||
|
|
||||||
mico_timer_t wifi_led_timer;
|
mico_timer_t wifi_led_timer;
|
||||||
IpStatus ip_status = { 0, ZZ_AP_LOCAL_IP, ZZ_AP_LOCAL_IP, ZZ_AP_NET_MASK };
|
IpStatus ip_status = { 0, ZZ_AP_LOCAL_IP, ZZ_AP_LOCAL_IP, ZZ_AP_NET_MASK };
|
||||||
char ap_name[32] = { 0 };
|
char ap_name[32] = { 0 };
|
||||||
char ap_key[32] = { 0 };
|
char ap_key[32] = { 0 };
|
||||||
|
|
||||||
//wifi已连接获取到IP地址回调
|
//wifi已连接获取到IP地址回调
|
||||||
static void WifiGetIpCallback(IPStatusTypedef *pnet, void * arg)
|
static void WifiGetIpCallback(IPStatusTypedef *pnet, void * arg)
|
||||||
@@ -24,7 +24,7 @@ static void WifiGetIpCallback(IPStatusTypedef *pnet, void * arg)
|
|||||||
|
|
||||||
os_log("got IP:%s", pnet->ip);
|
os_log("got IP:%s", pnet->ip);
|
||||||
wifi_status = WIFI_STATE_CONNECTED;
|
wifi_status = WIFI_STATE_CONNECTED;
|
||||||
user_function_cmd_received(1,"{\"cmd\":\"device report\"}");
|
UserFunctionCmdReceived(1,"{\"cmd\":\"device report\"}");
|
||||||
}
|
}
|
||||||
|
|
||||||
//wifi连接状态改变回调
|
//wifi连接状态改变回调
|
||||||
@@ -191,18 +191,18 @@ void ApInit()
|
|||||||
os_log("ApInit ap_name[%s] ap_key[%s]", ap_name, ap_key);
|
os_log("ApInit ap_name[%s] ap_key[%s]", ap_name, ap_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
network_InitTypeDef_st wNetConfig;
|
network_InitTypeDef_st wNetConfig;
|
||||||
memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_st));
|
memset(&wNetConfig, 0x0, sizeof(network_InitTypeDef_st));
|
||||||
strcpy((char *)wNetConfig.wifi_ssid, ap_name);
|
strcpy((char *)wNetConfig.wifi_ssid, ap_name);
|
||||||
strcpy((char *)wNetConfig.wifi_key, ap_key);
|
strcpy((char *)wNetConfig.wifi_key, ap_key);
|
||||||
wNetConfig.wifi_mode = Soft_AP;
|
wNetConfig.wifi_mode = Soft_AP;
|
||||||
wNetConfig.dhcpMode = DHCP_Server;
|
wNetConfig.dhcpMode = DHCP_Server;
|
||||||
wNetConfig.wifi_retry_interval = 100;
|
wNetConfig.wifi_retry_interval = 100;
|
||||||
strcpy((char *)wNetConfig.local_ip_addr, ZZ_AP_LOCAL_IP);
|
strcpy((char *)wNetConfig.local_ip_addr, ZZ_AP_LOCAL_IP);
|
||||||
strcpy((char *)wNetConfig.net_mask, ZZ_AP_NET_MASK);
|
strcpy((char *)wNetConfig.net_mask, ZZ_AP_NET_MASK);
|
||||||
strcpy((char *)wNetConfig.dnsServer_ip_addr, ZZ_AP_DNS_SERVER);
|
strcpy((char *)wNetConfig.dnsServer_ip_addr, ZZ_AP_DNS_SERVER);
|
||||||
micoWlanStart(&wNetConfig);
|
micoWlanStart(&wNetConfig);
|
||||||
|
|
||||||
os_log("ApInit ssid[%s] key[%s]", wNetConfig.wifi_ssid, wNetConfig.wifi_key);
|
os_log("ApInit ssid[%s] key[%s]", wNetConfig.wifi_ssid, wNetConfig.wifi_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user