Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
syslink.h File Reference

Syslink protocol for communication with bitcraze/crazyflie NRF mcu. More...

#include <stdint.h>
#include <stdbool.h>
+ Include dependency graph for syslink.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

Macros

#define SYSLINK_GROUP   0xF0
 
#define SYSLINK_RADIO   0x00
 
#define SYSLINK_RADIO_RAW   0x00
 
#define SYSLINK_RADIO_CHANNEL   0x01
 
#define SYSLINK_RADIO_DATARATE   0x02
 
#define SYSLINK_RADIO_CONTWAVE   0x03
 
#define SYSLINK_RADIO_RSSI   0x04
 
#define SYSLINK_RADIO_ADDRESS   0x05
 
#define SYSLINK_PM   0x10
 
#define SYSLINK_PM_SOURCE   0x10
 
#define SYSLINK_PM_ONOFF_SWITCHOFF   0x11
 
#define SYSLINK_PM_BATTERY_VOLTAGE   0x12
 
#define SYSLINK_PM_BATTERY_STATE   0x13
 
#define SYSLINK_PM_BATTERY_AUTOUPDATE   0x14
 
#define SYSLINK_OW   0x20
 
#define SYSLINK_OW_SCAN   0x20
 
#define SYSLINK_OW_GETINFO   0x21
 
#define SYSLINK_OW_READ   0x22
 
#define SYSLINK_OW_WRITE   0x23
 
#define SYSLINK_MAX_DATA_LEN   32
 
#define SYSLINK_RADIO_RATE_250K   0
 
#define SYSLINK_RADIO_RATE_1M   1
 
#define SYSLINK_RADIO_RATE_2M   2
 

Enumerations

enum  syslink_state_t {
  SYSLINK_STATE_START = 0 , SYSLINK_STATE_TYPE , SYSLINK_STATE_LENGTH , SYSLINK_STATE_DATA ,
  SYSLINK_STATE_CKSUM
}
 

Functions

void syslink_parse_init (syslink_parse_state *state)
 Init syslink parser. More...
 
bool syslink_parse_char (syslink_parse_state *state, uint8_t c, syslink_message_t *msg)
 Parse one byte. More...
 
void syslink_compute_cksum (syslink_message_t *msg)
 Compute syslink checksum. More...
 

Variables

const char * syslink_stx
 

Detailed Description

Syslink protocol for communication with bitcraze/crazyflie NRF mcu.

based on PX4 implementation

Definition in file syslink.h.


Data Structure Documentation

◆ syslink_message_t

struct syslink_message_t

Definition at line 66 of file syslink.h.

Data Fields
uint8_t cksum[2]
uint8_t data[SYSLINK_MAX_DATA_LEN]
uint8_t length
uint8_t type

◆ syslink_parse_state

struct syslink_parse_state

Definition at line 82 of file syslink.h.

Data Fields
int index
syslink_state_t state

Macro Definition Documentation

◆ SYSLINK_GROUP

#define SYSLINK_GROUP   0xF0

Definition at line 35 of file syslink.h.

◆ SYSLINK_MAX_DATA_LEN

#define SYSLINK_MAX_DATA_LEN   32

Definition at line 59 of file syslink.h.

◆ SYSLINK_OW

#define SYSLINK_OW   0x20

Definition at line 52 of file syslink.h.

◆ SYSLINK_OW_GETINFO

#define SYSLINK_OW_GETINFO   0x21

Definition at line 54 of file syslink.h.

◆ SYSLINK_OW_READ

#define SYSLINK_OW_READ   0x22

Definition at line 55 of file syslink.h.

◆ SYSLINK_OW_SCAN

#define SYSLINK_OW_SCAN   0x20

Definition at line 53 of file syslink.h.

◆ SYSLINK_OW_WRITE

#define SYSLINK_OW_WRITE   0x23

Definition at line 56 of file syslink.h.

◆ SYSLINK_PM

#define SYSLINK_PM   0x10

Definition at line 45 of file syslink.h.

◆ SYSLINK_PM_BATTERY_AUTOUPDATE

#define SYSLINK_PM_BATTERY_AUTOUPDATE   0x14

