47 lines
1.5 KiB
C
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;
|
|
} |