File isotp_protocol.h¶
File List > inc > isotp_protocol.h
Go to the documentation of this file
#ifndef ISOTP_PROTOCOL_H
#define ISOTP_PROTOCOL_H
#include <stddef.h>
#include <stdint.h>
#include "isotp_defs.h"
#ifdef __cplusplus
extern "C"
{
#endif
struct isotp_pdu
{
uint8_t type;
uint32_t message_length;
uint8_t data_offset;
uint8_t data_length;
uint8_t sequence_number;
uint8_t flow_status;
uint8_t block_size;
uint8_t st_min;
};
int isotp_decode(const uint8_t* frame, size_t length, struct isotp_pdu* pdu);
int isotp_encode_single(uint8_t* frame, size_t capacity, const uint8_t* payload, uint32_t length);
int isotp_encode_first(uint8_t* frame, size_t capacity, const uint8_t* payload,
uint32_t message_length);
int isotp_encode_consecutive(uint8_t* frame, size_t capacity, uint8_t sequence_number,
const uint8_t* data, uint32_t length);
int isotp_encode_flow_control(uint8_t* frame, size_t capacity, uint8_t flow_status,
uint8_t block_size, uint8_t st_min);
int isotp_frame_pad(uint8_t* frame, size_t capacity, size_t length, uint8_t value);
uint8_t isotp_st_min_encode(uint32_t us);
uint32_t isotp_st_min_decode(uint8_t st_min);
#ifdef __cplusplus
}
#endif
#endif /* ISOTP_PROTOCOL_H */