1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * tnc_kiss.h
- *
- * Created on: Jun 12, 2019
- * Author: curiousmuch
- */
- #ifndef MAIN_TNC_KISS_H_
- #define MAIN_TNC_KISS_H_
- // Logging Tag
- #define TNC_TAG "KISS TNC"
- // Frame Buffer
- #define FRAME_BUFFER_SIZE 512
- // KISS Specific Characters
- #define KISS_FEND 0xC0
- #define KISS_FESC 0xDB
- #define KISS_TFEND 0xDC
- #define KISS_TFESC 0xDD
- // KISS Commands
- // command Structure: [ 4 bits ][ 4 bits ]
- // [ TNC # ][ cmd ]
- #define KISS_DATAFRAME 0x00 // data to be send on HDLC channel
- #define KISS_CMD_TXDELAY 0x01 // keyup delay in 10ms units. default is 50ms.
- #define KISS_CMD_P 0x02
- #define KISS_CMD_SLOTTIME 0x03
- #define KISS_CMD_TXTAIL 0x04
- #define KISS_CMD_FULLDUPLEX 0x05
- #define KISS_CMD_SETHARDWARE 0x06
- #define KISS_CMD_RETURN 0xFF
- // TXDELAY: TX keyup delay in 10 ms units. Default = 50 (500ms)
- // P: Persistence scaled 0 - 255. P = p *256 -1. Default = 63 (p = 0.25)
- // SlotTime: Slot interval in 10ms units. Default = 10 (100ms)
- // TXTail: Time to hold TX after FCS has been sent in 10ms units. Default = 0
- // FullDuplex: 0 = Half Duplex. >0 = Full Duplex. Default = 0
- // SetHardware: Custom
- // Return: Exit Kiss
- typedef struct {
- uint8_t tx_delay;
- uint8_t persistence;
- uint8_t slot_time;
- uint8_t tx_tail;
- uint8_t full_duplex;
- } tnc_settings_t;
- typedef enum {
- ESC_MODE = 0,
- FRAME_ASS,
- FRAME_END,
- } KISS_STATE_t;
- typedef struct {
- uint8_t buf[FRAME_BUFFER_SIZE];
- uint32_t max_len;
- uint32_t index;
- } buffer_handle_t;
- typedef struct {
- uint8_t *data;
- uint16_t len;
- } raw_kiss_frame_t;
- typedef struct {
- uint8_t *data;
- uint16_t len;
- } raw_ax25_frame_t;
- #endif /* MAIN_TNC_KISS_H_ */
|