93static const float S_PRESENCE_OF_DETECTION_RANGE_STR[7] = {0.0f, 0.5f, 1.0f, 1.5f, 2.0f, 2.5f, 3.0f};
98 SUB_TEXT_SENSOR(heartbeat_state)
99 SUB_TEXT_SENSOR(product_model)
100 SUB_TEXT_SENSOR(product_id)
101 SUB_TEXT_SENSOR(hardware_model)
102 SUB_TEXT_SENSOR(firware_version)
103 SUB_TEXT_SENSOR(keep_away)
104 SUB_TEXT_SENSOR(motion_status)
105 SUB_TEXT_SENSOR(custom_mode_end)
107#ifdef USE_BINARY_SENSOR
108 SUB_BINARY_SENSOR(has_target)
111 SUB_SENSOR(custom_presence_of_detection)
112 SUB_SENSOR(movement_signs)
113 SUB_SENSOR(custom_motion_distance)
114 SUB_SENSOR(custom_spatial_static_value)
115 SUB_SENSOR(custom_spatial_motion_value)
116 SUB_SENSOR(custom_motion_speed)
117 SUB_SENSOR(custom_mode_num)
120 SUB_SWITCH(underlying_open_function)
124 SUB_BUTTON(custom_set_end)
127 SUB_SELECT(scene_mode)
128 SUB_SELECT(unman_time)
129 SUB_SELECT(existence_boundary)
130 SUB_SELECT(motion_boundary)
133 SUB_NUMBER(sensitivity)
134 SUB_NUMBER(custom_mode)
135 SUB_NUMBER(existence_threshold)
136 SUB_NUMBER(motion_threshold)
137 SUB_NUMBER(motion_trigger)
138 SUB_NUMBER(motion_to_rest)
139 SUB_NUMBER(custom_unman_time)
143 char c_product_mode_[PRODUCT_BUF_MAX_SIZE + 1];
144 char c_product_id_[PRODUCT_BUF_MAX_SIZE + 1];
145 char c_hardware_model_[PRODUCT_BUF_MAX_SIZE + 1];
146 char c_firmware_version_[PRODUCT_BUF_MAX_SIZE + 1];
147 uint8_t s_output_info_switch_flag_;
148 uint8_t sg_recv_data_state_;
149 uint8_t sg_frame_len_;
150 uint8_t sg_data_len_;
151 uint8_t sg_frame_buf_[FRAME_BUF_MAX_SIZE];
152 uint8_t sg_frame_prase_buf_[FRAME_BUF_MAX_SIZE];
153 int sg_start_query_data_;
154 bool check_dev_inf_sign_;
155 bool poll_time_base_func_check_;
158 void r24_split_data_frame_(uint8_t value);
159 void r24_parse_data_frame_(uint8_t *data, uint8_t
len);
160 void r24_frame_parse_open_underlying_information_(uint8_t *data);
161 void r24_frame_parse_work_status_(uint8_t *data);
162 void r24_frame_parse_product_information_(uint8_t *data);
163 void r24_frame_parse_human_information_(uint8_t *data);
164 void send_query_(
const uint8_t *query,
size_t string_length);
168 void setup()
override;
170 void loop()
override;