21 lines
797 B
C
21 lines
797 B
C
#ifndef HDLC_FRAME_H
|
|
#define HDLC_FRAME_H
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef struct {
|
|
uint8_t address;
|
|
uint8_t control;
|
|
uint8_t* data;
|
|
size_t data_length;
|
|
} HDLCFrame;
|
|
|
|
void initialize_frame(HDLCFrame* frame, uint8_t address, uint8_t control, uint8_t* data, size_t data_length);
|
|
uint16_t calculate_fcs(HDLCFrame* frame);
|
|
void create_frame(HDLCFrame* frame, uint8_t** frame_data, size_t* frame_length);
|
|
|
|
HDLCFrame* create_u_frame(uint8_t address, uint8_t control, uint8_t* data, size_t data_length);
|
|
HDLCFrame* create_s_frame(uint8_t address, uint8_t control, uint8_t* data, size_t data_length, uint8_t receive_sequence_number, uint8_t send_sequence_number);
|
|
HDLCFrame* create_i_frame(uint8_t address, uint8_t control, uint8_t* data, size_t data_length, uint8_t sequence_number);
|
|
|
|
#endif |