10#ifndef INC_A_PROTOCOL_H_
11#define INC_A_PROTOCOL_H_
102}__attribute__((__packed__));
108}__attribute__((__packed__));
114}__attribute__((__packed__));
120}__attribute__((__packed__));
304typedef int (*
request_from_slave_blocked_t)(
void* protocol_str, uint8_t address, uint8_t command,
base_bus_transmit_settings_struct* tx_settings, uint8_t* tx_data_buf, uint16_t tx_size, uint32_t wait_rx_size, uint32_t wait_time_ms,
ubi4_bus_package_info_struct* pack_info_out, uint8_t** buf_out, uint32_t* len);
ports_enum
Definition a_port.h:47
void protocol_set_bridge_callback(ubi4_bus_protocol_obj_struct *protocol_str, void(*receiver)(void *protocol_str, protocol_receive_struct receive_str))
Definition a_protocol.c:1196
simple_device_type_enum
Definition a_protocol.h:33
@ SDT_DRIVER
Definition a_protocol.h:34
@ SDT_SENSORE
Definition a_protocol.h:35
@ SDT_ALL_DEVICES
Definition a_protocol.h:37
@ SDT_NUM
Definition a_protocol.h:38
@ SDT_HID
Definition a_protocol.h:36
void ubi4_remove_pack_info(ubi4_bus_protocol_obj_struct *protocol_str, ubi4_bus_package_info_struct *pack_info)
Definition a_protocol.c:1639
void ubi4_master_receiver_init(base_port_struct *port, ubi4_bus_protocol_obj_struct **protocol_obj_str)
Definition a_protocol.c:977
int(* request_handler_blocked_t)(void *protocol_str, uint8_t address, uint8_t command, base_bus_transmit_settings_struct *tx_settings, uint8_t *tx_data_buf, uint16_t tx_size, uint32_t wait_rx_size, uint32_t wait_time_ms)
Definition a_protocol.h:305
void(* receiver_typedef)(void *protocol_str, protocol_receive_struct receive_str)
Definition a_protocol.h:381
uint8_t(* get_specific_byte_pack_info_t)(void *protocol_str, void *pack_info, pack_info_specificator_enum specificator, uint8_t *status)
Definition a_protocol.h:309
void(* transmit_data_segment_to_master_t)(void *protocol_str, uint8_t command, base_protocol_data_segment_struct *data_segment)
Definition a_protocol.h:302
protocol_data_segment_status_enum
Definition a_protocol.h:160
@ PDSSE_FREE
Definition a_protocol.h:161
@ PDSSE_BUSY
Definition a_protocol.h:162
void(* receive_data_func_t)(void *protocol_str)
Definition a_protocol.h:290
void(* transmit_to_slave_t)(void *protocol_str, uint8_t address, uint8_t command, base_bus_transmit_settings_struct *tx_settings, uint8_t *data_buf, uint16_t size)
Definition a_protocol.h:303
void(* transmit_bridge_to_slave_t)(void *protocol_str, uint8_t address, uint8_t command, bool last_package, void *source_protocol_str, void *source_pack_info, base_protocol_data_segment_struct *data_segment)
Definition a_protocol.h:306
package_type_enum
Definition a_protocol.h:25
@ PACKAGE_TYPE_FIX_LEN
Definition a_protocol.h:26
@ PACKAGE_TYPE_VAR_LEN
Definition a_protocol.h:27
@ PE_RES1
Definition a_protocol.h:28
@ PE_RES2
Definition a_protocol.h:29
void(* receive_to_another_device_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:297
void ubi4_spi_slave_receiver_init(base_port_struct *port, ubi4_bus_protocol_init_struct init_struct, ubi4_bus_protocol_obj_struct **protocol_obj_str)
Definition a_protocol.c:1137
void protocol_delay(uint32_t time_ms)
Definition a_protocol.c:2559
void protocol_tx_complete(ubi4_bus_protocol_obj_struct *protocol_str)
Definition a_protocol.c:1731
void(* receive_to_current_device_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:296
bus_protocol_request_type_enum
Definition a_protocol.h:52
@ BPRT_PARAMETERS
Definition a_protocol.h:54
@ BPRT_COMMAND
Definition a_protocol.h:53
bus_protocol_package_type_enum
Definition a_protocol.h:44
@ BPPT_FLOAT_LEN_PACKAGE
Definition a_protocol.h:46
@ BPPT_RES2
Definition a_protocol.h:48
@ BPPT_FIX_LEN_PACKAGE
Definition a_protocol.h:45
@ BPPT_RES1
Definition a_protocol.h:47
void(* protocol_bridge_receive_callback_t)(void *protocol_str, protocol_receive_struct receive_str)
Definition a_protocol.h:301
void ubi4_slave_receiver_init(base_port_struct *port, ubi4_bus_protocol_init_struct init_struct, ubi4_bus_protocol_obj_struct **protocol_obj_str)
Definition a_protocol.c:1059
void parce(uint8_t *Buf, uint16_t size, ports_enum port)
void(* receive_bridge_func_t)(void *port_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:291
base_protocol_data_segment_struct *(* get_data_segment_func_t)(void *protocol_str, uint16_t size)
Definition a_protocol.h:294
void(* parce_preamble_t)(void *protocol_str, uint8_t *data, uint16_t size)
Definition a_protocol.h:310
void(* device_main_receiver_t)(void *protocol_str, protocol_receive_struct receive_str)
Definition a_protocol.h:300
void(* remove_pack_info_t)(void *protocol_str, void *pack_info)
Definition a_protocol.h:293
void(* transmit_bridge_to_slave_queue_t)(void *protocol_str, uint8_t address, uint8_t command, bool last_package, void *source_protocol_str, void *source_pack_info, base_protocol_data_segment_struct *data_segment)
Definition a_protocol.h:307
void *(* get_specific_pack_info_t)(void *protocol_str, void *pack_info, pack_info_specificator_enum specificator, uint8_t *status)
Definition a_protocol.h:308
package_info_slot_status_enum
Definition a_protocol.h:153
@ PSSE_FREE
Definition a_protocol.h:154
@ PSSE_BUSY
Definition a_protocol.h:155
pack_info_specificator_enum
Definition a_protocol.h:174
@ PISE_PACKAGE_ID
Definition a_protocol.h:179
@ PISE_ID
Definition a_protocol.h:175
@ PISE_ADDRESS
Definition a_protocol.h:182
@ PISE_PACKAGE_CODE
Definition a_protocol.h:178
@ PISE_BRIGE
Definition a_protocol.h:176
@ PISE_PACKAGE_SIZE
Definition a_protocol.h:180
@ PISE_REQUEST_TYPE
Definition a_protocol.h:183
@ PISE_WAIT_ANSWER
Definition a_protocol.h:177
@ PISE_PACKAGE_CRC
Definition a_protocol.h:181
bridge_protocol_info_struct Check_Device_Bridge_Info(void *port_device_manager, uint8_t Address)
Definition a_protocol.c:2533
void ubi4_slave_receiver_start(ubi4_bus_protocol_obj_struct *protocol_obj_str)
Definition a_protocol.c:1208
queue_transmit_type_enum
Definition a_protocol.h:190
@ QTTE_BRIDGE
Definition a_protocol.h:193
@ QTTE_DIRECT
Definition a_protocol.h:192
@ QTTE_UNKNOW
Definition a_protocol.h:191
int ubi4_bus_receive_data_full_buffer(base_port_struct *port_str)
Definition a_protocol.c:257
void protocol_set_receiver(ubi4_bus_protocol_obj_struct *protocol_str, receiver_typedef receiver)
Definition a_protocol.c:1190
protocol_parce_status_enum(* get_data_from_package_t)(void *protocol, uint8_t *buf, uint32_t size, ubi4_bus_package_info_struct *pack_info_out, uint8_t **buf_out, uint32_t *len)
Definition a_protocol.h:295
protocol_parce_status_enum
Definition a_protocol.h:167
@ PPSE_CRC_FAIL
Definition a_protocol.h:170
@ PPSE_SHORT_PACKAGE
Definition a_protocol.h:169
@ PPSE_PARCE_OK
Definition a_protocol.h:168
protocol_receive_mode_enum
Definition a_protocol.h:198
@ PRME_RECEIVE_FULL_BUFFER
Definition a_protocol.h:200
@ PRME_RECEIVE_IRQ
Definition a_protocol.h:199
int(* request_from_slave_blocked_t)(void *protocol_str, uint8_t address, uint8_t command, base_bus_transmit_settings_struct *tx_settings, uint8_t *tx_data_buf, uint16_t tx_size, uint32_t wait_rx_size, uint32_t wait_time_ms, ubi4_bus_package_info_struct *pack_info_out, uint8_t **buf_out, uint32_t *len)
Definition a_protocol.h:304
void(* slave_answer_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:292
uint8_t Get_Device_Address(uint8_t *status)
Definition a_protocol.c:2549
void(* protocol_close_port_callback_t)(void *protocol_str)
Definition a_protocol.h:311
int ubi4_bus_receive_data_rx_irq_exec(ubi4_bus_protocol_obj_struct *protocol_str)
Definition a_protocol.c:2395
void ubi4_slave_receiver_reset(ubi4_bus_protocol_obj_struct *protocol_str)
Definition a_protocol.c:284
void(* protocol_answer_func_t)(void *protocol_str, void *pack_info, uint8_t *data_buf, uint16_t size)
Definition a_protocol.h:298
void(* protocol_answer_obj_data_func_t)(void *protocol_str, void *pack_info, base_protocol_data_segment_struct *data_segment)
Definition a_protocol.h:299
Definition a_protocol.h:123
uint8_t waiting_answer
Definition a_protocol.h:125
uint8_t bridge
Definition a_protocol.h:129
uint8_t request
Definition a_protocol.h:130
uint8_t size_type
Definition a_protocol.h:127
uint8_t request_type
Definition a_protocol.h:126
uint8_t exist_uid_or_param_com_size
Definition a_protocol.h:128
uint8_t last_package
Definition a_protocol.h:124
Definition a_protocol.h:205
void * object
Definition a_protocol.h:221
custom_heap_obj_struct * heap
Definition a_protocol.h:213
void * owner_conteiner
Definition a_protocol.h:219
void(* data_tx_callback)(void *object)
Definition a_protocol.h:222
protocol_data_segment_status_enum slot_status
Definition a_protocol.h:217
uint8_t * pData
Definition a_protocol.h:210
uint16_t BufSize
Definition a_protocol.h:208
uint16_t DataSize
Definition a_protocol.h:211
custom_heap_slot_struct * heapSlot
Definition a_protocol.h:214
uint8_t * pBuf
Definition a_protocol.h:207
uint16_t dataSegmentID
Definition a_protocol.h:206
Definition a_protocol.h:269
ubi4_bus_package_info_struct * source_pack_info
Definition a_protocol.h:284
uint8_t command
Definition a_protocol.h:276
uint8_t waiting_answer
Definition a_protocol.h:272
uint8_t reserv
Definition a_protocol.h:274
queue_transmit_type_enum queue_transmit_type
Definition a_protocol.h:280
union u_device_address addr
Definition a_protocol.h:278
void * source_protocol_str
Definition a_protocol.h:285
uint8_t request_type
Definition a_protocol.h:273
ubi4_bus_package_info_struct * pack_info
Definition a_protocol.h:281
base_protocol_data_segment_struct * data_segment
Definition a_protocol.h:282
uint16_t dataSegmentID
Definition a_protocol.h:270
Definition a_protocol.h:261
void * last_bridge_pack_info
Definition a_protocol.h:264
void * last_bridge_protocol
Definition a_protocol.h:265
void * device
Definition a_protocol.h:263
uint8_t status
Definition a_protocol.h:262
Definition a_protocol.h:135
uint8_t waiting_answer
Definition a_protocol.h:137
uint8_t bridge
Definition a_protocol.h:141
uint8_t request
Definition a_protocol.h:142
uint8_t size_type
Definition a_protocol.h:139
uint8_t package_code
Definition a_protocol.h:146
union u_device_address addr
Definition a_protocol.h:144
union u_bus_res_payload Data
Definition a_protocol.h:147
uint8_t crc
Definition a_protocol.h:148
uint8_t request_type
Definition a_protocol.h:138
uint8_t exist_uid_or_param_com_size
Definition a_protocol.h:140
uint8_t last_package
Definition a_protocol.h:136
Definition custom_heap.h:31
Definition custom_heap.h:24
Definition a_protocol.h:99
uint8_t simple_device_type
Definition a_protocol.h:101
uint8_t addr
Definition a_protocol.h:100
Definition a_protocol_struct.h:18
Definition data_sniffer.h:43
Верхнеуровневая структура soft_timer, с которой предстоит работать.
Definition base_soft_timer.h:169
Definition static_conteiner.h:26
Definition a_protocol.h:251
uint8_t command
Definition a_protocol.h:254
uint16_t pack_info_ID
Definition a_protocol.h:252
void * source_pack_info
Definition a_protocol.h:255
void * source_protocol
Definition a_protocol.h:256
uint8_t Address
Definition a_protocol.h:253
Definition a_protocol.h:228
uint8_t waiting_answer
Definition a_protocol.h:231
uint16_t pack_info_ID
Definition a_protocol.h:229
uint8_t bridge
Definition a_protocol.h:235
uint8_t request
Definition a_protocol.h:236
uint8_t size_type
Definition a_protocol.h:233
uint8_t * pData
Definition a_protocol.h:239
uint8_t package_code
Definition a_protocol.h:238
union u_device_address addr
Definition a_protocol.h:237
package_info_slot_status_enum slot_status
Definition a_protocol.h:245
uint8_t request_queue_pos
Definition a_protocol.h:241
uint16_t DataSize
Definition a_protocol.h:240
uint8_t exist_uid
Definition a_protocol.h:234
base_protocol_data_segment_struct * answer_data_segment
Definition a_protocol.h:243
uint8_t request_type
Definition a_protocol.h:232
uint8_t last_package
Definition a_protocol.h:230
Definition a_protocol.h:376
soft_timer_class_struct * us_soft_timer
Definition a_protocol.h:378
soft_timer_class_struct * ms_soft_timer
Definition a_protocol.h:377
Definition a_protocol.h:313
protocol_bridge_receive_callback_t protocol_bridge_receive_callback
Definition a_protocol.h:352
get_data_segment_func_t get_data_segment_func
Definition a_protocol.h:345
uint8_t * var_len_package_start
Definition a_protocol.h:335
remove_pack_info_t remove_pack_info
Definition a_protocol.h:344
soft_timer_class_struct * us_soft_timer
Definition a_protocol.h:323
uint32_t buffer_offset
Definition a_protocol.h:318
get_specific_byte_pack_info_t get_specific_byte_pack_info
Definition a_protocol.h:360
custom_heap_obj_struct * heap
Definition a_protocol.h:330
base_port_struct * port
Definition a_protocol.h:321
uint8_t answer_queue_counter
Definition a_protocol.h:332
transmit_to_slave_t transmit_to_slave
Definition a_protocol.h:354
device_main_receiver_t device_main_receiver
Definition a_protocol.h:351
receive_bridge_func_t receive_bridge_func
Definition a_protocol.h:342
parce_preamble_t parce_preamble
Definition a_protocol.h:361
bus_protocol_package_type_enum last_package_type
Definition a_protocol.h:315
transmit_bridge_to_slave_queue_t transmit_bridge_to_slave_queue
Definition a_protocol.h:358
protocol_answer_obj_data_func_t protocol_answer_obj_data_func
Definition a_protocol.h:350
sniffer_conteiner_struct * sniffer_conteiner
Definition a_protocol.h:328
get_specific_pack_info_t get_specific_pack_info
Definition a_protocol.h:359
static_conteiner_struct * data_segment_conteiner
Definition a_protocol.h:326
bus_main_module_header * last_header
Definition a_protocol.h:316
protocol_close_port_callback_t protocol_close_port_callback
Definition a_protocol.h:362
static_conteiner_struct * package_info_conteiner
Definition a_protocol.h:325
soft_timer_class_struct * ms_soft_timer
Definition a_protocol.h:322
uint8_t wait_answer
Definition a_protocol.h:334
transmit_bridge_to_slave_t transmit_bridge_to_slave
Definition a_protocol.h:357
transmit_data_segment_to_master_t transmit_data_segment_to_master
Definition a_protocol.h:353
receive_data_func_t receive_data_func
Definition a_protocol.h:341
int reset_timer_instance
Definition a_protocol.h:319
get_data_from_package_t get_data_from_package
Definition a_protocol.h:346
static_conteiner_struct * transmit_queue_conteiner
Definition a_protocol.h:327
int answer_us_timer_instance
Definition a_protocol.h:320
uint8_t rx_package_counter
Definition a_protocol.h:314
request_from_slave_blocked_t request_from_slave_blocked
Definition a_protocol.h:355
receive_to_current_device_func_t receive_to_current_device_func
Definition a_protocol.h:347
receive_to_another_device_func_t receive_to_another_device_func
Definition a_protocol.h:348
protocol_receive_mode_enum receive_mode
Definition a_protocol.h:364
void * port_device_manager
Definition a_protocol.h:339
uint8_t enable_half_duplex_transmit
Definition a_protocol.h:333
uint32_t last_rx_time
Definition a_protocol.h:337
slave_answer_func_t slave_answer_func
Definition a_protocol.h:343
protocol_answer_func_t protocol_answer_func
Definition a_protocol.h:349
request_handler_blocked_t request_handler_blocked
Definition a_protocol.h:356
Definition a_protocol.h:110
uint8_t payload_crc
Definition a_protocol.h:112
uint16_t size
Definition a_protocol.h:111
uint8_t Data[3]
Definition a_protocol.h:113
Definition a_protocol.h:117
uint8_t Data[6]
Definition a_protocol.h:118
struct var_len_payload_struct var_len_header
Definition a_protocol.h:119
Definition a_protocol.h:105
uint8_t full_address
Definition a_protocol.h:106
struct device_address_struct split_address
Definition a_protocol.h:107