mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-12 13:08:13 +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;
|
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);
|
||||||
|
|
||||||
|
|||||||
10
TC1/main.h
10
TC1/main.h
@@ -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;
|
||||||
|
|||||||
@@ -76,58 +76,33 @@ void UserMqttTimerFunc(void *arg)
|
|||||||
timer_status++;
|
timer_status++;
|
||||||
switch (timer_status)
|
switch (timer_status)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
UserMqttHassAutoPower();
|
UserMqttHassAutoPower();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
UserMqttHassAuto(0);
|
case 3:
|
||||||
break;
|
case 4:
|
||||||
case 3:
|
case 5:
|
||||||
UserMqttHassAuto(1);
|
case 6:
|
||||||
break;
|
case 7:
|
||||||
case 4:
|
UserMqttHassAuto(timer_status - 2);
|
||||||
UserMqttHassAuto(2);
|
break;
|
||||||
break;
|
case 8:
|
||||||
case 5:
|
case 9:
|
||||||
UserMqttHassAuto(3);
|
case 10:
|
||||||
break;
|
case 11:
|
||||||
case 6:
|
case 12:
|
||||||
UserMqttHassAuto(4);
|
case 13:
|
||||||
break;
|
UserMqttHassAutoName(timer_status - 8);
|
||||||
case 7:
|
break;
|
||||||
UserMqttHassAuto(5);
|
case 14:
|
||||||
break;
|
UserMqttHassAutoPowerName();
|
||||||
case 8:
|
break;
|
||||||
UserMqttHassAutoName(0);
|
case 15:
|
||||||
break;
|
break;
|
||||||
case 9:
|
default:
|
||||||
UserMqttHassAutoName(1);
|
mico_stop_timer(&timer_handle);
|
||||||
break;
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user