13#include "uavcan.protocol.dynamic_node_id.Allocation.h"
14#include "uavcan.protocol.GetNodeInfo.h"
16#ifndef UAVCAN_MAX_NODES
17#define UAVCAN_MAX_NODES 50
20#define INVALID_STAGE -1
80 if(
msg->first_part_of_unique_id) {
191 for(
int i=0; i<
msg.unique_id.len; i++) {
237 for(
int i=0; i<16; i++) {
238 mapping->unique_id.data[i] =
msg.hardware_version.unique_id[i];
uint8_t msg[10]
Buffer used for general comunication over SPI (out buffer)
void uavcan_request(struct uavcan_iface_t *iface, uint8_t destination_node_id, CanardTxTransfer *transfer)
void uavcan_broadcast(struct uavcan_iface_t *iface, uint64_t data_type_signature, uint16_t data_type_id, uint8_t priority, const void *payload, uint16_t payload_len)
Legacy function Broadcast an uavcan message to a specific interface.
void uavcan_bind(uint16_t data_type_id, uint64_t data_type_signature, uavcan_event *ev, uavcan_callback cb)
Bind to a receiving message from uavcan.
Main uavcan event structure for registering/calling callbacks.
uavcan interface structure
static void handleAllocationRequest(struct uavcan_iface_t *iface, uint8_t preferred_node_id)
static void node_info_resp_cb(struct uavcan_iface_t *iface, CanardRxTransfer *transfer)
static uavcan_event node_info_ev
static struct uavcan_node_mapping_t uavcan_node_ids[UAVCAN_MAX_NODES]
static int getExpectedStage(void)
static struct uavcan_node_mapping_t * get_free_id_mapping(void)
#define UAVCAN_MAX_NODES
Dynamic node ID allocation.
static bool unique_id_identical(int index)
static uavcan_event id_alloc_ev
struct uavcan_unique_id_t current_unique_id
struct uavcan_node_mapping_t * uavcan_get_node_id_mapping(const uint8_t id)
static int findFreeNodeID(const uint8_t preferred)
uint32_t last_message_timestamp
void request_node_info(struct uavcan_iface_t *iface, uint8_t destination_node_id)
static void id_alloc_uavcan_cb(struct uavcan_iface_t *iface, CanardRxTransfer *transfer)
void uavcan_allocator_init(void)
static int detectRequestStage(struct uavcan_protocol_dynamic_node_id_Allocation *msg)
struct uavcan_unique_id_t unique_id
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.
int transfer(const Mat *from, const image_t *to)