1. 新增单双色温的支持 =》 已测试

2. 新增离家模式的支持 => 等待测试
This commit is contained in:
2025-07-03 23:37:14 +08:00
parent 1f57b11676
commit e600ac3f22
8 changed files with 203 additions and 38 deletions

View File

@ -30,7 +30,7 @@ extern "C" {
#define DEVICE_HIVERSION "1.0.0"
/* 设备固件版本号 */
#define FIRMWARE_VER "1.0.3"
#define FIRMWARE_VER "1.0.4"
/* 设备硬件版本号 */
#define HARDWARE_VER "1.0.0"
/* 设备软件版本号 */

View File

@ -24,11 +24,13 @@ extern int myhandle_put_cct(const char* svc_id, const char* payload, unsigned in
extern int myhandle_put_lightMode(const char* svc_id, const char* payload, unsigned int len);
extern int myhandle_put_switch(const char* svc_id, const char* payload, unsigned int len);
extern int myhandle_put_progressSwitch(const char* svc_id, const char* payload, unsigned int len);
extern int myhandle_put_colourMode(const char* svc_id, const char* payload, unsigned int len);
extern int myhandle_get_brightness(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
extern int myhandle_get_cct(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
extern int myhandle_get_lightMode(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
extern int myhandle_get_switch(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
extern int myhandle_get_progressSwitch(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
extern int myhandle_get_colourMode(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
// 声明外部函数
extern int myhandle_put_cmd(const char* svc_id, const char* payload, unsigned int len);
extern int myhandle_get_cmd(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len);
@ -42,9 +44,10 @@ extern int myhandle_get_cmd(const char* svc_id, const char* in, unsigned int in_
static const HILINK_SvcInfo SVC_INFO[] = {
{ "brightness", "brightness" },
{ "cct", "cct" },
{ "mode", "colourMode" },
{ "mode", "lightMode" },
{ "progressSwitch", "progressSwitch" },
{ "switch", "switch" },
{ "switch", "switch" }
#ifdef CONFIG_SUPPORT_HILINK_INDIE_UPGRADE
// { "checkSum", "checkSum" },
#endif
@ -145,6 +148,7 @@ int HILINK_GetSvcInfo(HILINK_SvcInfo *svcInfo[], unsigned int size)
return -1;
}
}
e_printf("HILINK_GetSvcInfo svcNum:%d\r\n", svcNum);
return svcNum;
}
/* AC参数 */
@ -166,6 +170,7 @@ extern int HILINK_HILINK_Printf(const char *format, ...);
typedef struct{
int brightness_brightness;
int cct_colorTemperature;
int colourMode_mode;
int lightMode_mode;
int progressSwitch_fadeTime;
int switch_on;
@ -218,7 +223,8 @@ int handle_get_switch(const char* svc_id, const char* in, unsigned int in_len,ch
HILINK_Printf("%s:%d svcId:%s, *out:%s\r\n",__FUNCTION__ , __LINE__,svc_id, *out);
return 0;
}
// 服务处理信息注册
#ifndef CONFIG_USE_CUSTOMER_SVC_INFO
int handle_put_brightness(const char* svc_id, const char* payload, unsigned int len)
{
@ -268,6 +274,30 @@ int handle_get_cct(const char* svc_id, const char* in, unsigned int in_len, char
return 0;
}
int handle_put_colourMode(const char* svc_id, const char* payload, unsigned int len)
{
cJSON* pJson = cJSON_Parse(payload);
if (!pJson)
return -1;
cJSON* mode_item = cJSON_GetObjectItem(pJson, "mode");
if (mode_item)
g_device_info.colourMode_mode = mode_item->valueint;
HILINK_Printf("%s:%d svcId:%s, payload:%s\r\n", __FUNCTION__, __LINE__, svc_id, payload);
cJSON_Delete(pJson);
return 0;
}
int handle_get_colourMode(const char* svc_id, const char* in, unsigned int in_len, char** out, unsigned int* out_len)
{
*out_len = 64;
*out = (char*)malloc(*out_len);
if (*out == NULL)
return -1;
*out_len = sprintf_s(*out, *out_len, "{\"mode\":%d}", g_device_info.colourMode_mode);
HILINK_Printf("%s:%d svcId:%s, *out:%s\r\n", __FUNCTION__, __LINE__, svc_id, *out);
return 0;
}
int handle_put_lightMode(const char* svc_id, const char* payload, unsigned int len)
{
cJSON* pJson = cJSON_Parse(payload);
@ -315,22 +345,23 @@ int handle_get_progressSwitch(const char* svc_id, const char* in, unsigned int i
HILINK_Printf("%s:%d svcId:%s, *out:%s\r\n", __FUNCTION__, __LINE__, svc_id, *out);
return 0;
}
#ifdef CONFIG_USE_CUSTOMER_SVC_INFO
HANDLE_SVC_INFO g_device_profile[] = {
{"brightness", myhandle_put_brightness, myhandle_get_brightness},
{"cct", myhandle_put_cct, myhandle_get_cct},
{"lightMode", myhandle_put_lightMode, myhandle_get_lightMode},
{"progressSwitch", myhandle_put_progressSwitch, myhandle_get_progressSwitch},
{"switch", myhandle_put_switch, myhandle_get_switch},
};
#else
HANDLE_SVC_INFO g_device_profile[] = {
{"brightness", handle_put_brightness, handle_get_brightness},
{"cct", handle_put_cct, handle_get_cct},
{"colourMode", handle_put_colourMode, handle_get_colourMode},
{"lightMode", handle_put_lightMode, handle_get_lightMode},
{"progressSwitch", handle_put_progressSwitch, handle_get_progressSwitch},
{"switch", handle_put_switch, handle_get_switch},
};
#else
HANDLE_SVC_INFO g_device_profile[] = {
{"brightness", myhandle_put_brightness, myhandle_get_brightness},
{"cct", myhandle_put_cct, myhandle_get_cct},
{"colourMode", myhandle_put_colourMode, myhandle_get_colourMode},
{"lightMode", myhandle_put_lightMode, myhandle_get_lightMode},
{"progressSwitch", myhandle_put_progressSwitch, myhandle_get_progressSwitch},
{"switch", myhandle_put_switch, myhandle_get_switch},
};
#endif // end of CONFIG_USE_CUSTOMER_SVC_INFO
// 服务总数量
int g_device_profile_count = sizeof(g_device_profile) / sizeof(HANDLE_SVC_INFO);
@ -514,7 +545,7 @@ void HILINK_NotifyDevStatus(int status)
/* 设备与云端连接断开,请在此处添加实现 */
#if defined(SUPPORT_MINIMALIST_NETCFG) || defined(SUPPORT_BLE_ANCILLAY_NETCFG)
BLE_CfgNetAdvUpdate(NULL);
// BLE_CfgNetAdvCtrl(0);
BLE_CfgNetAdvCtrl(0);
(void)BLE_CfgNetAdvCtrl(0xFFFFFFFF);
#endif
handle_device_offline();
@ -524,7 +555,7 @@ void HILINK_NotifyDevStatus(int status)
#if defined(SUPPORT_MINIMALIST_NETCFG) || defined(SUPPORT_BLE_ANCILLAY_NETCFG)
BLE_CfgNetAdvUpdate(NULL);
BLE_CfgNetAdvCtrl(0);
// (void)BLE_CfgNetAdvCtrl(0xFFFFFFFF);
(void)BLE_CfgNetAdvCtrl(0xFFFFFFFF);
#endif
/* 设备连接云端成功,请在此处添加实现 */
handle_device_online(); // 处理设备上线