mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-11 20:48:16 +08:00
socket_status[SOCKET_NUM]
This commit is contained in:
14
TC1/main.c
14
TC1/main.c
@@ -40,17 +40,7 @@ void appRestoreDefault_callback(void * const user_config_data, uint32_t size)
|
||||
int i;
|
||||
for (i = 0; i < SOCKET_NUM; i++)
|
||||
{
|
||||
userConfigDefault->socket_configs[i].on = 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);//编码异常
|
||||
userConfigDefault->socket_status[i] = 1;
|
||||
}
|
||||
//mico_system_context_update(sys_config);
|
||||
}
|
||||
@@ -90,7 +80,7 @@ int application_start(void)
|
||||
for (i = 0; i < Relay_NUM; i++)
|
||||
{
|
||||
MicoGpioInitialize(Relay[i], OUTPUT_PUSH_PULL);
|
||||
UserRelaySet(i, user_config->socket_configs[i].on);
|
||||
UserRelaySet(i, user_config->socket_status[i]);
|
||||
}
|
||||
MicoSysLed(0);
|
||||
|
||||
|
||||
10
TC1/main.h
10
TC1/main.h
@@ -11,7 +11,7 @@
|
||||
|
||||
#define ZTC1_NAME "zTC1-%s"
|
||||
|
||||
#define USER_CONFIG_VERSION 3
|
||||
#define USER_CONFIG_VERSION 5
|
||||
#define SETTING_MQTT_STRING_LENGTH_MAX 32 //必须4字节对齐。
|
||||
|
||||
#define SOCKET_NAME_LENGTH 32
|
||||
@@ -32,12 +32,6 @@
|
||||
#define Relay_5 MICO_GPIO_18
|
||||
#define Relay_NUM SOCKET_NUM
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[SOCKET_NAME_LENGTH];
|
||||
char on; //记录当前开关
|
||||
} user_socket_config_t;
|
||||
|
||||
//用户保存参数结构体
|
||||
typedef struct
|
||||
{
|
||||
@@ -46,7 +40,7 @@ typedef struct
|
||||
int mqtt_port; //mqtt service port
|
||||
char mqtt_user[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];
|
||||
WiFiEvent last_wifi_status;
|
||||
} user_config_t;
|
||||
|
||||
@@ -76,58 +76,33 @@ void UserMqttTimerFunc(void *arg)
|
||||
timer_status++;
|
||||
switch (timer_status)
|
||||
{
|
||||
case 1:
|
||||
UserMqttHassAutoPower();
|
||||
break;
|
||||
case 2:
|
||||
UserMqttHassAuto(0);
|
||||
break;
|
||||
case 3:
|
||||
UserMqttHassAuto(1);
|
||||
break;
|
||||
case 4:
|
||||
UserMqttHassAuto(2);
|
||||
break;
|
||||
case 5:
|
||||
UserMqttHassAuto(3);
|
||||
break;
|
||||
case 6:
|
||||
UserMqttHassAuto(4);
|
||||
break;
|
||||
case 7:
|
||||
UserMqttHassAuto(5);
|
||||
break;
|
||||
case 8:
|
||||
UserMqttHassAutoName(0);
|
||||
break;
|
||||
case 9:
|
||||
UserMqttHassAutoName(1);
|
||||
break;
|
||||
case 10:
|
||||
UserMqttHassAutoName(2);
|
||||
break;
|
||||
case 11:
|
||||
UserMqttHassAutoName(3);
|
||||
break;
|
||||
case 12:
|
||||
UserMqttHassAutoName(4);
|
||||
break;
|
||||
case 13:
|
||||
UserMqttHassAutoName(5);
|
||||
break;
|
||||
case 14:
|
||||
UserMqttHassAutoPowerName();
|
||||
break;
|
||||
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;
|
||||
default:
|
||||
mico_stop_timer(&timer_handle);
|
||||
// mico_deinit_timer(&timer_handle);
|
||||
break;
|
||||
case 1:
|
||||
UserMqttHassAutoPower();
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
UserMqttHassAuto(timer_status - 2);
|
||||
break;
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
UserMqttHassAutoName(timer_status - 8);
|
||||
break;
|
||||
case 14:
|
||||
UserMqttHassAutoPowerName();
|
||||
break;
|
||||
case 15:
|
||||
break;
|
||||
default:
|
||||
mico_stop_timer(&timer_handle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -478,7 +453,7 @@ OSStatus UserMqttSendSocketState(char socket_id)
|
||||
if (send_buf != NULL && topic_buf != NULL)
|
||||
{
|
||||
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);
|
||||
}
|
||||
if (send_buf) free(send_buf);
|
||||
@@ -526,7 +501,7 @@ void UserMqttHassAutoName(char socket_id)
|
||||
"\"cmd_t\":\"device/ztc1/set\","
|
||||
"\"pl_on\":\"set socket %s %d 1\","
|
||||
"\"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);
|
||||
}
|
||||
if (send_buf)
|
||||
|
||||
@@ -22,7 +22,7 @@ bool RelayOut(void)
|
||||
int 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;
|
||||
}
|
||||
@@ -33,28 +33,28 @@ bool RelayOut(void)
|
||||
const unsigned char* GetSocketStatus()
|
||||
{
|
||||
sprintf(socket_status, "%d,%d,%d,%d,%d,%d",
|
||||
user_config->socket_configs[0].on,
|
||||
user_config->socket_configs[1].on,
|
||||
user_config->socket_configs[2].on,
|
||||
user_config->socket_configs[3].on,
|
||||
user_config->socket_configs[4].on,
|
||||
user_config->socket_configs[5].on);
|
||||
user_config->socket_status[0],
|
||||
user_config->socket_status[1],
|
||||
user_config->socket_status[2],
|
||||
user_config->socket_status[3],
|
||||
user_config->socket_status[4],
|
||||
user_config->socket_status[5]);
|
||||
return (const unsigned char*)socket_status;
|
||||
}
|
||||
|
||||
void SetSocketStatus(char* socket_status)
|
||||
{
|
||||
sscanf(socket_status, "%d,%d,%d,%d,%d,%d,",
|
||||
(int*)&user_config->socket_configs[0].on,
|
||||
(int*)&user_config->socket_configs[1].on,
|
||||
(int*)&user_config->socket_configs[2].on,
|
||||
(int*)&user_config->socket_configs[3].on,
|
||||
(int*)&user_config->socket_configs[4].on,
|
||||
(int*)&user_config->socket_configs[5].on);
|
||||
(int*)&user_config->socket_status[0],
|
||||
(int*)&user_config->socket_status[1],
|
||||
(int*)&user_config->socket_status[2],
|
||||
(int*)&user_config->socket_status[3],
|
||||
(int*)&user_config->socket_status[4],
|
||||
(int*)&user_config->socket_status[5]);
|
||||
int i = 0;
|
||||
for (i = 0; i < SOCKET_NUM; i++)
|
||||
{
|
||||
UserRelaySet(i, user_config->socket_configs[i].on);
|
||||
UserRelaySet(i, user_config->socket_status[i]);
|
||||
UserMqttSendSocketState(i);
|
||||
}
|
||||
mico_system_context_update(sys_config);
|
||||
@@ -78,7 +78,7 @@ void UserRelaySet(unsigned char i, unsigned char on)
|
||||
MicoGpioOutputLow(relay[i]);
|
||||
}
|
||||
|
||||
user_config->socket_configs[i].on = on;
|
||||
user_config->socket_status[i] = on;
|
||||
|
||||
if (RelayOut())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user