42 lines
1.3 KiB
C
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;
|
|
} |