Definition at line 50 of file syslink.h.

◆ SYSLINK_PM_BATTERY_STATE

#define SYSLINK_PM_BATTERY_STATE   0x13

Definition at line 49 of file syslink.h.

◆ SYSLINK_PM_BATTERY_VOLTAGE

#define SYSLINK_PM_BATTERY_VOLTAGE   0x12

Definition at line 48 of file syslink.h.

◆ SYSLINK_PM_ONOFF_SWITCHOFF

#define SYSLINK_PM_ONOFF_SWITCHOFF   0x11

Definition at line 47 of file syslink.h.

◆ SYSLINK_PM_SOURCE

#define SYSLINK_PM_SOURCE   0x10

Definition at line 46 of file syslink.h.

◆ SYSLINK_RADIO

#define SYSLINK_RADIO   0x00

Definition at line 37 of file syslink.h.

◆ SYSLINK_RADIO_ADDRESS

#define SYSLINK_RADIO_ADDRESS   0x05

Definition at line 43 of file syslink.h.

◆ SYSLINK_RADIO_CHANNEL

#define SYSLINK_RADIO_CHANNEL   0x01

Definition at line 39 of file syslink.h.

◆ SYSLINK_RADIO_CONTWAVE

#define SYSLINK_RADIO_CONTWAVE   0x03

Definition at line 41 of file syslink.h.

◆ SYSLINK_RADIO_DATARATE

#define SYSLINK_RADIO_DATARATE   0x02

Definition at line 40 of file syslink.h.

◆ SYSLINK_RADIO_RATE_1M

#define SYSLINK_RADIO_RATE_1M   1

Definition at line 62 of file syslink.h.

◆ SYSLINK_RADIO_RATE_250K

#define SYSLINK_RADIO_RATE_250K   0

Definition at line 61 of file syslink.h.

◆ SYSLINK_RADIO_RATE_2M

#define SYSLINK_RADIO_RATE_2M   2

Definition at line 63 of file syslink.h.

◆ SYSLINK_RADIO_RAW

#define SYSLINK_RADIO_RAW   0x00

Definition at line 38 of file syslink.h.

◆ SYSLINK_RADIO_RSSI

#define SYSLINK_RADIO_RSSI   0x04

Definition at line 42 of file syslink.h.

Enumeration Type Documentation

◆ syslink_state_t

Enumerator
SYSLINK_STATE_START 
SYSLINK_STATE_TYPE 
SYSLINK_STATE_LENGTH 
SYSLINK_STATE_DATA 
SYSLINK_STATE_CKSUM 

Definition at line 74 of file syslink.h.

Function Documentation

◆ syslink_compute_cksum()

void syslink_compute_cksum ( syslink_message_t msg)

Compute syslink checksum.

Parameters
msgpointer to message structure

Definition at line 112 of file syslink.c.

References b, and msg.

Referenced by send_message(), and syslink_parse_char().

+ Here is the caller graph for this function:

◆ syslink_parse_char()

bool syslink_parse_char ( syslink_parse_state state,
uint8_t  c,
syslink_message_t msg 
)

Parse one byte.

Parameters
statepointer to state structure
cnext byte to parse
msgpointer to message structure
Returns
true if a full message was parsed

Definition at line 39 of file syslink.c.

References msg, state, syslink_compute_cksum(), SYSLINK_MAX_DATA_LEN, SYSLINK_STATE_CKSUM, SYSLINK_STATE_DATA, SYSLINK_STATE_LENGTH, SYSLINK_STATE_START, SYSLINK_STATE_TYPE, and syslink_stx.

Referenced by syslink_dl_event().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ syslink_parse_init()

void syslink_parse_init ( syslink_parse_state state)

Init syslink parser.

Parameters
statepointer to state structure

Definition at line 33 of file syslink.c.

References state, and SYSLINK_STATE_START.

Referenced by syslink_dl_init().

+ Here is the caller graph for this function:

Variable Documentation

◆ syslink_stx

const char* syslink_stx
extern

Definition at line 31 of file syslink.c.

Referenced by send_message(), and syslink_parse_char().