This commit is contained in:
zogodo
2019-09-25 17:10:21 +08:00
parent 21a07a4d97
commit 3f2605cd78
8 changed files with 91 additions and 95 deletions

View File

@@ -13,7 +13,7 @@
char rtc_init = 0; //sntpУʱ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>־λ char rtc_init = 0; //sntp校时成功标志位
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;
@@ -31,7 +31,7 @@ void appRestoreDefault_callback(void * const user_config_data, uint32_t size)
UNUSED_PARAMETER(size); UNUSED_PARAMETER(size);
mico_system_context_get()->micoSystemConfig.name[0] = 1; //<EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʹ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mico_system_context_get()->micoSystemConfig.name[0] = 1; //在下次重启时使用默认名称
mico_system_context_get()->micoSystemConfig.name[1] = 0; mico_system_context_get()->micoSystemConfig.name[1] = 0;
user_config_t* userConfigDefault = user_config_data; user_config_t* userConfigDefault = user_config_data;
@@ -47,7 +47,7 @@ void appRestoreDefault_callback(void * const user_config_data, uint32_t size)
{ {
userConfigDefault->plug[i].on = 1; userConfigDefault->plug[i].on = 1;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-6 //插座名称 插口1-6
userConfigDefault->plug[i].name[0] = 0xe6; userConfigDefault->plug[i].name[0] = 0xe6;
userConfigDefault->plug[i].name[1] = 0x8f; userConfigDefault->plug[i].name[1] = 0x8f;
userConfigDefault->plug[i].name[2] = 0x92; userConfigDefault->plug[i].name[2] = 0x92;
@@ -57,7 +57,7 @@ void appRestoreDefault_callback(void * const user_config_data, uint32_t size)
userConfigDefault->plug[i].name[6] = i + '1'; userConfigDefault->plug[i].name[6] = i + '1';
userConfigDefault->plug[i].name[7] = 0; userConfigDefault->plug[i].name[7] = 0;
// sprintf(userConfigDefault->plug[i].name, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d", i);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // sprintf(userConfigDefault->plug[i].name, "插座%d", i);//编码异常
for (j = 0; j < PLUG_TIME_TASK_NUM; j++) for (j = 0; j < PLUG_TIME_TASK_NUM; j++)
{ {
userConfigDefault->plug[i].task[j].hour = 0; userConfigDefault->plug[i].task[j].hour = 0;
@@ -97,9 +97,9 @@ int application_start(void)
MicoGpioInitialize((mico_gpio_t) Button, INPUT_PULL_UP); MicoGpioInitialize((mico_gpio_t) Button, INPUT_PULL_UP);
if (!MicoGpioInputGet(Button)) if (!MicoGpioInputGet(Button))
{ //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ť״̬ { //开机时按钮状态
os_log("wifi_start_easylink"); os_log("wifi_start_easylink");
wifi_status = WIFI_STATE_NOEASYLINK; //wifi_init<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>easylink wifi_status = WIFI_STATE_NOEASYLINK; //wifi_init中启动easylink
} }
MicoGpioInitialize((mico_gpio_t) Led, OUTPUT_PUSH_PULL); MicoGpioInitialize((mico_gpio_t) Led, OUTPUT_PUSH_PULL);
@@ -120,7 +120,7 @@ int application_start(void)
if (sys_config->micoSystemConfig.name[0] == 1) if (sys_config->micoSystemConfig.name[0] == 1)
{ {
IPStatusTypedef para; IPStatusTypedef para;
os_log("micoWlanGetIPStatus:%d", micoWlanGetIPStatus(&para, Station)); //mac<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0??!!! os_log("micoWlanGetIPStatus:%d", micoWlanGetIPStatus(&para, Station)); //mac读出来全部是0??!!!
strcpy(strMac, para.mac); strcpy(strMac, para.mac);
os_log("result:%s",strMac); os_log("result:%s",strMac);
os_log("result:%s",para.mac); os_log("result:%s",para.mac);
@@ -153,7 +153,7 @@ int application_start(void)
// } // }
// } // }
//sys_config = mico_system_context_init(sizeof(user_config_t)); //<EFBFBD><EFBFBD>ȡFlash<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //sys_config = mico_system_context_init(sizeof(user_config_t)); //获取Flash中的配置
ap_init(); ap_init();
wifi_init(); wifi_init();
user_udp_init(); user_udp_init();
@@ -169,7 +169,7 @@ int application_start(void)
while (1) while (1)
{ {
main_num++; main_num++;
//<EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //发送功率数据
if (power_last != power || main_num>4) if (power_last != power || main_num>4)
{ {
power_last = power; power_last = power;

View File

@@ -12,11 +12,11 @@
#define ZTC1_NAME "zTC1_%02X%02X" #define ZTC1_NAME "zTC1_%02X%02X"
#define USER_CONFIG_VERSION 2 #define USER_CONFIG_VERSION 2
#define SETTING_MQTT_STRING_LENGTH_MAX 32 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20>ֽڶ<D6BD><DAB6> #define SETTING_MQTT_STRING_LENGTH_MAX 32 //必须 4 字节对齐。
#define PLUG_NAME_LENGTH 32 #define PLUG_NAME_LENGTH 32
#define PLUG_NUM 6 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define PLUG_NUM 6 //插座数量
#define PLUG_TIME_TASK_NUM 5 //ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD>鶨ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> #define PLUG_TIME_TASK_NUM 5 //每个插座最多5组定时任务
#define Led MICO_GPIO_5 #define Led MICO_GPIO_5
#define Button MICO_GPIO_23 #define Button MICO_GPIO_23
@@ -35,22 +35,22 @@
typedef struct typedef struct
{ {
char hour; //Сʱ char hour; //小时
char minute; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char minute; //分钟
char repeat; //bit7:һ<EFBFBD><EFBFBD> bit6-0:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>һ char repeat; //bit7:一次 bit6-0:周日-周一
char action; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char action; //动作
char on; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char on; //开关
} user_plug_task_config_t; } user_plug_task_config_t;
typedef struct typedef struct
{ {
char name[PLUG_NAME_LENGTH]; char name[PLUG_NAME_LENGTH];
char on; //<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char on; //记录当前开关
user_plug_task_config_t task[PLUG_TIME_TASK_NUM]; user_plug_task_config_t task[PLUG_TIME_TASK_NUM];
} user_plug_config_t; } user_plug_config_t;
//<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //用户保存参数结构体
typedef struct typedef struct
{ {
char mqtt_ip[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service ip char mqtt_ip[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service ip

View File

@@ -22,7 +22,7 @@ bool json_plug_task_analysis(unsigned char x, unsigned char y, cJSON * pJsonRoot
void user_send(int udp_flag, char *s) void user_send(int udp_flag, char *s)
{ {
if (udp_flag || !user_mqtt_isconnect()) if (udp_flag || !user_mqtt_isconnect())
user_udp_send(s); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> user_udp_send(s); //发送数据
else else
user_mqtt_send(s); user_mqtt_send(s);
} }
@@ -31,8 +31,8 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
{ {
unsigned char i; unsigned char i;
bool update_user_config_flag = false; //<EFBFBD><EFBFBD>־λ,<2C><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> bool update_user_config_flag = false; //标志位,记录最后是否需要更新储存的数据
bool return_flag = true; //Ϊtrueʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>json<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>򲻷<EFBFBD><F2B2BBB7><EFBFBD> bool return_flag = true; //true时返回json结果,否则不返回
cJSON * pJsonRoot = cJSON_Parse(pusrdata); cJSON * pJsonRoot = cJSON_Parse(pusrdata);
if (!pJsonRoot) if (!pJsonRoot)
@@ -41,7 +41,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
return; return;
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>device report(MQTTͬ<EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) //解析UDP命令device report(MQTT同样回复命令)
cJSON *p_cmd = cJSON_GetObjectItem(pJsonRoot, "cmd"); cJSON *p_cmd = cJSON_GetObjectItem(pJsonRoot, "cmd");
if (p_cmd && cJSON_IsString(p_cmd) && strcmp(p_cmd->valuestring, "device report") == 0) if (p_cmd && cJSON_IsString(p_cmd) && strcmp(p_cmd->valuestring, "device report") == 0)
{ {
@@ -57,17 +57,17 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
char *s = cJSON_Print(pRoot); char *s = cJSON_Print(pRoot);
// os_log("pRoot: %s\r\n", s); // os_log("pRoot: %s\r\n", s);
user_send(udp_flag, s); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> user_send(udp_flag, s); //发送数据
free((void *) s); free((void *) s);
cJSON_Delete(pRoot); cJSON_Delete(pRoot);
// cJSON_Delete(p_cmd); // cJSON_Delete(p_cmd);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //以下为解析命令部分
cJSON *p_name = cJSON_GetObjectItem(pJsonRoot, "name"); cJSON *p_name = cJSON_GetObjectItem(pJsonRoot, "name");
cJSON *p_mac = cJSON_GetObjectItem(pJsonRoot, "mac"); cJSON *p_mac = cJSON_GetObjectItem(pJsonRoot, "mac");
//<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //开始正式处理所有命令
if ((p_name && cJSON_IsString(p_name) && strcmp(p_name->valuestring, sys_config->micoSystemConfig.name) == 0) //name if ((p_name && cJSON_IsString(p_name) && strcmp(p_name->valuestring, sys_config->micoSystemConfig.name) == 0) //name
|| (p_mac && cJSON_IsString(p_mac) && strcmp(p_mac->valuestring, strMac) == 0) //mac || (p_mac && cJSON_IsString(p_mac) && strcmp(p_mac->valuestring, strMac) == 0) //mac
) )
@@ -75,7 +75,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
cJSON *json_send = cJSON_CreateObject(); cJSON *json_send = cJSON_CreateObject();
cJSON_AddStringToObject(json_send, "mac", strMac); cJSON_AddStringToObject(json_send, "mac", strMac);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //解析重启命令
// cJSON *p_cmd = cJSON_GetObjectItem(pJsonRoot, "name"); // cJSON *p_cmd = cJSON_GetObjectItem(pJsonRoot, "name");
if(p_cmd && cJSON_IsString(p_cmd) && strcmp(p_cmd->valuestring, "restart") == 0) if(p_cmd && cJSON_IsString(p_cmd) && strcmp(p_cmd->valuestring, "restart") == 0)
{ {
@@ -83,20 +83,20 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
mico_system_power_perform(mico_system_context_get(), eState_Software_Reset); mico_system_power_perform(mico_system_context_get(), eState_Software_Reset);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //解析版本
cJSON *p_version = cJSON_GetObjectItem(pJsonRoot, "version"); cJSON *p_version = cJSON_GetObjectItem(pJsonRoot, "version");
if (p_version) if (p_version)
{ {
os_log("version:%s",VERSION); os_log("version:%s",VERSION);
cJSON_AddStringToObject(json_send, "version", VERSION); cJSON_AddStringToObject(json_send, "version", VERSION);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> //解析运行时间
cJSON *p_total_time = cJSON_GetObjectItem(pJsonRoot, "total_time"); cJSON *p_total_time = cJSON_GetObjectItem(pJsonRoot, "total_time");
if (p_total_time) if (p_total_time)
{ {
cJSON_AddNumberToObject(json_send, "total_time", total_time); cJSON_AddNumberToObject(json_send, "total_time", total_time);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //解析功率
cJSON *p_power = cJSON_GetObjectItem(pJsonRoot, "power"); cJSON *p_power = cJSON_GetObjectItem(pJsonRoot, "power");
if (p_power) if (p_power)
{ {
@@ -109,11 +109,11 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
} }
os_log("power:%d", (int)power); os_log("power:%d", (int)power);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setting----------------------------------------------------------------- //解析主机setting-----------------------------------------------------------------
cJSON *p_setting = cJSON_GetObjectItem(pJsonRoot, "setting"); cJSON *p_setting = cJSON_GetObjectItem(pJsonRoot, "setting");
if (p_setting) if (p_setting)
{ {
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ota //解析ota
cJSON *p_ota = cJSON_GetObjectItem(p_setting, "ota"); cJSON *p_ota = cJSON_GetObjectItem(p_setting, "ota");
if (p_ota) if (p_ota)
{ {
@@ -122,7 +122,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
} }
cJSON *json_setting_send = cJSON_CreateObject(); cJSON *json_setting_send = cJSON_CreateObject();
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/deviceid //设置设备名称/deviceid
cJSON *p_setting_name = cJSON_GetObjectItem(p_setting, "name"); cJSON *p_setting_name = cJSON_GetObjectItem(p_setting, "name");
if (p_setting_name && cJSON_IsString(p_setting_name)) if (p_setting_name && cJSON_IsString(p_setting_name))
{ {
@@ -130,7 +130,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
sprintf(sys_config->micoSystemConfig.name, p_setting_name->valuestring); sprintf(sys_config->micoSystemConfig.name, p_setting_name->valuestring);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt ip //设置mqtt ip
cJSON *p_mqtt_ip = cJSON_GetObjectItem(p_setting, "mqtt_uri"); cJSON *p_mqtt_ip = cJSON_GetObjectItem(p_setting, "mqtt_uri");
if (p_mqtt_ip && cJSON_IsString(p_mqtt_ip)) if (p_mqtt_ip && cJSON_IsString(p_mqtt_ip))
{ {
@@ -138,7 +138,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
sprintf(user_config->mqtt_ip, p_mqtt_ip->valuestring); sprintf(user_config->mqtt_ip, p_mqtt_ip->valuestring);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt port //设置mqtt port
cJSON *p_mqtt_port = cJSON_GetObjectItem(p_setting, "mqtt_port"); cJSON *p_mqtt_port = cJSON_GetObjectItem(p_setting, "mqtt_port");
if (p_mqtt_port && cJSON_IsNumber(p_mqtt_port)) if (p_mqtt_port && cJSON_IsNumber(p_mqtt_port))
{ {
@@ -146,7 +146,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
user_config->mqtt_port = p_mqtt_port->valueint; user_config->mqtt_port = p_mqtt_port->valueint;
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt user //设置mqtt user
cJSON *p_mqtt_user = cJSON_GetObjectItem(p_setting, "mqtt_user"); cJSON *p_mqtt_user = cJSON_GetObjectItem(p_setting, "mqtt_user");
if (p_mqtt_user && cJSON_IsString(p_mqtt_user)) if (p_mqtt_user && cJSON_IsString(p_mqtt_user))
{ {
@@ -154,7 +154,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
sprintf(user_config->mqtt_user, p_mqtt_user->valuestring); sprintf(user_config->mqtt_user, p_mqtt_user->valuestring);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt password //设置mqtt password
cJSON *p_mqtt_password = cJSON_GetObjectItem(p_setting, "mqtt_password"); cJSON *p_mqtt_password = cJSON_GetObjectItem(p_setting, "mqtt_password");
if (p_mqtt_password && cJSON_IsString(p_mqtt_password)) if (p_mqtt_password && cJSON_IsString(p_mqtt_password))
{ {
@@ -162,25 +162,25 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
sprintf(user_config->mqtt_password, p_mqtt_password->valuestring); sprintf(user_config->mqtt_password, p_mqtt_password->valuestring);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //开发返回数据
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ota //返回设备ota
if (p_ota) cJSON_AddStringToObject(json_setting_send, "ota", p_ota->valuestring); if (p_ota) cJSON_AddStringToObject(json_setting_send, "ota", p_ota->valuestring);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/deviceid //返回设备名称/deviceid
if (p_setting_name) cJSON_AddStringToObject(json_setting_send, "name", sys_config->micoSystemConfig.name); if (p_setting_name) cJSON_AddStringToObject(json_setting_send, "name", sys_config->micoSystemConfig.name);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt ip //返回mqtt ip
if (p_mqtt_ip) cJSON_AddStringToObject(json_setting_send, "mqtt_uri", user_config->mqtt_ip); if (p_mqtt_ip) cJSON_AddStringToObject(json_setting_send, "mqtt_uri", user_config->mqtt_ip);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt port //返回mqtt port
if (p_mqtt_port) cJSON_AddNumberToObject(json_setting_send, "mqtt_port", user_config->mqtt_port); if (p_mqtt_port) cJSON_AddNumberToObject(json_setting_send, "mqtt_port", user_config->mqtt_port);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt user //返回mqtt user
if (p_mqtt_user) cJSON_AddStringToObject(json_setting_send, "mqtt_user", user_config->mqtt_user); if (p_mqtt_user) cJSON_AddStringToObject(json_setting_send, "mqtt_user", user_config->mqtt_user);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mqtt password //返回mqtt password
if (p_mqtt_password) cJSON_AddStringToObject(json_setting_send, "mqtt_password", user_config->mqtt_password); if (p_mqtt_password) cJSON_AddStringToObject(json_setting_send, "mqtt_password", user_config->mqtt_password);
cJSON_AddItemToObject(json_send, "setting", json_setting_send); cJSON_AddItemToObject(json_send, "setting", json_setting_send);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>plug----------------------------------------------------------------- //解析plug-----------------------------------------------------------------
for (i = 0; i < PLUG_NUM; i++) for (i = 0; i < PLUG_NUM; i++)
{ {
if (json_plug_analysis(udp_flag, i, pJsonRoot, json_send)) if (json_plug_analysis(udp_flag, i, pJsonRoot, json_send))
@@ -193,7 +193,7 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
{ {
char *json_str = cJSON_Print(json_send); char *json_str = cJSON_Print(json_send);
// os_log("pRoot: %s\r\n", json_str); // os_log("pRoot: %s\r\n", json_str);
user_send(udp_flag, json_str); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> user_send(udp_flag, json_str); //发送数据
free((void *) json_str); free((void *) json_str);
} }
cJSON_Delete(json_send); cJSON_Delete(json_send);
@@ -210,9 +210,9 @@ void user_function_cmd_received(int udp_flag, char* pusrdata)
} }
/* /*
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>json *解析处理定时任务json
*udp_flag:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>udp/mqtt<EFBFBD><EFBFBD>־λ,<2C>˴<EFBFBD><CBB4>޸IJ<DEB8><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ʱ,<2C><>Ҫʵʱ<CAB5><CAB1><EFBFBD>¸<EFBFBD>domoticz *udp_flag:发送udp/mqtt标志位,此处修改插座开关状态时,需要实时更新给domoticz
*x:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *x:插座编号
*/ */
bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend) bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON * pJsonSend)
{ {
@@ -228,7 +228,7 @@ bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON
cJSON *json_plug_send = cJSON_CreateObject(); cJSON *json_plug_send = cJSON_CreateObject();
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>plug on------------------------------------------------------ //解析plug on------------------------------------------------------
if (p_plug) if (p_plug)
{ {
cJSON *p_plug_on = cJSON_GetObjectItem(p_plug, "on"); cJSON *p_plug_on = cJSON_GetObjectItem(p_plug, "on");
@@ -242,12 +242,12 @@ bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON
user_mqtt_send_plug_state(x); user_mqtt_send_plug_state(x);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>plug<EFBFBD><EFBFBD>setting<EFBFBD><EFBFBD>Ŀ---------------------------------------------- //解析plugsetting项目----------------------------------------------
cJSON *p_plug_setting = cJSON_GetObjectItem(p_plug, "setting"); cJSON *p_plug_setting = cJSON_GetObjectItem(p_plug, "setting");
if (p_plug_setting) if (p_plug_setting)
{ {
cJSON *json_plug_setting_send = cJSON_CreateObject(); cJSON *json_plug_setting_send = cJSON_CreateObject();
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>plug<EFBFBD><EFBFBD>setting<EFBFBD><EFBFBD>name---------------------------------------- //解析plugsettingname----------------------------------------
cJSON *p_plug_setting_name = cJSON_GetObjectItem(p_plug_setting, "name"); cJSON *p_plug_setting_name = cJSON_GetObjectItem(p_plug_setting, "name");
if (p_plug_setting_name) if (p_plug_setting_name)
{ {
@@ -260,7 +260,7 @@ bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON
cJSON_AddStringToObject(json_plug_setting_send, "name", user_config->plug[x].name); cJSON_AddStringToObject(json_plug_setting_send, "name", user_config->plug[x].name);
} }
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>plug<EFBFBD><EFBFBD>setting<EFBFBD><EFBFBD>task---------------------------------------- //解析plugsettingtask----------------------------------------
for (i = 0; i < PLUG_TIME_TASK_NUM; i++) for (i = 0; i < PLUG_TIME_TASK_NUM; i++)
{ {
if (json_plug_task_analysis(x, i, p_plug_setting, json_plug_setting_send)) if (json_plug_task_analysis(x, i, p_plug_setting, json_plug_setting_send))
@@ -279,8 +279,8 @@ bool json_plug_analysis(int udp_flag, unsigned char x, cJSON * pJsonRoot, cJSON
} }
/* /*
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>json *解析处理定时任务json
*x:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> y:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *x:插座编号 y:任务编号
*/ */
bool json_plug_task_analysis(unsigned char x, unsigned char y, cJSON * pJsonRoot, cJSON * pJsonSend) bool json_plug_task_analysis(unsigned char x, unsigned char y, cJSON * pJsonRoot, cJSON * pJsonSend)
{ {

View File

@@ -56,9 +56,9 @@ void set_socket_status(char* socket_status)
} }
/*user_relay_set /*user_relay_set
* <EFBFBD><EFBFBD><EFBFBD>ü̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * 设置继电器开关
* i:<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-5 * i:编号 0-5
* on:<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0:<EFBFBD><EFBFBD> 1:<EFBFBD><EFBFBD> * on:开关 0: 1:
*/ */
void user_relay_set(unsigned char i, unsigned char on) void user_relay_set(unsigned char i, unsigned char on)
{ {
@@ -86,8 +86,8 @@ void user_relay_set(unsigned char i, unsigned char on)
} }
/* /*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * 设置所有继电器开关
* y: 0:ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:ȫ<><C8AB><EFBFBD><EFBFBD> * y: 0:全部关 1:全部开
* *
*/ */
void user_relay_set_all(char y) void user_relay_set_all(char y)
@@ -144,12 +144,12 @@ 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 char key_trigger, key_continue;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //按键扫描程序
char 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);
if (key_trigger != 0) key_time = 0; //<EFBFBD>°<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,<2C><><EFBFBD>¿<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ if (key_trigger != 0) key_time = 0; //新按键按下时,重新开始按键计时
if (key_continue != 0) if (key_continue != 0)
{ {
//any button pressed //any button pressed
@@ -181,7 +181,7 @@ static void key_timeout_handler(void* arg)
{ {
//button released //button released
if (key_time < BUTTON_LONG_PRESS_TIME) if (key_time < BUTTON_LONG_PRESS_TIME)
{ //100ms*10=1s <EFBFBD><EFBFBD><EFBFBD><EFBFBD>1sΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> { //100ms*10=1s 大于1s为长按
key_time = 0; key_time = 0;
os_log("button short pressed:%d",key_time); os_log("button short pressed:%d",key_time);
key_short_press(); key_short_press();

View File

@@ -102,7 +102,7 @@ mico_timer_t timer_handle;
static char timer_status = 0; static char timer_status = 0;
void user_mqtt_timer_func(void *arg) void user_mqtt_timer_func(void *arg)
{ {
char* buf1 = malloc(1024); //idx为1位时长度为24 char* buf1 = malloc(1024); //idx涓?浣嶆椂闀垮害涓?4
LinkStatusTypeDef LinkStatus; LinkStatusTypeDef LinkStatus;
micoWlanGetLinkStatus(&LinkStatus); micoWlanGetLinkStatus(&LinkStatus);
@@ -302,8 +302,7 @@ void mqtt_client_thread(mico_thread_arg_t arg)
{ {
isconnect = false; isconnect = false;
mico_rtos_thread_sleep(3); mico_rtos_thread_sleep(3);
if (MQTT_SERVER[0] < 0x20 || MQTT_SERVER[0] > 0x7f || MQTT_SERVER_PORT < 1) continue; //未配置mqtt服务器时不连接 if (MQTT_SERVER[0] < 0x20 || MQTT_SERVER[0] > 0x7f || MQTT_SERVER_PORT < 1) continue; //鏈厤缃甿qtt鏈嶅姟鍣ㄦ椂涓嶈繛鎺?
micoWlanGetLinkStatus(&LinkStatus); micoWlanGetLinkStatus(&LinkStatus);
if (LinkStatus.is_connected != 1) if (LinkStatus.is_connected != 1)
{ {
@@ -344,7 +343,7 @@ void mqtt_client_thread(mico_thread_arg_t arg)
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, user_mqtt_timer_func, &arg);
@@ -503,8 +502,7 @@ OSStatus user_mqtt_send(char *arg)
return user_mqtt_send_topic(topic_state, arg, 0); return user_mqtt_send_topic(topic_state, arg, 0);
} }
//更新ha开关状态 //鏇存柊ha寮€鍏崇姸鎬?OSStatus user_mqtt_send_plug_state(char plug_id)
OSStatus user_mqtt_send_plug_state(char plug_id)
{ {
char *send_buf = NULL; char *send_buf = NULL;
@@ -521,8 +519,7 @@ OSStatus user_mqtt_send_plug_state(char plug_id)
if (topic_buf) free(topic_buf); if (topic_buf) free(topic_buf);
} }
//hass mqtt自动发现数据开关发送 //hass mqtt鑷姩鍙戠幇鏁版嵁寮€鍏冲彂閫?void user_mqtt_hass_auto(char plug_id)
void user_mqtt_hass_auto(char plug_id)
{ {
char *send_buf = NULL; char *send_buf = NULL;
char *topic_buf = NULL; char *topic_buf = NULL;
@@ -569,8 +566,7 @@ void user_mqtt_hass_auto_name(char plug_id)
if (topic_buf) if (topic_buf)
free(topic_buf); free(topic_buf);
} }
//hass mqtt自动发现数据功率发送 //hass mqtt鑷姩鍙戠幇鏁版嵁鍔熺巼鍙戦€?void user_mqtt_hass_auto_power(void)
void user_mqtt_hass_auto_power(void)
{ {
char *send_buf = NULL; char *send_buf = NULL;
char *topic_buf = NULL; char *topic_buf = NULL;

View File

@@ -124,7 +124,7 @@ OSStatus user_rtc_init(void)
void rtc_thread(mico_thread_arg_t arg) void rtc_thread(mico_thread_arg_t arg)
{ {
int i, j; int i, j;
char task_flag[PLUG_NUM] = { -1, -1, -1, -1, -1, -1 }; //<EFBFBD><EFBFBD>¼ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char task_flag[PLUG_NUM] = { -1, -1, -1, -1, -1, -1 }; //记录每个插座哪个任务需要返回数据
OSStatus err = kUnknownErr; OSStatus err = kUnknownErr;
LinkStatusTypeDef LinkStatus; LinkStatusTypeDef LinkStatus;
mico_rtc_time_t rtc_time; mico_rtc_time_t rtc_time;
@@ -133,7 +133,7 @@ void rtc_thread(mico_thread_arg_t arg)
mico_utc_time_t utc_time; mico_utc_time_t utc_time;
mico_utc_time_t utc_time_last = 0; mico_utc_time_t utc_time_last = 0;
while (1) while (1)
{ //<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi<EFBFBD>ſ<EFBFBD>ʼ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> { //上电后连接了wifi才开始走时否则等待连接
micoWlanGetLinkStatus(&LinkStatus); micoWlanGetLinkStatus(&LinkStatus);
if (LinkStatus.is_connected == 1) if (LinkStatus.is_connected == 1)
{ {
@@ -170,7 +170,7 @@ void rtc_thread(mico_thread_arg_t arg)
rtc_time.month = currentTime->tm_mon + 1; rtc_time.month = currentTime->tm_mon + 1;
rtc_time.year = (currentTime->tm_year + 1900) % 100; rtc_time.year = (currentTime->tm_year + 1900) % 100;
// MicoRtcSetTime(&rtc_time); //MicoRtc<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>ʱ! // MicoRtcSetTime(&rtc_time); //MicoRtc不自动走时!
if (rtc_time.sec == 0) if (rtc_time.sec == 0)
os_log("time:20%02d/%02d/%02d %d %02d:%02d:%02d",rtc_time.year,rtc_time.month,rtc_time.date,rtc_time.weekday,rtc_time.hr,rtc_time.min,rtc_time.sec); os_log("time:20%02d/%02d/%02d %d %02d:%02d:%02d",rtc_time.year,rtc_time.month,rtc_time.date,rtc_time.weekday,rtc_time.hr,rtc_time.min,rtc_time.sec);
@@ -184,7 +184,7 @@ void rtc_thread(mico_thread_arg_t arg)
{ {
char repeat = user_config->plug[i].task[j].repeat; char repeat = user_config->plug[i].task[j].repeat;
if ( //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>״̬: <20><>Ϊ0 ʱ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>趨ֵ, <20>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨ֵ if ( //符合条件则改变继电器状态: 秒为0 时分符合设定值, 重复符合设定值
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
&& ((repeat == 0x00) || repeat & (1 << (rtc_time.weekday - 1))) && ((repeat == 0x00) || repeat & (1 << (rtc_time.weekday - 1)))
@@ -207,7 +207,7 @@ void rtc_thread(mico_thread_arg_t arg)
} }
} }
//<EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //更新储存数据 更新定时任务数据
if (update_user_config_flag == 1) if (update_user_config_flag == 1)
{ {
os_log("update_user_config_flag"); os_log("update_user_config_flag");
@@ -247,14 +247,14 @@ void rtc_thread(mico_thread_arg_t arg)
} }
char *json_str = cJSON_Print(json_send); char *json_str = cJSON_Print(json_send);
user_send(false, json_str); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> user_send(false, json_str); //发送数据
free(json_str); free(json_str);
cJSON_Delete(json_send); cJSON_Delete(json_send);
// os_log("cJSON_Delete"); // os_log("cJSON_Delete");
} }
//SNTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿСʱУ׼һ<D7BC><D2BB> //SNTP服务 开机及每小时校准一次
if (rtc_init != 1 || (rtc_time.sec == 0 && rtc_time.min == 0)) if (rtc_init != 1 || (rtc_time.sec == 0 && rtc_time.min == 0))
{ {
micoWlanGetLinkStatus(&LinkStatus); micoWlanGetLinkStatus(&LinkStatus);

View File

@@ -42,7 +42,7 @@ void sntp_init(void)
{ {
struct in_addr ipp;ipp.s_addr=0xd248912c; struct in_addr ipp;ipp.s_addr=0xd248912c;
sntp_set_server_ip_address (0,ipp); sntp_set_server_ip_address (0,ipp);
sntp_start_auto_time_sync (15000, sntp_time_call_back); //ÿСʱУ׼һ<EFBFBD><EFBFBD> sntp_start_auto_time_sync (15000, sntp_time_call_back); //每小时校准一次
mico_rtc_time_t rtc_time; mico_rtc_time_t rtc_time;
MicoRtcGetTime(&rtc_time); MicoRtcGetTime(&rtc_time);

View File

@@ -38,7 +38,7 @@ void wifi_start_easylink()
user_led_set(1); user_led_set(1);
} }
//easylink <EFBFBD><EFBFBD><EFBFBD>ɻص<EFBFBD> //easylink 完成回调
void wifi_easylink_completed_handle(network_InitTypeDef_st *nwkpara, void * arg) void wifi_easylink_completed_handle(network_InitTypeDef_st *nwkpara, void * arg)
{ {
os_log("wifi_easylink_wps_completed_handle:"); os_log("wifi_easylink_wps_completed_handle:");
@@ -51,7 +51,7 @@ void wifi_easylink_completed_handle(network_InitTypeDef_st *nwkpara, void * arg)
os_log("ssid:\"%s\",\"%s\"",nwkpara->wifi_ssid,nwkpara->wifi_key); os_log("ssid:\"%s\",\"%s\"",nwkpara->wifi_ssid,nwkpara->wifi_key);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //保存wifi及密码
strcpy(sys_config->micoSystemConfig.ssid, nwkpara->wifi_ssid); strcpy(sys_config->micoSystemConfig.ssid, nwkpara->wifi_ssid);
strcpy(sys_config->micoSystemConfig.user_key, nwkpara->wifi_key); strcpy(sys_config->micoSystemConfig.user_key, nwkpara->wifi_key);
sys_config->micoSystemConfig.user_keyLength = strlen(nwkpara->wifi_key); sys_config->micoSystemConfig.user_keyLength = strlen(nwkpara->wifi_key);
@@ -62,26 +62,26 @@ void wifi_easylink_completed_handle(network_InitTypeDef_st *nwkpara, void * arg)
micoWlanStopEasyLink(); micoWlanStopEasyLink();
} }
//wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>ȡ<EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD>ַ <20>ص<EFBFBD> //wifi已连接获取到IP地址 回调
static void wifi_get_ip_callback(IPStatusTypedef *pnet, void * arg) static void wifi_get_ip_callback(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\"}"); user_function_cmd_received(1,"{\"cmd\":\"device report\"}");
} }
//wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD>ı<EFBFBD><EFBFBD>ص<EFBFBD> //wifi连接状态改变回调
static void wifi_status_callback(WiFiEvent status, void *arg) static void wifi_status_callback(WiFiEvent status, void *arg)
{ {
if (status == NOTIFY_STATION_UP) //wifi<EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD> if (status == NOTIFY_STATION_UP) //wifi连接成功
{ {
//wifi_status = WIFI_STATE_CONNECTED; //wifi_status = WIFI_STATE_CONNECTED;
} else if (status == NOTIFY_STATION_DOWN) //wifi<EFBFBD>Ͽ<EFBFBD> } else if (status == NOTIFY_STATION_DOWN) //wifi断开
{ {
wifi_status = WIFI_STATE_NOCONNECT; wifi_status = WIFI_STATE_NOCONNECT;
if (!mico_rtos_is_timer_running(&wifi_led_timer)) mico_rtos_start_timer(&wifi_led_timer); if (!mico_rtos_is_timer_running(&wifi_led_timer)) mico_rtos_start_timer(&wifi_led_timer);
} }
} }
//100ms<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> //100ms定时器回调
static void wifi_led_timer_callback(void* arg) static void wifi_led_timer_callback(void* arg)
{ {
static unsigned int num = 0; static unsigned int num = 0;
@@ -124,7 +124,7 @@ static void wifi_led_timer_callback(void* arg)
void wifi_connect(char* wifi_ssid, char* wifi_key) void wifi_connect(char* wifi_ssid, char* wifi_key)
{ {
//wifi<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><EFBFBD> //wifi配置初始化
network_InitTypeDef_st wNetConfig; network_InitTypeDef_st wNetConfig;
memset(&wNetConfig, 0, sizeof(network_InitTypeDef_st)); memset(&wNetConfig, 0, sizeof(network_InitTypeDef_st));
@@ -135,7 +135,7 @@ void wifi_connect(char* wifi_ssid, char* wifi_key)
wNetConfig.wifi_retry_interval = 6000; wNetConfig.wifi_retry_interval = 6000;
micoWlanStart(&wNetConfig); micoWlanStart(&wNetConfig);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Flash //保存wifi及密码到Flash
strcpy(sys_config->micoSystemConfig.ssid, wifi_ssid); strcpy(sys_config->micoSystemConfig.ssid, wifi_ssid);
strcpy(sys_config->micoSystemConfig.user_key, wifi_key); strcpy(sys_config->micoSystemConfig.user_key, wifi_key);
sys_config->micoSystemConfig.user_keyLength = strlen(wifi_key); sys_config->micoSystemConfig.user_keyLength = strlen(wifi_key);
@@ -145,16 +145,16 @@ void wifi_connect(char* wifi_ssid, char* wifi_key)
void wifi_init(void) void wifi_init(void)
{ {
//wifi״̬<EFBFBD><EFBFBD>led<EFBFBD><EFBFBD>˸<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD> //wifi状态下led闪烁定时器初始化
mico_rtos_init_timer(&wifi_led_timer, 100, (void *) wifi_led_timer_callback, NULL); mico_rtos_init_timer(&wifi_led_timer, 100, (void *) wifi_led_timer_callback, NULL);
//easylink <EFBFBD><EFBFBD><EFBFBD>ɻص<EFBFBD> //easylink 完成回调
mico_system_notify_register(mico_notify_EASYLINK_WPS_COMPLETED, (void *) wifi_easylink_completed_handle, NULL); mico_system_notify_register(mico_notify_EASYLINK_WPS_COMPLETED, (void *) wifi_easylink_completed_handle, NULL);
//wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>ȡ<EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD>ַ <20>ص<EFBFBD> //wifi已连接获取到IP地址 回调
mico_system_notify_register(mico_notify_DHCP_COMPLETED, (void *) wifi_get_ip_callback, NULL); mico_system_notify_register(mico_notify_DHCP_COMPLETED, (void *) wifi_get_ip_callback, NULL);
//wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD>ı<EFBFBD><EFBFBD>ص<EFBFBD> //wifi连接状态改变回调
mico_system_notify_register(mico_notify_WIFI_STATUS_CHANGED, (void*) wifi_status_callback, NULL); mico_system_notify_register(mico_notify_WIFI_STATUS_CHANGED, (void*) wifi_status_callback, NULL);
//sntp_init(); //sntp_init();
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi<EFBFBD><EFBFBD><EFBFBD><EFBFBD> //启动定时器开始进行wifi连接
if (!mico_rtos_is_timer_running(&wifi_led_timer)) mico_rtos_start_timer(&wifi_led_timer); if (!mico_rtos_is_timer_running(&wifi_led_timer)) mico_rtos_start_timer(&wifi_led_timer);
IPStatusTypedef para; IPStatusTypedef para;