Commit 7b21e73c authored by 尹佳钦's avatar 尹佳钦

1108代码合并

parent fd31b751
This diff is collapsed.
...@@ -374,6 +374,22 @@ int kk_data_handle(cJSON *json,int sockfd) ...@@ -374,6 +374,22 @@ int kk_data_handle(cJSON *json,int sockfd)
kk_zb_devs_hw_ack(sockfd,conditions); kk_zb_devs_hw_ack(sockfd,conditions);
}else if(strcmp(opcode->valuestring,GET_HISTORY_ALARM_LOG) == 0){ }else if(strcmp(opcode->valuestring,GET_HISTORY_ALARM_LOG) == 0){
kk_handle_get_history_info(); kk_handle_get_history_info();
}else if(strcmp(opcode->valuestring,"SOUND_VAL") == 0){
arg = cJSON_GetObjectItem(json, ARG_STRING);
int val = atoi(arg->valuestring);
if(val>100){
val = 100;
}else if(val<0){
val = 0;
}
}else if(strcmp(opcode->valuestring,"SOUND_SWITCH") == 0){
arg = cJSON_GetObjectItem(json, ARG_STRING);
if(strcmp(arg->valuestring,"on")){
}else if(strcmp(arg->valuestring,"off")){
}
}else if(strcmp(opcode->valuestring,DEL_HISTORY_ALARM_LOG) == 0){ }else if(strcmp(opcode->valuestring,DEL_HISTORY_ALARM_LOG) == 0){
cJSON *key = cJSON_GetObjectItem(json, "arg"); cJSON *key = cJSON_GetObjectItem(json, "arg");
if(key != NULL){ if(key != NULL){
...@@ -495,8 +511,19 @@ int is_arming_status_notify(cJSON *payload) ...@@ -495,8 +511,19 @@ int is_arming_status_notify(cJSON *payload)
return -1; return -1;
} }
static void kk_dev_node_onoffline_handle(const char *deviceCode,int online)
{
kk_map_dev_node_t *node = NULL;
if(kk_map_dev_search_by_deviceCode(deviceCode,&node) != 0){
return ;
}
node->online_status = (online==1)?1:0;
}
static int kk_device_onoffline_handle(cJSON *payload,int online) static int kk_device_onoffline_handle(cJSON *payload,int online)
{ {
if(payload == NULL){ if(payload == NULL){
return -1; return -1;
} }
...@@ -504,6 +531,9 @@ static int kk_device_onoffline_handle(cJSON *payload,int online) ...@@ -504,6 +531,9 @@ static int kk_device_onoffline_handle(cJSON *payload,int online)
if(params == NULL) return -1; if(params == NULL) return -1;
cJSON *deviceCode = cJSON_GetObjectItem(params, "deviceCode"); cJSON *deviceCode = cJSON_GetObjectItem(params, "deviceCode");
if(deviceCode == NULL) return -1; if(deviceCode == NULL) return -1;
kk_dev_node_onoffline_handle(deviceCode->valuestring,online);
cJSON *hw_info = kk_zb_dev_hw_info_build_by_deviceCode(0,deviceCode->valuestring,online); cJSON *hw_info = kk_zb_dev_hw_info_build_by_deviceCode(0,deviceCode->valuestring,online);
cJSON *root; cJSON *root;
cJSON *array = cJSON_CreateArray(); cJSON *array = cJSON_CreateArray();
...@@ -515,6 +545,9 @@ static int kk_device_onoffline_handle(cJSON *payload,int online) ...@@ -515,6 +545,9 @@ static int kk_device_onoffline_handle(cJSON *payload,int online)
cJSON_AddItemToObject(root, "arg", array); cJSON_AddItemToObject(root, "arg", array);
send_msg_to_module(root); send_msg_to_module(root);
cJSON_Delete(root); cJSON_Delete(root);
return 0; return 0;
} }
static int kk_del_historyalarm_handle(cJSON *payload) static int kk_del_historyalarm_handle(cJSON *payload)
......
...@@ -141,7 +141,7 @@ static kk_map_dev_node_t *kk_map_dev_node_create(const char *deviceCode,const ch ...@@ -141,7 +141,7 @@ static kk_map_dev_node_t *kk_map_dev_node_create(const char *deviceCode,const ch
memcpy(node->deviceCode,deviceCode,strlen(deviceCode)); memcpy(node->deviceCode,deviceCode,strlen(deviceCode));
memcpy(node->productCode,productCode,strlen(productCode)); memcpy(node->productCode,productCode,strlen(productCode));
node->online_status = (strcmp(onlineStatus,"1")==0)?1:0; node->online_status = (strcmp(onlineStatus,"1")==0)?1:0;
debug_log(LOG_ALERT_LEVEL,"[add node]node->deviceCode=%s\n",node->deviceCode); debug_log(LOG_ALERT_LEVEL,"[add node]node->deviceCode=%s,node->online_status=%d\n",node->deviceCode,node->online_status);
memcpy(node->opearteType,optype->valuestring,strlen(optype->valuestring)); memcpy(node->opearteType,optype->valuestring,strlen(optype->valuestring));
node->channelNum = channel->valueint; node->channelNum = channel->valueint;
......
...@@ -157,6 +157,10 @@ int kk_sync_timer_is_running(void) ...@@ -157,6 +157,10 @@ int kk_sync_timer_is_running(void)
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
int ret = 0; int ret = 0;
......
This diff is collapsed.
#ifndef __KK_LAN_SYNC_H #ifndef __KK_LAN_SYNC_H
#define __KK_LAN_SYNC_H #define __KK_LAN_SYNC_H
#include "cJSON.h" #include "cJSON.h"
#define MAX_AC_GW_AIR_NUM 5
#define AIR_AC_INDOOR_ID_SIZE 8 #define MAX_AC_INDOOR_AIR_NUM 16
#define AIR_AC_INDOOR_ROOM_ID_SIZE 24
#define AIR_AC_INDOOR_NAME_SIZE 32 #define AIR_AC_INDOOR_ID_SIZE 8
#define AIR_AC_INDOOR_ADDR_SIZE 8 #define AIR_AC_INDOOR_ROOM_ID_SIZE 24
#define AIR_AC_INDOOR_NAME_SIZE 32
#define AIR_AC_INDOOR_ADDR_SIZE 8
typedef struct{
char *floor_id;
char *room_id; typedef struct{
char *room_icon; char *floor_id;
char *room_name; char *room_id;
char *room_status; char *room_icon;
}SYN_ROOM_ITEM; char *room_name;
char *room_status;
}SYN_ROOM_ITEM;
typedef struct {
char *ui_area;
char *ui_name; typedef struct {
char *delay; char *ui_area;
int nodeid; char *ui_name;
char *operate_type; char *delay;
char *operation; int nodeid;
char *ui_room_id; char *operate_type;
}SYN_SCENE_ACTION; char *operation;
char *ui_room_id;
typedef struct{ }SYN_SCENE_ACTION;
char *scene_id;
char *name; typedef struct{
char *pannel_id; char *scene_id;
char *room_id; char *name;
char *time; char *pannel_id;
char *week; char *room_id;
char *scenetype; char *time;
SYN_SCENE_ACTION *act; char *week;
int act_num; char *scenetype;
}SYN_SCENE_ITEM; SYN_SCENE_ACTION *act;
int act_num;
}SYN_SCENE_ITEM;
cJSON *kk_get_raw_sync_data(cJSON *payload);
cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *payload); typedef struct{
cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data); int epNum;
int kk_sync_devices_to_sdk(cJSON *root,cJSON *data); int online;
int kk_sync_devices_status_to_sdk(cJSON *root); int PowerSwitch;
double Temperature;
int kk_create_syncinfo_to_sdk(cJSON *payload,int push); int WindSpeed;
int WorkMode;
int kk_send_indoorAir_status(cJSON *info,const char *deviceCode); }INDOOR_AIR_STATUS;
cJSON * val_conver_new2old(cJSON *newccuItem,cJSON *oldccuItem,int syn_type); typedef struct{
char deviceCode[PRODUCT_CODE_LEN];
INDOOR_AIR_STATUS status[MAX_AC_INDOOR_AIR_NUM];
}INDOOR_AIR_DEV;
cJSON *kk_get_raw_sync_data(cJSON *payload);
cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *payload);
cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data);
#endif int kk_sync_devices_to_sdk(cJSON *root,cJSON *data);
int kk_sync_devices_status_to_sdk(cJSON *root);
int kk_create_syncinfo_to_sdk(cJSON *payload,int push);
int kk_send_indoorAir_status(cJSON *info,const char *deviceCode);
cJSON * val_conver_new2old(cJSON *newccuItem,cJSON *oldccuItem,int syn_type);
int indoor_airstatus_table_insert_item(const char *deviceCode,int epNum,int online,int PowerSwitch,double Temperature,int WindSpeed,int WorkMode);
INDOOR_AIR_STATUS *indoor_airstatus_table_find_item(const char *deviceCode,int epNum);
int indoor_airstatus_table_delete_item(const char *deviceCode);
#endif
This diff is collapsed.
#ifndef _KK_LAN_VOICE_PANEL_H #ifndef _KK_LAN_VOICE_PANEL_H
#define _KK_LAN_VOICE_PANEL_H #define _KK_LAN_VOICE_PANEL_H
int kk_voice_panel_init(int argc, char* argv[]); int kk_voice_panel_init(int argc, char* argv[]);
#define GET_8009_SNAPSHOOT_STATE 0
#define SET_8009_SYSTEM 1
#define START_8009_CONFIG_FILE_UPDATE 2
#define UPDATING_8009_CONFIG_FILE_INFO 3
#define STOP_8009_CONFIG_FILE_UPDATE 4
#define GET_8009_CONFIG_FILE_INFO 5
#define KK_VOICE_OTA_MTU 128 void kk_vp_set_config_file_version(int ver);
int kk_vp_config_file_info_check(int f_ver,int f_size,int crc32);
void kk_vp_set_state_machine(int state);
void kk_vp_set_config_file_version(int ver);
int kk_vp_config_file_info_check(int f_ver,int f_size,int crc32); void kk_vp_update_result_check(uint8_t status,uint32_t f_ver);
void kk_vp_update_result_check(uint8_t status,uint32_t f_ver);
void kk_vp_set_config_file_version(int ver); void kk_vp_set_config_file_version(int ver);
void kk_vp_cfg_info_check(uint32_t f_ver,uint32_t f_size,uint32_t crc32); void kk_vp_cfg_info_check(uint32_t f_ver,uint32_t f_size,uint32_t crc32);
void kk_vp_cfg_info_set(uint32_t f_ver,uint32_t f_size,uint32_t crc32); void kk_vp_cfg_info_set(uint32_t f_ver,uint32_t f_size,uint32_t crc32);
void kk_vp_set_updateFlag(int flag);
void kk_voice_ota_mtu_set(uint16_t mtu);
int kk_voice_exit_factory_mode(void);
#endif void voice_uart_lock(void);
void voice_uart_unlock(void);
void kk_voice_ota_start(char *in);
int kk_voice_exit_factory_mode(void);
void kk_voice_ota_mtu_set(uint16_t mtu);
void kk_voice_update_config_file(void);
void kk_voice_reset_ver_flag(void);
void kk_get_voice_version(void);
#endif
This diff is collapsed.
...@@ -560,7 +560,9 @@ int kk_lan_device_delete_notify(cJSON *payload) ...@@ -560,7 +560,9 @@ int kk_lan_device_delete_notify(cJSON *payload)
return -1; return -1;
} }
indoor_airstatus_table_delete_item(deviceCode->valuestring);
_kk_lan_delete_device(deviceCode->valuestring); _kk_lan_delete_device(deviceCode->valuestring);
return 0; return 0;
} }
......
This diff is collapsed.
This diff is collapsed.
#ifndef _KK_VOICE_PANEL_HANDLE_H #ifndef _KK_VOICE_PANEL_HANDLE_H
#define _KK_VOICE_PANEL_HANDLE_H #define _KK_VOICE_PANEL_HANDLE_H
#include "uart_proto.h" #include "uart_proto.h"
#include "kk_lan_voice_panel.h" #include "kk_lan_voice_panel.h"
#include "kk_voice_panel_cfg.h" #include "kk_voice_panel_cfg.h"
#define VP_VP_CONFIG_FILE_DIR "/etc/smarthome" #define VP_VP_CONFIG_FILE_DIR "/etc/smarthome"
#define VP_CONFIG_FILE "/etc/smarthome/voice_data.json" #define VP_CONFIG_FILE "/etc/smarthome/voice_data.json"
#define VP_CONFIG_FILE_MD5 "/data/kk/voice_data.MD5" #define VP_CONFIG_FILE_MD5 "/data/kk/voice_data.MD5"
#define VP_CONFIG_FILE_TAR_GZ "/data/kk/voice_data.tar.gz" #define VP_CONFIG_FILE_TAR_GZ "/data/kk/voice_data.tar.gz"
#define VP_OTA_FILE_BZIP "/data/kk/kk_voice.bzip" #define VP_OTA_FILE_BZIP "/data/kk/kk_voice.bzip"
#define VP_SCENE_ID_FILE "/data/kk/scene_id_map.json" #define VP_SCENE_ID_FILE "/data/kk/scene_id_map.json"
#define OPCODE_8009_SNAPSHOOT 0x1000 #define OPCODE_8009_SNAPSHOOT 0x1000
#define OPCODE_SNAPSHOOT 0x1001 #define OPCODE_SNAPSHOOT 0x1001
#define OPCODE_SCENE_ID_NOTIFY 0x1003 #define OPCODE_SCENE_ID_NOTIFY 0x1003
#define OPCODE_VOICE_CONTROL 0x1008 #define OPCODE_VOICE_CONTROL 0x1008
#define OPCODE_SYSTEM_TIME_SET 0x1009 #define OPCODE_SYSTEM_TIME_SET 0x1009
#define OPCODE_SYSTEM_TIME_GET 0x100A #define OPCODE_SYSTEM_TIME_GET 0x100A
#define OPCODE_ACTION_NOTIFY 0x100B #define OPCODE_ACTION_NOTIFY 0x100B
#define OPCODE_CONFIG_FILE_UPDATE_NOTIFY 0x100C #define OPCODE_CONFIG_FILE_UPDATE_NOTIFY 0x100C
#define OPCODE_CONFIG_DATA_REQUEST 0x100D #define OPCODE_CONFIG_DATA_REQUEST 0x100D
#define OPCODE_CONFIG_FILE_UPDATE_STOP 0x100E #define OPCODE_CONFIG_FILE_UPDATE_STOP 0x100E
#define OPCODE_CONFIG_FILE_INFO_GET 0x100F #define OPCODE_CONFIG_FILE_INFO_GET 0x100F
#define OPCODE_CONFIG_FILE_UPDATE_STATUS 0x1010 #define OPCODE_CONFIG_FILE_UPDATE_STATUS 0x1010
#define OPCODE_VOICE_CONTROL_NOTIFY 0x1022 #define OPCODE_VOICE_CONTROL_NOTIFY 0x1022
#define OPCODE_VOICE_SWITCH 0x1023 #define OPCODE_VOICE_SWITCH 0x1023
#define OPCODE_COMPLETED_TEST_OP 0xEDB4 #define OPCODE_COMPLETED_TEST_OP 0xEDB4
#define OPCODE_VOICE_OTA_UPGRADE_STATR 0x1016 #define OPCODE_VOICE_OTA_UPGRADE_STATR 0x1016
#define OPCODE_VOICE_OTA_REQUEST 0x1017 #define OPCODE_VOICE_OTA_REQUEST 0x1017
#define OPCODE_VOICE_OTA_UPGRADE_STOP 0x1018 #define OPCODE_VOICE_OTA_UPGRADE_STOP 0x1018
#define OPCODE_VOICE_OTA_INFO_GET 0x1019 #define OPCODE_VOICE_OTA_INFO_GET 0x1019
#define OPCODE_VOICE_OTA_STATUS_NOTIFY 0x101A #define OPCODE_VOICE_OTA_STATUS_NOTIFY 0x101A
#define KK_VOICE_OTA_MTU 128
typedef void (*vp_handle_func)(pro_data_t *pro_data);
typedef struct typedef void (*vp_handle_func)(pro_data_t *pro_data);
{ typedef struct
uint16_t opcode; {
vp_handle_func func; uint16_t opcode;
}VP_OPCODE_HANDLE; vp_handle_func func;
}VP_OPCODE_HANDLE;
int vp_scene_id_map_load(void);
int vp_scene_id_map_load(void);
void vp_scene_id_map_deinit(void);
int vp_scene_id_item_add(int scene_id); void vp_scene_id_map_deinit(void);
int vp_scene_id_item_add(int scene_id);
//主机快照请求
void vp_8009_snapshoot_get(void); //主机快照请求
void kk_vp_set_8009_system_time(void); void vp_8009_snapshoot_get(void);
void kk_vp_config_file_update_start(uint32_t ver); void kk_vp_set_8009_system_time(void);
void kk_vp_config_file_update_stop(uint32_t ver); void kk_vp_config_file_update_start(uint32_t ver);
void kk_vp_get_config_file_info(void); void kk_vp_config_file_update_stop(uint32_t ver);
void kk_vp_get_config_file_info(void);
void kk_vp_get_ota_file_info(void);
void kk_vp_get_ota_file_info(void);
void kk_vp_ota_file_update_stop(uint32_t ver); void kk_vp_ota_file_update_start(char *file);
void kk_vp_ota_file_update_stop(uint32_t ver);
void kk_vp_get_8009_snapshoot(void);
void kk_vp_get_8009_snapshoot(void);
void kk_vp_syncinfo_handle(_IN cJSON *payload);
int kk_vp_opcode_handle(_IN pro_data_t *pro_data); void kk_vp_syncinfo_handle(_IN cJSON *payload);
int kk_vp_opcode_handle(_IN pro_data_t *pro_data);
int kk_vp_get_config_file_version(void);
int kk_vp_get_config_file_version(void);
void vp_scene_id_map_deinit(void);
int vp_scene_id_item_add(int scene_id); void vp_scene_id_map_deinit(void);
int vp_scene_id_item_load(int scene_id,uint16_t map_id); int vp_scene_id_item_add(int scene_id);
int vp_scene_id_map_save(void); int vp_scene_id_item_load(int scene_id,uint16_t map_id);
int _vp_get_cfg_file_crc32(void); int vp_scene_id_map_save(void);
int _vp_get_cfg_file_size(void);
int _vp_get_cfg_file_crc32(void);
int _vp_get_cfg_file_size(void);
void kk_voice_control(int val); void kk_voice_control(int val);
int kk_vp_voice_version_get(char *ver,int len); int kk_vp_voice_version_get(char *ver,int len);
void kk_voice_switch(int val); void kk_voice_switch(int val);
void kk_vp_ota_file_update_start(char* file); void kk_vp_ota_file_update_start(char* file);
void vp_send_data_build(uint16_t opCode,uint8_t len,uint8_t *data); void vp_send_data_build(uint16_t opCode,int len,uint8_t *data);
#endif void kk_voice_set_time_flag(void);
#endif
This diff is collapsed.
#ifndef __UART_PROTO_H__ #ifndef __UART_PROTO_H__
#define __UART_PROTO_H__ #define __UART_PROTO_H__
#include <syslog.h> #include <syslog.h>
#include "infra_types.h" #include "infra_types.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {
#endif #endif
#define GW_LOG(level, fmt, args...) \ #define GW_LOG(level, fmt, args...) \
do \ do \
{ \ { \
syslog(level, fmt, ##args); \ syslog(level, fmt, ##args); \
printf("\n["__FILE__":%d] "fmt,__LINE__, ##args); \ printf("\n["__FILE__":%d] "fmt,__LINE__, ##args); \
} while(0) } while(0)
#define GW_LOG_DBG(fmt, args...) GW_LOG(LOG_DEBUG, fmt, ##args) #define GW_LOG_DBG(fmt, args...) GW_LOG(LOG_DEBUG, fmt, ##args)
#define GW_LOG_ERR(fmt, args...) GW_LOG(LOG_ERR, fmt, ##args) #define GW_LOG_ERR(fmt, args...) GW_LOG(LOG_ERR, fmt, ##args)
//define protocal field size //define protocal field size
#define PRO_SOF_SIZE 2 #define PRO_SOF_SIZE 2
#define PRO_CONTORL_FIELD_SIZE 1 #define PRO_CONTORL_FIELD_SIZE 1
#define PRO_LEN_SIZE 2 #define PRO_LEN_SIZE 2
#define PRO_CRC_SIZE 2 #define PRO_CRC_SIZE 2
#define PRO_SEQ_SIZE 2 #define PRO_SEQ_SIZE 2
#define PRO_MIN_DATA_SIZE 4 // channel(1) + opcode(2) + args(1) #define PRO_MIN_DATA_SIZE 4 // channel(1) + opcode(2) + args(1)
#define PRO_LINK_PAKCET_SIZE 13 #define PRO_LINK_PAKCET_SIZE 13
#define PRO_APP_PACKET_MIN_SIZE 13 #define PRO_APP_PACKET_MIN_SIZE 13
//define field index //define field index
#define PRO_SOF_INDEX 0 #define PRO_SOF_INDEX 0
#define PRO_LEN_INDEX (PRO_SOF_INDEX + PRO_SOF_SIZE) #define PRO_LEN_INDEX (PRO_SOF_INDEX + PRO_SOF_SIZE)
#define PRO_CF_INDEX (PRO_LEN_INDEX + PRO_LEN_SIZE) #define PRO_CF_INDEX (PRO_LEN_INDEX + PRO_LEN_SIZE)
#define PRO_SEQ_INDEX (PRO_CF_INDEX + PRO_CONTORL_FIELD_SIZE) #define PRO_SEQ_INDEX (PRO_CF_INDEX + PRO_CONTORL_FIELD_SIZE)
#define PRO_DATA_INDEX (PRO_SEQ_INDEX + PRO_SEQ_SIZE) #define PRO_DATA_INDEX (PRO_SEQ_INDEX + PRO_SEQ_SIZE)
//define SOF //define SOF
#define PRO_SOF_1 0xAA #define PRO_SOF_1 0xAA
#define PRO_SOF_2 0x55 #define PRO_SOF_2 0x55
#define DEV_UART_RECV_BUFFER_SIZE 255 #define DEV_UART_RECV_BUFFER_SIZE 255
#define MAC_ADDR 0x00000 #define MAC_ADDR 0x00000
/***************OPCODE*******************/ /***************OPCODE*******************/
#define OPCODE_CONNECT_STATUS_QUERY 0x0000 //ͨѶ״̬ѯ #define OPCODE_CONNECT_STATUS_QUERY 0x0000 //ͨѶ״̬ѯ
#define OPCODE_BURN_MAC 0x0001 #define OPCODE_BURN_MAC 0x0001
#define OPCODE_READ_MAC 0x0002 #define OPCODE_READ_MAC 0x0002
#define OPCODE_SET_SN 0x0003 #define OPCODE_SET_SN 0x0003
#define OPCODE_GET_SN 0x0004 #define OPCODE_GET_SN 0x0004
#define OPCODE_READ_VERSION 0x0005 #define OPCODE_READ_VERSION 0x0005
#define OPCODE_EXIT_SUBBOARD_TEST 0x0006 #define OPCODE_EXIT_SUBBOARD_TEST 0x0006
#define OPCODE_READ_MAC_FROM_FLASH 0x0007 #define OPCODE_READ_MAC_FROM_FLASH 0x0007
#define OPCODE_SYSTEM_RESTART 0x0008 #define OPCODE_SYSTEM_RESTART 0x0008
/*********************************/ /*********************************/
typedef enum typedef enum
{ {
E_Proto_OK = 0, E_Proto_OK = 0,
E_Proto_ERROR, E_Proto_ERROR,
} teProto_Status; } teProto_Status;
typedef struct typedef struct
{ {
uint8_t data_len; uint8_t data_len;
uint8_t data[DEV_UART_RECV_BUFFER_SIZE]; uint8_t data[DEV_UART_RECV_BUFFER_SIZE];
} uart_data_t; } uart_data_t;
typedef enum typedef enum
{ {
SOP_STATE1 = 0, SOP_STATE1 = 0,
SOP_STATE2, SOP_STATE2,
LENGTH_STATE1, LENGTH_STATE1,
LENGTH_STATE2, LENGTH_STATE2,
CONTROL_FIELD_STATE1, CONTROL_FIELD_STATE1,
SEQ_STATE1, SEQ_STATE1,
SEQ_STATE2, SEQ_STATE2,
DATA_STATE, DATA_STATE,
CRC16_STATE1, CRC16_STATE1,
CRC16_STATE2, CRC16_STATE2,
} utp_state_t; } utp_state_t;
typedef struct typedef struct
{ {
uint8_t ack; uint8_t ack;
uint8_t dir; uint8_t dir;
uint8_t sof_flag; uint8_t sof_flag;
uint8_t mf_flag; uint8_t mf_flag;
} control_field_t; } control_field_t;
typedef struct typedef struct
{ {
uint16_t length; uint16_t length;
control_field_t cf; control_field_t cf;
uint16_t seq; uint16_t seq;
uint8_t ch; uint8_t ch;
uint16_t opcode; uint16_t opcode;
uint16_t args_len; uint16_t args_len;
uint8_t arg[256]; uint8_t arg[1024];
} pro_data_t; } pro_data_t;
int my_system(const char * cmd); int my_system(const char * cmd);
uint32_t make_crc32(uint8_t *msg, uint16_t len); uint32_t make_crc32(uint8_t *msg, uint16_t len);
uint16_t make_crc16(uint8_t *msg, uint16_t len); uint16_t make_crc16(uint8_t *msg, uint16_t len);
uint8_t cf_to_uint8_t(control_field_t *cf); uint8_t cf_to_uint8_t(control_field_t *cf);
uint8_t pro_check_uart_frame(uint8_t *data, uint16_t data_len); uint8_t pro_check_uart_frame(uint8_t *data, uint16_t data_len);
void dev_send_uart(uint8_t *data, uint16_t data_len); void dev_send_uart(uint8_t *data, uint16_t data_len);
int get_proto_frame(uint8_t *data, uint16_t data_len, pro_data_t *pro_data); int get_proto_frame(uint8_t *data, uint16_t data_len, pro_data_t *pro_data);
void pro_send_link_ack(pro_data_t *pro_data); void pro_send_link_ack(pro_data_t *pro_data);
uint8_t proto_frame_to_uart(pro_data_t *pro_data, uint8_t *uart_data); uint16_t proto_frame_to_uart(pro_data_t *pro_data, uint8_t *uart_data);
int get_uart_frame(uint8_t * buf,int len); int get_uart_frame(uint8_t * buf,int len);
void uart_frame_handle(); void uart_frame_handle();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __DEV_PROTO_H__ */ #endif /* __DEV_PROTO_H__ */
{ {
"productCode":"3088", "productCode":"3088",
"operateType":"1003", "operateType":"1003",
"channel":1, "channel":1,
"newccu":[ "newccu":[
{ {
"identifier":"OperationMode", "identifier":"OperationMode",
"opcodemap":"SWITCH", "opcodemap":"SWITCH",
"dataType":"int", "dataType":"int",
"channel":"1", "channel":"1",
"valueRange":[0,1,2], "valueRange":[0,1,2],
"value": 2 "value": 2
} }
], ],
"oldccu":[ "oldccu":[
{ {
"opcode":"SWITCH", "opcode":"SWITCH",
"identifiermap":"OperationMode", "identifiermap":"OperationMode",
"dataType":"map", "dataType":"map",
"channel":"1", "channel":"1",
"valueRange":["CLOSE","OPEN","STOP"] "valueRange":["CLOSE","OPEN","STOP"]
} }
] ]
} }
\ No newline at end of file
{ {
"productCode":"3089", "productCode":"3089",
"operateType":"1003", "operateType":"1003",
"channel":2, "channel":2,
"newccu":[ "newccu":[
{ {
"identifier":"OperationMode", "identifier":"OperationMode",
"opcodemap":"SWITCH", "opcodemap":"SWITCH",
"dataType":"int", "dataType":"int",
"channel":"1", "channel":"1",
"valueRange":[0,1,2], "valueRange":[0,1,2],
"value": 2 "value": 2
}, },
{ {
"identifier":"OperationMode", "identifier":"OperationMode",
"opcodemap":"SWITCH", "opcodemap":"SWITCH",
"dataType":"int", "dataType":"int",
"channel":"2", "channel":"2",
"valueRange":[0,1,2], "valueRange":[0,1,2],
"value": 2 "value": 2
} }
], ],
"oldccu":[ "oldccu":[
{ {
"opcode":"SWITCH", "opcode":"SWITCH",
"identifiermap":"OperationMode", "identifiermap":"OperationMode",
"dataType":"map", "dataType":"map",
"channel":"1", "channel":"1",
"valueRange":["CLOSE","OPEN","STOP"] "valueRange":["CLOSE","OPEN","STOP"]
}, },
{ {
"opcode":"SWITCH", "opcode":"SWITCH",
"identifiermap":"OperationMode", "identifiermap":"OperationMode",
"dataType":"map", "dataType":"map",
"channel":"2", "channel":"2",
"valueRange":["CLOSE","OPEN","STOP"] "valueRange":["CLOSE","OPEN","STOP"]
} }
] ]
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
{ {
"productCode":"3142", "productCode":"3142",
"operateType":"3", "operateType":"3",
"channel":1, "channel":1,
"newccu":[ "newccu":[
{ {
"identifier":"PowerSwitch", "identifier":"PowerSwitch",
"opcodemap":"SWITCH", "opcodemap":"SWITCH",
"dataType":"int", "dataType":"int",
"channel":"1", "channel":"1",
"valueRange":[0,1], "valueRange":[0,1],
"value": 0 "value": 0
} }
], ],
"oldccu":[ "oldccu":[
{ {
"opcode":"SWITCH", "opcode":"SWITCH",
"identifiermap":"PowerSwitch", "identifiermap":"PowerSwitch",
"dataType":"map", "dataType":"map",
"channel":"1", "channel":"1",
"valueRange":["OFF","ON"] "valueRange":["OFF","ON"]
} }
] ]
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment