File syn_sbus.c¶
FileList > proto > syn_sbus.c
Go to the source code of this file
Zero-Heap SBUS (Futaba/FrSky) 16-Channel Receiver Decoder Implementation.
#include "syntropic/proto/syn_sbus.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_sbus_decode_buffer (const uint8_t buf, SYN_SBUS_Frame * frame) Decode raw 25-byte SBUS frame buffer into channel outputs. |
| SYN_Status | syn_sbus_init (SYN_SBUS_Parser * parser) Initialize SBUS parser state machine. |
| SYN_Status | syn_sbus_parse_byte (SYN_SBUS_Parser * parser, uint8_t byte, SYN_SBUS_Frame * frame) Process single incoming byte from UART. |
| uint16_t | syn_sbus_raw_to_us (uint16_t raw_val) Convert raw 11-bit SBUS channel value to pulse width in microseconds (us). |
Public Functions Documentation¶
function syn_sbus_decode_buffer¶
Decode raw 25-byte SBUS frame buffer into channel outputs.
Decode raw 25-byte SBUS frame buffer directly.
Parameters:
bufPointer to 25-byte raw SBUS frame buffer.framePointer to output SBUS decoded frame structure.
Returns:
SYN_OK on success, SYN_INVALID_PARAM or SYN_ERROR on header mismatch.
function syn_sbus_init¶
Initialize SBUS parser state machine.
Parameters:
parserPointer to parser struct.
Returns:
SYN_OK on success.
function syn_sbus_parse_byte¶
Process single incoming byte from UART.
Parameters:
parserPointer to parser struct.byteIncoming serial byte.framePointer to output frame struct (populated when a complete valid 25-byte frame is decoded).
Returns:
SYN_OK if complete frame decoded, SYN_BUSY if byte accepted but frame incomplete, SYN_ERROR on header mismatch.
function syn_sbus_raw_to_us¶
Convert raw 11-bit SBUS channel value to pulse width in microseconds (us).
Standard mapping: * 172 raw -> 1000 us * 992 raw -> 1500 us * 1811 raw -> 2000 us
Parameters:
raw_val11-bit raw SBUS channel value (172..1811).
Returns:
Pulse width in microseconds (clamped 1000..2000 us).
The documentation for this class was generated from the following file src/syntropic/proto/syn_sbus.c