解決很多编译Bug

This commit is contained in:
zogodo
2019-09-24 22:45:03 +08:00
parent 2a328b9225
commit 3cf3abf373
11 changed files with 57 additions and 72 deletions

View File

@@ -14,9 +14,9 @@
char rtc_init = 0; //sntpУʱ<D0A3>ɹ<EFBFBD><C9B9><EFBFBD>־λ char rtc_init = 0; //sntpУʱ<D0A3>ɹ<EFBFBD><C9B9><EFBFBD>־λ
uint32_t total_time=0; uint32_t total_time = 0;
char strMac[16] = { 0 }; char strMac[16] = { 0 };
uint32_t power=0; uint32_t power = 0;
system_config_t * sys_config; system_config_t * sys_config;
user_config_t * user_config; user_config_t * user_config;
@@ -76,7 +76,7 @@ int application_start(void)
int i; int i;
os_log("Start %s",VERSION); os_log("Start %s",VERSION);
uint8_t main_num=0; char main_num=0;
uint32_t power_last = 0xffffffff; uint32_t power_last = 0xffffffff;
OSStatus err = kNoErr; OSStatus err = kNoErr;
@@ -174,11 +174,11 @@ int application_start(void)
{ {
power_last = power; power_last = power;
main_num =0; main_num =0;
uint8_t *power_buf = NULL; char* power_buf = malloc(128);
power_buf = malloc(128);
if (power_buf != NULL) if (power_buf != NULL)
{ {
sprintf(power_buf, "{\"mac\":\"%s\",\"power\":\"%d.%d\",\"total_time\":%d}", strMac, power / 10, power % 10, total_time); sprintf(power_buf, "{\"mac\":\"%s\",\"power\":\"%u.%u\",\"total_time\":%u}",
strMac, (unsigned int)(power/10), (unsigned int)(power%10), (unsigned int)total_time);
user_send(0, power_buf); user_send(0, power_buf);
free(power_buf); free(power_buf);
} }

View File

@@ -37,7 +37,7 @@ typedef struct
{ {
char hour; //Сʱ char hour; //Сʱ
char minute; //<2F><><EFBFBD><EFBFBD> char minute; //<2F><><EFBFBD><EFBFBD>
uint8_t repeat; //bit7:һ<><D2BB> bit6-0:<3A><><EFBFBD><EFBFBD>-<2D><>һ char repeat; //bit7:һ<><D2BB> bit6-0:<3A><><EFBFBD><EFBFBD>-<2D><>һ
char action; //<2F><><EFBFBD><EFBFBD> char action; //<2F><><EFBFBD><EFBFBD>
char on; //<2F><><EFBFBD><EFBFBD> char on; //<2F><><EFBFBD><EFBFBD>
} user_plug_task_config_t; } user_plug_task_config_t;

View File

@@ -50,11 +50,11 @@ 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, char *data,
size_t len, size_t len,
void * userContext); void * userContext);
static void hex2str(uint8_t *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++){
@@ -73,7 +73,7 @@ static void upper2lower(char *str, int len)
} }
} }
static int ota_server_send(uint8_t *data, int datalen) static int ota_server_send(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){
@@ -173,7 +173,7 @@ static int ota_server_send_header(void)
j += sprintf(header + j, "\r\n"); j += sprintf(header + j, "\r\n");
ret = ota_server_send((uint8_t *) header, strlen(header)); ret = ota_server_send((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);
@@ -322,7 +322,7 @@ static void ota_server_thread(mico_thread_arg_t arg)
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((uint8_t *)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); ota_server_progress_set(OTA_SUCCE);
@@ -358,7 +358,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, char * inData,
size_t inLen, void * inUserContext) size_t inLen, void * inUserContext)
{ {
OSStatus err = kNoErr; OSStatus err = kNoErr;
@@ -373,7 +373,7 @@ static OSStatus onReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos,
Md5Update(&md5, inData, inLen); Md5Update(&md5, inData, inLen);
} }
MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, (uint8_t *) inData, inLen); MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, (char *) inData, inLen);
ota_server_progress_set(OTA_LOADING); ota_server_progress_set(OTA_LOADING);

View File

