Display_Avr_3/hdlc/test_hdlc_frame.c
2023-06-15 16:22:51 +03:00

47 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#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;
}