Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *********** Cập nhật hỗ trợ cấu hình các tham số riêng của thiết bị ***********
- - Cập nhật Basic cluster hỗ trợ manufacturer-specific attribute trong thư mục sdk\JN-SW-4170\Components\ZCL\Clusters\General
- + Basic.c/h
- + Basic_internal.h
- + BasicClientCommands.c
- + BasicCommandHandler.c
- - Khai báo hỗ trợ manufacturer-specific:
- + Thay đổi Manufacturer code: Hiện tại Manufacturer code = 0x1037 (NXP), chuyển sang giá trị khác được thống nhất cho VinSmart (ví dụ 0x1040)
- * zcl_options.h:
- #define ZCL_MANUFACTURER_CODE 0x1040
- * app.zpscfg: Đổi Manufacturer code trong Node Descriptor sang 0x1040
- - Khai báo enable các thuộc tính và các lệnh cấu hình:
- + zcl_options.h:
- /* Manufacturer Specific Attributes */
- #define CLD_BAS_ATTR_MAN_SPEC_LED_INTENSITY
- #define CLD_BAS_ATTR_MAN_SPEC_VIBRATION_INTENSITY
- #ifdef CLD_BAS_ATTR_MAN_SPEC_LED_INTENSITY
- #define CLD_BAS_CMD_MAN_SPEC_SET_LED_INTENSITY
- #endif
- #ifdef CLD_BAS_ATTR_MAN_SPEC_VIBRATION_INTENSITY
- #define CLD_BAS_CMD_MAN_SPEC_SET_VIBRATION_INTENSITY
- #endif
- - Thêm mã nguồn module xử lý cấu hình và lưu tham số
- + app_device_config.c/h
- - Đăng ký hàm callback cấu hình riêng cho từng thiết bị và load cấu hình từ flash khi khởi tạo ZCL riêng cho thiết bị:
- + Hàm vSensor_DeviceSpecificInit()/APP_vZCL_DeviceSpecific_Init()
- /* Register device config callback */
- bDeviceConfig_RegisterCallback(bSensor_DeviceConfig);
- /* Load device config from flash and assign to basic cluster as initialization value */
- bDeviceConfig_LoadConfig(&sSensor.sBasicServerCluster);
- - Thêm mã nguồn thực thi lệnh cấu hình trong app_zcl_sensor_task/app_zcl_task.c
- + Hàm APP_ZCL_cbEndpointCallback, sự kiện E_ZCL_CBET_CLUSTER_CUSTOM
- case E_ZCL_CBET_CLUSTER_CUSTOM:
- switch (psEvent->uMessage.sClusterCustomMessage.u16ClusterId)
- {
- case GENERAL_CLUSTER_ID_BASIC:
- {
- tsCLD_BasicCallBackMessage *psCallBackMessage = (tsCLD_BasicCallBackMessage*)psEvent->uMessage.sClusterCustomMessage.pvCustomData;
- if (psCallBackMessage->u8CommandId == E_CLD_BASIC_CMD_MAN_SPEC_SET_LED_INTENSITY)
- {
- /* Update device config */
- bDeviceConfig_UpdateConfig(DEVICE_CONFIG_LED_INTENSITY_ID_BIT,
- (void*) &sSensor.sBasicServerCluster.u8LedIntensity);
- }
- else if (psCallBackMessage->u8CommandId == E_CLD_BASIC_CMD_MAN_SPEC_SET_VIBRATION_INTENSITY)
- {
- /* Update device config */
- bDeviceConfig_UpdateConfig(DEVICE_CONFIG_VIBRATION_INTENSITY_BIT,
- (void*) &sSensor.sBasicServerCluster.u8VibrationIntensity);
- }
- }
- break;
- }
- ************** Cập nhật hàm cấu hình riêng cho từng thiết bị ********************
- - Thêm hàm cấu hình tham số cho từng thiết bị với template:
- PUBLIC BOOL_T bDevice_DeviceConfig(uint8 u8UpdateMask,
- tsDeviceConfigParams* psDeviceConfigParam)
- {
- #ifdef DEVICE_CONFIG_LED_INTENSITY_ID_BIT
- if (u8UpdateMask & DEVICE_CONFIG_LED_INTENSITY_ID_BIT)
- {
- /* Call function to set LED intensity */
- }
- #endif
- #ifdef DEVICE_CONFIG_VIBRATION_INTENSITY_BIT
- if (u8UpdateMask & DEVICE_CONFIG_VIBRATION_INTENSITY_BIT)
- {
- /* Call function to set vibration intensity */
- }
- #endif
- return TRUE;
- }
Add Comment
Please, Sign In to add comment