mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 14:33:34 +08:00
UAVCAN: initializing all bridges by default
This commit is contained in:
@@ -56,17 +56,12 @@ _report_pub(-1)
|
||||
|
||||
int UavcanGnssBridge::init()
|
||||
{
|
||||
int res = -1;
|
||||
|
||||
// GNSS fix subscription
|
||||
res = _sub_fix.start(FixCbBinder(this, &UavcanGnssBridge::gnss_fix_sub_cb));
|
||||
int res = _sub_fix.start(FixCbBinder(this, &UavcanGnssBridge::gnss_fix_sub_cb));
|
||||
if (res < 0)
|
||||
{
|
||||
warnx("GNSS fix sub failed %i", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
warnx("gnss sensor bridge init ok");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,27 +45,11 @@
|
||||
/*
|
||||
* IUavcanSensorBridge
|
||||
*/
|
||||
IUavcanSensorBridge* IUavcanSensorBridge::make(uavcan::INode &node, const char *bridge_name)
|
||||
void IUavcanSensorBridge::make_all(uavcan::INode &node, List<IUavcanSensorBridge*> &list)
|
||||
{
|
||||
/*
|
||||
* TODO: make a linked list of known implementations at startup?
|
||||
*/
|
||||
if (!std::strncmp(UavcanGnssBridge::NAME, bridge_name, MAX_NAME_LEN)) {
|
||||
return new UavcanGnssBridge(node);
|
||||
} else if (!std::strncmp(UavcanMagnetometerBridge::NAME, bridge_name, MAX_NAME_LEN)) {
|
||||
return new UavcanMagnetometerBridge(node);
|
||||
} else if (!std::strncmp(UavcanBarometerBridge::NAME, bridge_name, MAX_NAME_LEN)) {
|
||||
return new UavcanBarometerBridge(node);
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void IUavcanSensorBridge::print_known_names(const char *prefix)
|
||||
{
|
||||
printf("%s%s\n", prefix, UavcanGnssBridge::NAME);
|
||||
printf("%s%s\n", prefix, UavcanMagnetometerBridge::NAME);
|
||||
printf("%s%s\n", prefix, UavcanBarometerBridge::NAME);
|
||||
list.add(new UavcanBarometerBridge(node));
|
||||
list.add(new UavcanMagnetometerBridge(node));
|
||||
list.add(new UavcanGnssBridge(node));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -73,12 +73,7 @@ public:
|
||||
* Creates a bridge object by its ASCII name, e.g. "gnss", "mag".
|
||||
* @return nullptr if such bridge can't be created.
|
||||
*/
|
||||
static IUavcanSensorBridge* make(uavcan::INode &node, const char *bridge_name);
|
||||
|
||||
/**
|
||||
* Prints all valid bridge names into stdout via printf(), one name per line with prefix.
|
||||
*/
|
||||
static void print_known_names(const char *prefix);
|
||||
static void make_all(uavcan::INode &node, List<IUavcanSensorBridge*> &list);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user