mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-24 02:53:33 +08:00
Upgrade UAVCAN to multi pub/sub A API
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2014 PX4 Development Team. All rights reserved.
|
||||
* Copyright (c) 2014, 2015 PX4 Development Team. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -90,28 +90,27 @@ class UavcanCDevSensorBridgeBase : public IUavcanSensorBridge, public device::CD
|
||||
struct Channel
|
||||
{
|
||||
int node_id = -1;
|
||||
orb_id_t orb_id = nullptr;
|
||||
orb_advert_t orb_advert = -1;
|
||||
int class_instance = -1;
|
||||
int orb_instance = -1;
|
||||
};
|
||||
|
||||
const unsigned _max_channels;
|
||||
const char *const _class_devname;
|
||||
orb_id_t *const _orb_topics;
|
||||
const orb_id_t _orb_topic;
|
||||
Channel *const _channels;
|
||||
bool _out_of_channels = false;
|
||||
|
||||
protected:
|
||||
template <unsigned MaxChannels>
|
||||
UavcanCDevSensorBridgeBase(const char *name, const char *devname, const char *class_devname,
|
||||
const orb_id_t (&orb_topics)[MaxChannels]) :
|
||||
const orb_id_t orb_topic_sensor) :
|
||||
device::CDev(name, devname),
|
||||
_max_channels(MaxChannels),
|
||||
_class_devname(class_devname),
|
||||
_orb_topics(new orb_id_t[MaxChannels]),
|
||||
_orb_topic(orb_topic_sensor),
|
||||
_channels(new Channel[MaxChannels])
|
||||
{
|
||||
memcpy(_orb_topics, orb_topics, sizeof(orb_id_t) * MaxChannels);
|
||||
_device_id.devid_s.bus_type = DeviceBusType_UAVCAN;
|
||||
_device_id.devid_s.bus = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user