Go to the documentation of this file.
59 #include "custom_config.h"
67 #define PAWR_MAX_SENT_DATA_LEN 250
68 #define PAWR_SENT_DATA_LEN_OFFSET 0
69 #define PAWR_SENT_DATA_TYPE_OFFSET 1
71 #define ESLS_CONNECTION_MAX 10
72 #define ESL_ADDR_LEN 2
73 #define ESL_SESSION_KEY_LEN 16
75 #define AP_SYNC_KEY_MATERIAL_LEN (ESL_SESSION_KEY_LEN + ESL_IV_LEN)
76 #define ESL_RSP_KEY_MATERIAL_LEN (ESL_SESSION_KEY_LEN + ESL_IV_LEN)
77 #define ESL_CTL_PT_TLV_MIN_LEN 2
78 #define ESL_CTL_PT_TLV_MAX_LEN 17
79 #define ESL_MAX_VAL_LEN 512
81 #define ESL_ADDR_ESL_ID_BROAD_ADDR 0xFF
83 #define ESL_CTL_PT_SENSOR_DATA_MAX_LEN 15
84 #define ESL_VENDOR_DATA_MAX_LEN 15
86 #define esls_sensor_size00(x) x&0xFF, (x>>8)&0xFF
87 #define esls_sensor_size01(y) y&0xFF, (y>>8)&0xFF, (y>>16)&0xFF, (y>>24)&0xFF
89 #define GRP_ID_MSK(esl_addr) (esl_addr & 0x7F)
90 #define ESL_TLV_CMD_TAG(OPCODE) (OPCODE & 0xF)
91 #define ESL_TLV_CMD_LEN(OPCODE) ((OPCODE>>4) & 0xF)
92 #define ESL_VEND_TAG 0x0F
93 #define ESL_LED_INFOR_TYPE_RGB(x) (x & 0x3F)
94 #define ESL_LED_INFOR_TYPE_MON(y) ((y & 0x3F)|(0x40))
103 #define ESLS_CHAR_MANDATORY 0xE01FF
104 #define ESLS_CHAR_DISPLAY_INFOR_SUP 0x00600
105 #define ESLS_CHAR_IMAGE_INFOR_SUP 0x01800
106 #define ESLS_CHAR_SENSOR_INFOR_SUP 0x06000
107 #define ESLS_CHAR_LED_INFOR_SUP 0x18000
115 #define ESLS_CONFIG_ADDR_MASK 0x1
116 #define ESLS_CONFIG_SYNC_KEY_MASK 0x2
117 #define ESLS_CONFIG_RSP_KEY_MASK 0x4
118 #define ESLS_CONFIG_ABS_TIME_MASK 0x8
120 #define ESLS_CONFIG_COMPLETE_MASK (ESLS_CONFIG_ADDR_MASK|ESLS_CONFIG_SYNC_KEY_MASK|ESLS_CONFIG_RSP_KEY_MASK|ESLS_CONFIG_ABS_TIME_MASK)
282 uint16_t esls_display_width;
283 uint16_t esls_display_height;
284 uint8_t esls_display_type;
320 uint8_t session_key[16];
337 uint8_t color_green:2;
338 uint8_t color_blue:2;
339 uint8_t color_brightness:2;
342 uint8_t bit_off_period;
343 uint8_t bit_on_period;
348 uint16_t repeat_type:1;
349 uint16_t repeat_duration:15;
@ ESL_VENDOR_IMAGE_END_NTF
@ ESL_RSP_ERR_CODE_IMPLAUSIBLE_ABS_TIM
@ ESL_CMD_OPCODE_UPDATE_COMP
Electronic Shelf Label Service event.
Electronic Shelf Label Service Init variable.
Electronic Shelf Label Service sync parameter format.
ESL_SYNC_STATE_T
Electronic Shelf Label Service state machine types.
@ ESL_RSP_ERR_CODE_INVALID_IMAGE_IDX
@ ESL_DISP_TYPE_THREE_GRAY_SCALE
@ ESL_RSP_ERR_CODE_QUEUE_FULL
@ ESL_VENDOR_IMAGE_START_RSP
ESL_STATE_T esls_get_state_machine(void)
Get Electronic Shelf Label state machine.
@ ESLS_EVT_READ_SENSOR_DATA
@ ESL_DISP_TYPE_SIXTEEN_GRAY_SCALE
ESL_STATE_T
Electronic Shelf Label Service state machine types.
uint16_t esls_active_led_state_get(void)
Get Electronic Shelf Label Service active LED state state .
uint16_t esls_pending_led_update_state_get(void)
Get Electronic Shelf Label Service pengding LED state state .
sdk_err_t(* esls_evt_handler_t)(esls_evt_t *p_evt)
Electronic Shelf Label Service event handler func define.
esls_nvds_cb_t esls_nvds_cb
uint16_t esls_pending_led_update_state_set(bool flag)
Electronic Shelf Label Service pengding LED state set.
@ ESL_DISP_TYPE_RED_BLACK_WHITE
uint16_t esls_service_start_handle_get(void)
Provide the interface for other modules to obtain the esls service start handle .
The struct of broadcast address with broadcast type.
esl_vendor_opcode_t
Values for The ESL Control Point characteristic vendor command procedure.
@ ESL_CMD_OPCODE_REFRESH_DISP
@ ESL_RSP_OPCODE_VEND_TAG
sdk_err_t esls_user_payload_send(uint8_t conn_idx, uint8_t user_opcode, uint8_t *esl_payload, uint16_t esl_len)
Sent Electronic Shelf Label Service user data.
@ ESL_DISP_TYPE_RED_YELLOW_BLACK_WHITE
@ ESL_VENDOR_IMAGE_START_REQ
esl_cmd_opcode_t
Values for The ESL Control Point characteristic command procedure.
@ ESL_VENDOR_DATA_ERR_CKSUM
void esls_service_reset(void)
Reset Electronic Shelf Label Service state and database.
@ ESLS_EVT_REFRESH_DISPLAY
ESL_SYNC_STATE_T sync_state
@ ESL_RSP_OPCODE_DISP_STATE
uint16_t esls_sync_to_ap_state_set(bool flag)
Electronic Shelf Label Service sync state set.
uint16_t esls_service_need_state_get(void)
Get Electronic Shelf Label Service service need state .
esls_char_infor_t esls_char_infor
@ ESLS_EVT_CURRENT_ABS_TIM
@ ESL_RSP_OPCODE_SENSOR_TAG
@ ESL_RSP_ERR_CODE_INSUFF_BATTERY
@ ESL_RSP_ERR_CODE_INVALID_STATE
sdk_err_t esls_service_init(esls_init_t *p_esls_init)
Init a Electronic Shelf Label Service instance and add in the DB.
uint16_t esls_active_led_state_set(bool flag)
Electronic Shelf Label Service active LED state set.
esls_evt_handler_t evt_handler
@ ESL_RSP_ERR_CODE_INVALID_OPCODE
@ ESLS_EVT_UNASSOCIATE_FROM_AP
@ ESL_DISP_TYPE_YELLOW_BLACK_WHITE
@ ESL_VENDOR_DATA_ERR_LEN
@ ESL_RSP_OPCODE_LED_STATE
uint16_t esls_pending_display_update_state_set(bool flag)
Electronic Shelf Label Service pengding display state set.
@ ESL_RSP_ERR_CODE_CAPACITY_LIMIT
@ ESL_CMD_OPCODE_DISP_TIM_IMAGE
ble_app_nvds_put_cb_t put_cb
@ ESLS_EVT_WRITE_VEND_COMMAND
@ ESL_RSP_ERR_CODE_VEND_BEGIN
Electronic Shelf Label Service characteristic information.
uint16_t esls_pending_display_update_state_get(void)
Get Electronic Shelf Label Service pengding display state state .
@ ESL_CMD_OPCODE_LED_TIM_CTL
@ ESL_CMD_OPCODE_UNASSOCIATE_AP
ble_app_nvds_get_cb_t get_cb
@ ESL_RSP_OPCODE_BASIC_STATE
@ ESL_CMD_OPCODE_RD_SENSOR_DATA
@ ESLS_EVT_NOTIFICATION_DISABLED
esls_tlv_format_t * tlv_data
esl_rsp_opcode_t
The ESL Control Point characteristic response behavior.
uint16_t esls_service_need_state_set(bool flag)
Electronic Shelf Label Service service need state set.
@ ESL_DISP_TYPE_EIGHT_GRAY_SCALE
@ ESL_RSP_ERR_CODE_INVALID_PARAM
esls_evt_type_t
Electronic Shelf Label Service event types.
bool esls_service_nvds_load_flag_get(void)
Get Electronic Shelf Label Service nvds load flag.
#define ESL_CTL_PT_TLV_MAX_LEN
@ ESL_RSP_ERR_CODE_UNSPEC
uint16_t sdk_err_t
SDK API result type.
@ ESL_VENDOR_RSP_DEVICE_NAME
bool(* app_dev_reset_cbk_t)(uint8_t conn_idx, bool factory_rst)
@ ESL_DISP_TYPE_FOUR_GRAY_SCALE
sdk_err_t esls_set_state_machine(ESL_STATE_T esl_state)
Set Electronic Shelf Label state machine.
@ ESL_CMD_OPCODE_DISP_IMAGE
Electronic Shelf Label Service sensor information data.
@ ESL_RSP_ERR_CODE_INSUFF_RESOURCE
esl_vendor_data_err_t
Values for contrl point vendor command data error code.
@ ESL_DISP_TYPE_SEVEN_COLOR
@ ESLS_EVT_NOTIFICATION_ENABLED
uint16_t esls_sync_to_ap_state_get(void)
Get Electronic Shelf Label Service sync state .
void ble_esls_evt_on_ble_capture(const ble_evt_t *p_evt)
Capture esl service events on BLE.
sdk_err_t esls_led_state_send(uint8_t conn_idx, uint8_t led_idx)
a Electronic Shelf Label Service reponse of LED control command .
sdk_err_t esls_tlv_response_send(uint8_t conn_idx, uint8_t *rsp_data_p, uint16_t len)
Send response message to AP.
ble_app_nvds_del_cb_t del_cb
uint8_t(* ble_app_nvds_del_cb_t)(uint8_t tag)
@ ESL_RSP_ERR_CODE_VEND_NO_ERR
sdk_err_t esls_display_state_send(uint8_t conn_idx, uint8_t display_idx, uint8_t image_idx)
Sent Electronic Shelf Label Service diaplay state.
@ ESLS_EVT_DISPLAY_TIMED_IMAGE
uint8_t(* ble_app_nvds_put_cb_t)(uint8_t tag, uint8_t len, uint8_t *p_buf)
uint8_t(* ble_app_nvds_get_cb_t)(uint8_t tag, uint8_t *p_len, uint8_t *p_buf)
Electronic Shelf Label Service NVDS callback func define.
sdk_err_t esls_err_state_send(uint8_t conn_idx, esl_rsp_err_code_t err_code)
a Electronic Shelf Label Service reponse AP with a Error code.
sdk_err_t esls_sync_past_param_set(esls_ap_sync_param_t *sync_past_ptr)
Set Electronic Shelf Label default per sync trans parameter. Will be used after created conection wit...
Electronic Shelf Label Service NVDS callback func.
@ ESL_DISP_TYPE_SIXTEEN_COLOR
sdk_err_t esls_base_state_send(uint8_t conn_idx)
Sent a Electronic Shelf Label Service base state.
ESL_DISP_TYPE_T
The value of the Display_Type field is from an enumeration , which identifies the colors that are sup...
@ ESL_DISP_TYPE_BLACK_WHITE
ESLS_NVDS_PARAM_ID_T
Electronic Shelf Label Service List of NVDS parameters identifiers.
esl_rsp_err_code_t
The Error response has a single parameter that contains an error code .
@ ESL_VENDOR_REQ_DEVICE_NAME
@ ESL_CMD_OPCODE_FACTORY_RST
@ ESL_RSP_ERR_CODE_IMAGE_NOT_AVAILABLE
sdk_err_t esls_user_payload_prepare(uint8_t *esl_sent_buffer, uint16_t *esl_sent_buffer_offset, uint8_t user_opcode, uint8_t *esl_payload, uint16_t esl_len)
Set Electronic Shelf Label Service user data in esl_sent_buffer, will sent later.
sdk_err_t esls_sensor_value_send(uint8_t conn_idx, uint8_t sensor_idx, uint8_t *sensor_data_p, uint8_t len)
Sent Electronic Shelf Label Service sensor data.
ble_gap_bdaddr_t target_addr
Electronic Shelf Label Service display information data.
Electronic Shelf Label Service led information data.
@ PARAM_ID_ESL_CONFIG_INFOR