Display_Avr_3/hdlc/test_hdlc_frame.c
2023-06-15 19:48:27 +03:00

42 lines
1.3 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[MAX_FRAME_LENGTH];
size_t u_frame_length;
create_frame(u_frame, u_frame_data, &u_frame_length);
print_frame(u_frame_data, u_frame_length);
HDLCFrame* s_frame = create_s_frame(address, control, data, data_length, 0x01, 0x02);
uint8_t s_frame_data[MAX_FRAME_LENGTH];
size_t s_frame_length;
create_frame(s_frame, s_frame_data, &s_frame_length);
print_frame(s_frame_data, s_frame_length);
HDLCFrame* i_frame = create_i_frame(address, control, data, data_length, 0x03);
uint8_t i_frame_data[MAX_FRAME_LENGTH];
size_t i_frame_length;
create_frame(i_frame, i_frame_data, &i_frame_length);
print_frame(i_frame_data, i_frame_length);
free(u_frame);
free(s_frame);
free(i_frame);
return 0;
}