28#include "generated/airframe.h"
32#include "pprzlink/pprzlink_device.h"
168 if(cmd ==
't' || cmd ==
'd' || cmd ==
'r') {
170 if(n < 4) {
return -1;}
178 if(n < 9) {
return -1;}
192 if(cmd ==
'r' || cmd ==
'R') {
197 for(
int i=0; i <
tx_frame.len; i++) {
255 for(
int i=0; i<rxframe->
len; i++) {
290 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F'
299 if (a >=
'A' && a <=
'F') {
301 }
else if (a >=
'a' && a <=
'f') {
303 }
else if (a >=
'0' && a <=
'9') {
uint8_t can_dlc_to_len(uint8_t dlc)
int can_register_callback(can_rx_frame_callback_t callback, struct pprzaddr_can *src_addr, void *user_data)
Add a callback on received frames from an interface.
uint8_t can_len_to_dlc(uint8_t len)
uint8_t data[SOCKETCAN_MAX_DLEN]
int can_transmit_frame(struct pprzcan_frame *txframe, struct pprzaddr_can *addr)
int pprz_mtx_unlock(pprz_mutex_t *mtx)
int pprz_mtx_init(pprz_mutex_t *mtx)
int pprz_mtx_lock(pprz_mutex_t *mtx)
static uint8_t hex2nibble(char a)
hex2nibble('B') = 0x0B
static void slcan_rsp_ok(slcan_t *slcan)
void slcan_can_rx_cb(struct pprzcan_frame *rxframe, struct pprzaddr_can *src_addr, void *user_data)
static int slcan_handle_frame(slcan_t *slcan)
static uint8_t slcan_cmd_from_id(uint32_t can_id, uint8_t flags)
static void slcan_rsp_error(slcan_t *slcan)
static uint8_t nibble2hex(uint8_t x)
nibble2hex(2) == '2'
static void slcan_handle_cmd(slcan_t *slcan)
#define SLCAN_CMD_BUF_LEN
uint8_t cmd_buf[SLCAN_CMD_BUF_LEN]
uint8_t tx_buf[SLCAN_CMD_BUF_LEN]
struct pprzaddr_can can_if
arch independent UART (Universal Asynchronous Receiver/Transmitter) API
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.