File syn_smbus.c¶
FileList > proto > syn_smbus.c
Go to the source code of this file
SMBus Protocol Engine implementation.
#include "syn_smbus.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| uint8_t | syn_smbus_calc_pec (uint8_t init_crc, const uint8_t * data, size_t len) Calculate SMBus Packet Error Checking (PEC) CRC-8 byte. Polynomial: x^8 + x^2 + x + 1 (0x07), Initial value: 0x00. |
| SYN_Status | syn_smbus_decode_packet (SYN_SMBUS_Packet * pkt, const uint8_t * rx_buf, size_t rx_len, SYN_SMBUS_Protocol proto, bool has_pec) Decode an SMBus byte stream into an SMBus packet structure. |
| SYN_Status | syn_smbus_encode_packet (const SYN_SMBUS_Packet * pkt, uint8_t * tx_buf, size_t buf_size, size_t * out_len) Encode an SMBus packet into a byte stream for transmission. |
Public Functions Documentation¶
function syn_smbus_calc_pec¶
Calculate SMBus Packet Error Checking (PEC) CRC-8 byte. Polynomial: x^8 + x^2 + x + 1 (0x07), Initial value: 0x00.
Parameters:
init_crcRunning CRC value (0x00 for fresh calculation).dataPointer to data buffer.lenData length in bytes.
Returns:
Computed PEC byte.
function syn_smbus_decode_packet¶
Decode an SMBus byte stream into an SMBus packet structure.
SYN_Status syn_smbus_decode_packet (
SYN_SMBUS_Packet * pkt,
const uint8_t * rx_buf,
size_t rx_len,
SYN_SMBUS_Protocol proto,
bool has_pec
)
Parameters:
pktPointer to destination packet structure.rx_bufInput buffer containing received bytes.rx_lenLength of received byte stream.protoProtocol format expected.has_pecTrue if PEC byte is appended at end of rx_buf.
Returns:
SYN_OK on success, SYN_ERR_INVALID_CHECKSUM if PEC mismatch, or SYN_ERR_INVALID_PARAM.
function syn_smbus_encode_packet¶
Encode an SMBus packet into a byte stream for transmission.
SYN_Status syn_smbus_encode_packet (
const SYN_SMBUS_Packet * pkt,
uint8_t * tx_buf,
size_t buf_size,
size_t * out_len
)
Parameters:
pktPointer to packet structure.tx_bufOutput buffer.buf_sizeSize of output buffer.out_lenPointer to receive encoded byte count.
Returns:
SYN_OK on success, or error status.
The documentation for this class was generated from the following file src/syntropic/proto/syn_smbus.c