@@ -27,7 +27,7 @@ void user_send(int udp_flag, char *s)
user_mqtt_send(s); user_mqtt_send(s);
} }
void user_function_cmd_received(int udp_flag, uint8_t *pusrdata) void user_function_cmd_received(int udp_flag, char* pusrdata)
{ {
unsigned char i; unsigned char i;
@@ -100,7 +100,7 @@ void user_function_cmd_received(int udp_flag, uint8_t *pusrdata)
cJSON *p_power = cJSON_GetObjectItem(pJsonRoot, "power"); cJSON *p_power = cJSON_GetObjectItem(pJsonRoot, "power");
if (p_power) if (p_power)
{ {
uint8_t *temp_buf = malloc(16); char *temp_buf = malloc(16);
if (temp_buf != NULL) if (temp_buf != NULL)
{ {
sprintf(temp_buf, "%d.%d", power / 10, power % 10); sprintf(temp_buf, "%d.%d", power / 10, power % 10);

View File

@@ -7,7 +7,7 @@
#include "micokit_ext.h" #include "micokit_ext.h"
void user_send(int udp_flag, char *s); void user_send(int udp_flag, char *s);
void user_function_cmd_received(int udp_flag,uint8_t *pusrdata); void user_function_cmd_received(int udp_flag, char* pusrdata);
unsigned char strtohex(char a, char b); unsigned char strtohex(char a, char b);

View File

@@ -106,9 +106,8 @@ static void key_long_press(void)
static void key_long_10s_press(void) static void key_long_10s_press(void)
{ {
OSStatus err;
char i = 0;
os_log("WARNGIN: user params restored!"); os_log("WARNGIN: user params restored!");
// char i = 0;
// for (i = 0; i < 3; i++) // for (i = 0; i < 3; i++)
// { // {
// user_led_set(1); // user_led_set(1);
@@ -123,7 +122,6 @@ static void key_long_10s_press(void)
static void key_short_press(void) static void key_short_press(void)
{ {
char i; char i;
OSStatus err;
if (relay_out()) if (relay_out())
{ {
@@ -138,9 +136,6 @@ static void key_short_press(void)
{ {
user_mqtt_send_plug_state(i); user_mqtt_send_plug_state(i);
} }
} }
mico_timer_t user_key_timer; mico_timer_t user_key_timer;
uint16_t key_time = 0; uint16_t key_time = 0;
@@ -148,11 +143,9 @@ uint16_t key_time = 0;
static void key_timeout_handler(void* arg) static void key_timeout_handler(void* arg)
{ {
static char key_trigger, key_continue;
static uint8_t key_trigger, key_continue;
static uint8_t key_last;
//<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t tmp = ~(0xfe | MicoGpioInputGet(Button)); char tmp = ~(0xfe | MicoGpioInputGet(Button));
key_trigger = tmp & (tmp ^ key_continue); key_trigger = tmp & (tmp ^ key_continue);
key_continue = tmp; key_continue = tmp;
// os_log("button scan:%02x %02x",key_trigger,key_continue); // os_log("button scan:%02x %02x",key_trigger,key_continue);
@@ -161,9 +154,7 @@ static void key_timeout_handler(void* arg)
{ {
//any button pressed //any button pressed
key_time++; key_time++;
if (key_time < BUTTON_LONG_PRESS_TIME) if (key_time <= BUTTON_LONG_PRESS_TIME)
key_last = key_continue;
else
{ {
os_log("button long pressed:%d",key_time); os_log("button long pressed:%d",key_time);
@@ -198,7 +189,6 @@ static void key_timeout_handler(void* arg)
{ {
MicoSystemReboot(); MicoSystemReboot();
} }
key_last = 0;
mico_rtos_stop_timer(&user_key_timer); mico_rtos_stop_timer(&user_key_timer);
} }
} }

View File

@@ -72,7 +72,7 @@ typedef struct
char qos; char qos;
char retained; char retained;
uint8_t data[MAX_MQTT_DATA_SIZE]; char data[MAX_MQTT_DATA_SIZE];
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;
@@ -99,10 +99,10 @@ char topic_state[MAX_MQTT_TOPIC_SIZE];
char topic_set[MAX_MQTT_TOPIC_SIZE]; char topic_set[MAX_MQTT_TOPIC_SIZE];
mico_timer_t timer_handle; mico_timer_t timer_handle;
static uint8_t timer_status = 0; static char timer_status = 0;
void user_mqtt_timer_func(void *arg) void user_mqtt_timer_func(void *arg)
{ {
uint8_t *buf1 = NULL; char* buf1 = malloc(1024); //idx为1位时长度为24
LinkStatusTypeDef LinkStatus; LinkStatusTypeDef LinkStatus;
micoWlanGetLinkStatus(&LinkStatus); micoWlanGetLinkStatus(&LinkStatus);
@@ -159,21 +159,14 @@ void user_mqtt_timer_func(void *arg)
user_mqtt_hass_auto_power_name(); user_mqtt_hass_auto_power_name();
break; break;
case 15: case 15:
if (buf1 == NULL) break;
buf1 = malloc(1024); //idx为1位时长度为24 sprintf(buf1, "{\"mac\":\"%s\",\"version\":null,\"plug_0\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_1\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_2\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_3\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_4\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_5\":{\"on\":null,\"setting\":{\"name\":null}}}", strMac);
if (buf1 != NULL) user_function_cmd_received(0, buf1);
{ free(buf1);
sprintf(
buf1,
"{\"mac\":\"%s\",\"version\":null,\"plug_0\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_1\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_2\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_3\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_4\":{\"on\":null,\"setting\":{\"name\":null}},\"plug_5\":{\"on\":null,\"setting\":{\"name\":null}}}",
strMac);
user_function_cmd_received(0, buf1);
free(buf1);
}
break; break;
default: default:
mico_stop_timer(&timer_handle); mico_stop_timer(&timer_handle);
// mico_deinit_timer(&timer_handle); // mico_deinit_timer(&timer_handle);
break; break;
} }
} }
@@ -514,8 +507,8 @@ OSStatus user_mqtt_send(char *arg)
OSStatus user_mqtt_send_plug_state(char plug_id) OSStatus user_mqtt_send_plug_state(char plug_id)
{ {
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = malloc(64); // send_buf = malloc(64); //
topic_buf = malloc(64); // topic_buf = malloc(64); //
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
@@ -531,9 +524,9 @@ OSStatus user_mqtt_send_plug_state(char plug_id)
//hass mqtt自动发现数据开关发送 //hass mqtt自动发现数据开关发送
void user_mqtt_hass_auto(char plug_id) void user_mqtt_hass_auto(char plug_id)
{ {
uint8_t i; char i;
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = malloc(512); // send_buf = malloc(512); //
topic_buf = malloc(128); // topic_buf = malloc(128); //
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
@@ -555,10 +548,10 @@ void user_mqtt_hass_auto(char plug_id)
} }
void user_mqtt_hass_auto_name(char plug_id) void user_mqtt_hass_auto_name(char plug_id)
{ {
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = (uint8_t *) malloc(300); send_buf = (char *) malloc(300);
topic_buf = (uint8_t *) malloc(64); topic_buf = (char *) malloc(64);
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
{ {
sprintf(topic_buf, "homeassistant/switch/%s/plug_%d/config", strMac, plug_id); sprintf(topic_buf, "homeassistant/switch/%s/plug_%d/config", strMac, plug_id);
@@ -580,9 +573,9 @@ void user_mqtt_hass_auto_name(char plug_id)
//hass mqtt自动发现数据功率发送 //hass mqtt自动发现数据功率发送
void user_mqtt_hass_auto_power(void) void user_mqtt_hass_auto_power(void)
{ {
uint8_t i; char i;
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = malloc(512); // send_buf = malloc(512); //
topic_buf = malloc(128); // topic_buf = malloc(128); //
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
@@ -604,10 +597,10 @@ void user_mqtt_hass_auto_power(void)
} }
void user_mqtt_hass_auto_power_name(void) void user_mqtt_hass_auto_power_name(void)
{ {
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = (uint8_t *) malloc(300); // send_buf = (char *) malloc(300); //
topic_buf = (uint8_t *) malloc(64); // topic_buf = (char *) malloc(64); //
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
{ {
sprintf(topic_buf, "homeassistant/sensor/%s/power/config", strMac); sprintf(topic_buf, "homeassistant/sensor/%s/power/config", strMac);
@@ -635,9 +628,9 @@ void user_mqtt_hass_auto_power_name(void)
void user_mqtt_hass_power(void) void user_mqtt_hass_power(void)
{ {
uint8_t i; char i;
uint8_t *send_buf = NULL; char *send_buf = NULL;
uint8_t *topic_buf = NULL; char *topic_buf = NULL;
send_buf = malloc(512); // send_buf = malloc(512); //
topic_buf = malloc(128); // topic_buf = malloc(128); //
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)

View File

@@ -17,7 +17,7 @@ static uint32_t timer_irq_count = 0;
static void power_timer_handler(void* arg) static void power_timer_handler(void* arg)
{ {
// uint8_t pin_input = MicoGpioInputGet(POWER); // char pin_input = MicoGpioInputGet(POWER);
uint32_t timer = 0; uint32_t timer = 0;
if (timer_irq_count > 1) if (timer_irq_count > 1)

View File

@@ -156,7 +156,7 @@ void rtc_thread(mico_thread_arg_t arg)
if (utc_time_last != utc_time) if (utc_time_last != utc_time)
{ {
utc_time_last == utc_time; utc_time_last = utc_time;
total_time++; total_time++;
} }
@@ -183,7 +183,7 @@ void rtc_thread(mico_thread_arg_t arg)
if (user_config->plug[i].task[j].on != 0) if (user_config->plug[i].task[j].on != 0)
{ {
uint8_t repeat = user_config->plug[i].task[j].repeat; char repeat = user_config->plug[i].task[j].repeat;
if ( //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>̵<EFBFBD><CCB5><EFBFBD>״̬: <20><>Ϊ0 ʱ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>趨ֵ, <20>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨ֵ if ( //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>̵<EFBFBD><CCB5><EFBFBD>״̬: <20><>Ϊ0 ʱ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>趨ֵ, <20>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨ֵ
rtc_time.sec == 0 && rtc_time.min == user_config->plug[i].task[j].minute rtc_time.sec == 0 && rtc_time.min == user_config->plug[i].task[j].minute
&& rtc_time.hr == user_config->plug[i].task[j].hour && rtc_time.hr == user_config->plug[i].task[j].hour

View File

@@ -13,7 +13,7 @@ mico_queue_t udp_msg_send_queue = NULL;
typedef struct typedef struct
{ {
uint32_t datalen; uint32_t datalen;
uint8_t 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 udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_len);
@@ -49,7 +49,7 @@ void udp_thread(void *arg)
p_udp_send_msg_t p_send_msg = NULL; p_udp_send_msg_t p_send_msg = NULL;
int msg_send_event_fd = -1; int msg_send_event_fd = -1;
char ip_address[16]; char ip_address[16];
uint8_t *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(&udp_msg_send_queue, "uqp_msg_send_queue", sizeof(p_udp_send_msg_t),
@@ -125,7 +125,6 @@ void udp_thread(void *arg)
static OSStatus udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_len) static OSStatus udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_len)
{ {
OSStatus err = kUnknownErr; OSStatus err = kUnknownErr;
int ret = 0;
require(msg_len && msg, exit); require(msg_len && msg, exit);
@@ -139,7 +138,7 @@ static OSStatus udp_msg_send(int socket, const unsigned char* msg, uint32_t msg_
/*the receiver should bind at port=20000*/ /*the receiver should bind at port=20000*/
sendto(socket, msg, msg_len, 0, (struct sockaddr *) &addr, sizeof(addr)); sendto(socket, msg, msg_len, 0, (struct sockaddr *) &addr, sizeof(addr));
exit: exit:
return err; return err;
} }

View File

@@ -4,6 +4,7 @@
#include "mico_socket.h" #include "mico_socket.h"
#include "user_gpio.h" #include "user_gpio.h"
#include "user_sntp.h" #include "user_sntp.h"
#include "user_function.h"
#define os_log(format, ...) custom_log("WIFI", format, ##__VA_ARGS__) #define os_log(format, ...) custom_log("WIFI", format, ##__VA_ARGS__)
@@ -11,6 +12,7 @@ char wifi_status = WIFI_STATE_NOCONNECT;
mico_timer_t wifi_led_timer; mico_timer_t wifi_led_timer;
/*
static void wifi_connect_sys_config(void) static void wifi_connect_sys_config(void)
{ {
if (strlen(sys_config->micoSystemConfig.ssid) > 0) if (strlen(sys_config->micoSystemConfig.ssid) > 0)
@@ -28,6 +30,7 @@ static void wifi_connect_sys_config(void)
} else } else
wifi_status = WIFI_STATE_FAIL; wifi_status = WIFI_STATE_FAIL;
} }
*/
void wifi_start_easylink() void wifi_start_easylink()
{ {
wifi_status = WIFI_STATE_EASYLINK; wifi_status = WIFI_STATE_EASYLINK;