socket_status[SOCKET_NUM]

This commit is contained in:
zogodo
2020-02-17 16:57:55 +08:00
parent 5f800d131d
commit 651e8f25c4
4 changed files with 48 additions and 89 deletions

View File

@@ -40,17 +40,7 @@ void appRestoreDefault_callback(void * const user_config_data, uint32_t size)
int i; int i;
for (i = 0; i < SOCKET_NUM; i++) for (i = 0; i < SOCKET_NUM; i++)
{ {
userConfigDefault->socket_configs[i].on = 1; userConfigDefault->socket_status[i] = 1;
//插座名称 插口1-6
userConfigDefault->socket_configs[i].name[0] = 0xe6;
userConfigDefault->socket_configs[i].name[1] = 0x8f;
userConfigDefault->socket_configs[i].name[2] = 0x92;
userConfigDefault->socket_configs[i].name[3] = 0xe5;
userConfigDefault->socket_configs[i].name[4] = 0x8f;
userConfigDefault->socket_configs[i].name[5] = 0xa3;
userConfigDefault->socket_configs[i].name[6] = i + '1';
userConfigDefault->socket_configs[i].name[7] = 0;
//sprintf(userConfigDefault->socket[i].name, "插座%d", i);//编码异常
} }
//mico_system_context_update(sys_config); //mico_system_context_update(sys_config);
} }
@@ -90,7 +80,7 @@ int application_start(void)
for (i = 0; i < Relay_NUM; i++) for (i = 0; i < Relay_NUM; i++)
{ {
MicoGpioInitialize(Relay[i], OUTPUT_PUSH_PULL); MicoGpioInitialize(Relay[i], OUTPUT_PUSH_PULL);
UserRelaySet(i, user_config->socket_configs[i].on); UserRelaySet(i, user_config->socket_status[i]);
} }
MicoSysLed(0); MicoSysLed(0);

View File

@@ -11,7 +11,7 @@
#define ZTC1_NAME "zTC1-%s" #define ZTC1_NAME "zTC1-%s"
#define USER_CONFIG_VERSION 3 #define USER_CONFIG_VERSION 5
#define SETTING_MQTT_STRING_LENGTH_MAX 32 //必须4字节对齐。 #define SETTING_MQTT_STRING_LENGTH_MAX 32 //必须4字节对齐。
#define SOCKET_NAME_LENGTH 32 #define SOCKET_NAME_LENGTH 32
@@ -32,12 +32,6 @@
#define Relay_5 MICO_GPIO_18 #define Relay_5 MICO_GPIO_18
#define Relay_NUM SOCKET_NUM #define Relay_NUM SOCKET_NUM
typedef struct
{
char name[SOCKET_NAME_LENGTH];
char on; //记录当前开关
} user_socket_config_t;
//用户保存参数结构体 //用户保存参数结构体
typedef struct typedef struct
{ {
@@ -46,7 +40,7 @@ typedef struct
int mqtt_port; //mqtt service port int mqtt_port; //mqtt service port
char mqtt_user[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service user char mqtt_user[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service user
char mqtt_password[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service user char mqtt_password[SETTING_MQTT_STRING_LENGTH_MAX]; //mqtt service user
user_socket_config_t socket_configs[SOCKET_NUM]; char socket_status[SOCKET_NUM]; //记录当前开关
char user[maxNameLen]; char user[maxNameLen];
WiFiEvent last_wifi_status; WiFiEvent last_wifi_status;
} user_config_t; } user_config_t;

View File

@@ -80,53 +80,28 @@ void UserMqttTimerFunc(void *arg)
UserMqttHassAutoPower(); UserMqttHassAutoPower();
break; break;
case 2: case 2:
UserMqttHassAuto(0);
break;
case 3: case 3:
UserMqttHassAuto(1);
break;
case 4: case 4:
UserMqttHassAuto(2);
break;
case 5: case 5:
UserMqttHassAuto(3);
break;
case 6: case 6:
UserMqttHassAuto(4);
break;
case 7: case 7:
UserMqttHassAuto(5); UserMqttHassAuto(timer_status - 2);
break; break;
case 8: case 8:
UserMqttHassAutoName(0);
break;
case 9: case 9:
UserMqttHassAutoName(1);
break;
case 10: case 10:
UserMqttHassAutoName(2);
break;
case 11: case 11:
UserMqttHassAutoName(3);
break;
case 12: case 12:
UserMqttHassAutoName(4);
break;
case 13: case 13:
UserMqttHassAutoName(5); UserMqttHassAutoName(timer_status - 8);
break; break;
case 14: case 14:
UserMqttHassAutoPowerName(); UserMqttHassAutoPowerName();
break; break;
case 15: case 15:
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}}}", str_mac);
//UserFunctionCmdReceived(0, buf1);
free(buf1);
break; break;
default: default:
mico_stop_timer(&timer_handle); mico_stop_timer(&timer_handle);
// mico_deinit_timer(&timer_handle);
break; break;
} }
} }
@@ -478,7 +453,7 @@ OSStatus UserMqttSendSocketState(char socket_id)
if (send_buf != NULL && topic_buf != NULL) if (send_buf != NULL && topic_buf != NULL)
{ {
sprintf(topic_buf, "homeassistant/switch/%s/socket_%d/state", str_mac, (int)socket_id); sprintf(topic_buf, "homeassistant/switch/%s/socket_%d/state", str_mac, (int)socket_id);
sprintf(send_buf, "set socket %s %d %d", str_mac, socket_id, (int)user_config->socket_configs[(int)socket_id].on); sprintf(send_buf, "set socket %s %d %d", str_mac, socket_id, (int)user_config->socket_status[(int)socket_id]);
oss_status = UserMqttSendTopic(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);
@@ -526,7 +501,7 @@ void UserMqttHassAutoName(char socket_id)
"\"cmd_t\":\"device/ztc1/set\"," "\"cmd_t\":\"device/ztc1/set\","
"\"pl_on\":\"set socket %s %d 1\"," "\"pl_on\":\"set socket %s %d 1\","
"\"pl_off\":\"set socket %s %d 0\"}", "\"pl_off\":\"set socket %s %d 0\"}",
user_config->socket_configs[(int)socket_id].name, str_mac, socket_id, str_mac, socket_id, str_mac, socket_id); "SSS", str_mac, socket_id, str_mac, socket_id, str_mac, socket_id);
UserMqttSendTopic(topic_buf, send_buf, 0); UserMqttSendTopic(topic_buf, send_buf, 0);
} }
if (send_buf) if (send_buf)

