#include #include #include "hdlc_frame.h" void print_frame(uint8_t* frame_data, size_t frame_length) { printf("Сформированный кадр:\n"); for (size_t i = 0; i < frame_length; i++) { printf("%02X ", frame_data[i]); } printf("\n"); } int main() { uint8_t address = 0x01; uint8_t control = 0x02; uint8_t data[] = {0x10, 0x20, 0x30}; size_t data_length = sizeof(data) / sizeof(data[0]); HDLCFrame* u_frame = create_u_frame(address, control, data, data_length); uint8_t* u_frame_data; size_t u_frame_length; create_frame(u_frame, &u_frame_data, &u_frame_length); print_frame(u_frame_data, u_frame_length); free(u_frame_data); free(u_frame); uint8_t receive_sequence_number = 0x01; uint8_t send_sequence_number = 0x02; HDLCFrame* s_frame = create_s_frame(address, control, data, data_length, receive_sequence_number, send_sequence_number); uint8_t* s_frame_data; size_t s_frame_length; create_frame(s_frame, &s_frame_data, &s_frame_length); print_frame(s_frame_data, s_frame_length); free(s_frame_data); free(s_frame); uint8_t sequence_number = 0x03; HDLCFrame* i_frame = create_i_frame(address, control, data, data_length, sequence_number); uint8_t* i_frame_data; size_t i_frame_length; create_frame(i_frame, &i_frame_data, &i_frame_length); print_frame(i_frame_data, i_frame_length); free(i_frame_data); free(i_frame); return 0; }