View File

@@ -22,7 +22,7 @@ bool RelayOut(void)
int i; int i;
for (i = 0; i < SOCKET_NUM; i++) for (i = 0; i < SOCKET_NUM; i++)
{ {
if (user_config->socket_configs[i].on != 0) if (user_config->socket_status[i] != 0)
{ {
return true; return true;
} }
@@ -33,28 +33,28 @@ bool RelayOut(void)
const unsigned char* GetSocketStatus() const unsigned char* GetSocketStatus()
{ {
sprintf(socket_status, "%d,%d,%d,%d,%d,%d", sprintf(socket_status, "%d,%d,%d,%d,%d,%d",
user_config->socket_configs[0].on, user_config->socket_status[0],
user_config->socket_configs[1].on, user_config->socket_status[1],
user_config->socket_configs[2].on, user_config->socket_status[2],
user_config->socket_configs[3].on, user_config->socket_status[3],
user_config->socket_configs[4].on, user_config->socket_status[4],
user_config->socket_configs[5].on); user_config->socket_status[5]);
return (const unsigned char*)socket_status; return (const unsigned char*)socket_status;
} }
void SetSocketStatus(char* socket_status) void SetSocketStatus(char* socket_status)
{ {
sscanf(socket_status, "%d,%d,%d,%d,%d,%d,", sscanf(socket_status, "%d,%d,%d,%d,%d,%d,",
(int*)&user_config->socket_configs[0].on, (int*)&user_config->socket_status[0],
(int*)&user_config->socket_configs[1].on, (int*)&user_config->socket_status[1],
(int*)&user_config->socket_configs[2].on, (int*)&user_config->socket_status[2],
(int*)&user_config->socket_configs[3].on, (int*)&user_config->socket_status[3],
(int*)&user_config->socket_configs[4].on, (int*)&user_config->socket_status[4],
(int*)&user_config->socket_configs[5].on); (int*)&user_config->socket_status[5]);
int i = 0; int i = 0;
for (i = 0; i < SOCKET_NUM; i++) for (i = 0; i < SOCKET_NUM; i++)
{ {
UserRelaySet(i, user_config->socket_configs[i].on); UserRelaySet(i, user_config->socket_status[i]);
UserMqttSendSocketState(i); UserMqttSendSocketState(i);
} }
mico_system_context_update(sys_config); mico_system_context_update(sys_config);
@@ -78,7 +78,7 @@ void UserRelaySet(unsigned char i, unsigned char on)
MicoGpioOutputLow(relay[i]); MicoGpioOutputLow(relay[i]);
} }
user_config->socket_configs[i].on = on; user_config->socket_status[i] = on;
if (RelayOut()) if (RelayOut())
{ {