mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
drivers/uavcan: add new UAVCAN_SUB_* parameters to enable subscriptions
- only GPS and mag are enabled by default
This commit is contained in:
parent
fd96bbf9b9
commit
ea9c64dcd9
@ -56,28 +56,89 @@
|
||||
*/
|
||||
void IUavcanSensorBridge::make_all(uavcan::INode &node, List<IUavcanSensorBridge *> &list)
|
||||
{
|
||||
list.add(new UavcanBarometerBridge(node));
|
||||
list.add(new UavcanMagnetometerBridge(node));
|
||||
list.add(new UavcanGnssBridge(node));
|
||||
list.add(new UavcanFlowBridge(node));
|
||||
// airspeed
|
||||
int32_t uavcan_sub_aspd = 1;
|
||||
param_get(param_find("UAVCAN_SUB_ASPD"), &uavcan_sub_aspd);
|
||||
|
||||
int32_t bat_monitor;
|
||||
param_t _param_bat_monitor = param_find("UAVCAN_BAT_MON");
|
||||
param_get(_param_bat_monitor, &bat_monitor);
|
||||
if (uavcan_sub_aspd != 0) {
|
||||
list.add(new UavcanAirspeedBridge(node));
|
||||
}
|
||||
|
||||
if (bat_monitor == 0) {
|
||||
// baro
|
||||
int32_t uavcan_sub_baro = 1;
|
||||
param_get(param_find("UAVCAN_SUB_BARO"), &uavcan_sub_baro);
|
||||
|
||||
if (uavcan_sub_baro != 0) {
|
||||
list.add(new UavcanBarometerBridge(node));
|
||||
}
|
||||
|
||||
// battery
|
||||
int32_t uavcan_sub_bat = 1;
|
||||
param_get(param_find("UAVCAN_SUB_BAT"), &uavcan_sub_bat);
|
||||
|
||||
if (uavcan_sub_bat == 1) {
|
||||
list.add(new UavcanBatteryBridge(node));
|
||||
|
||||
} else if (bat_monitor == 1) {
|
||||
} else if (uavcan_sub_bat == 2) {
|
||||
list.add(new UavcanCBATBridge(node));
|
||||
}
|
||||
|
||||
list.add(new UavcanAirspeedBridge(node));
|
||||
list.add(new UavcanDifferentialPressureBridge(node));
|
||||
list.add(new UavcanRangefinderBridge(node));
|
||||
list.add(new UavcanAccelBridge(node));
|
||||
list.add(new UavcanGyroBridge(node));
|
||||
list.add(new UavcanIceStatusBridge(node));
|
||||
// differential pressure
|
||||
int32_t uavcan_sub_dpres = 1;
|
||||
param_get(param_find("UAVCAN_SUB_DPRES"), &uavcan_sub_dpres);
|
||||
|
||||
if (uavcan_sub_dpres != 0) {
|
||||
list.add(new UavcanDifferentialPressureBridge(node));
|
||||
}
|
||||
|
||||
// flow
|
||||
int32_t uavcan_sub_flow = 1;
|
||||
param_get(param_find("UAVCAN_SUB_FLOW"), &uavcan_sub_flow);
|
||||
|
||||
if (uavcan_sub_flow != 0) {
|
||||
list.add(new UavcanFlowBridge(node));
|
||||
}
|
||||
|
||||
// GPS
|
||||
int32_t uavcan_sub_gps = 1;
|
||||
param_get(param_find("UAVCAN_SUB_GPS"), &uavcan_sub_gps);
|
||||
|
||||
if (uavcan_sub_gps != 0) {
|
||||
list.add(new UavcanGnssBridge(node));
|
||||
}
|
||||
|
||||
// ice (internal combustion engine)
|
||||
int32_t uavcan_sub_ice = 1;
|
||||
param_get(param_find("UAVCAN_SUB_ICE"), &uavcan_sub_ice);
|
||||
|
||||
if (uavcan_sub_ice != 0) {
|
||||
list.add(new UavcanIceStatusBridge(node));
|
||||
}
|
||||
|
||||
// IMU
|
||||
int32_t uavcan_sub_imu = 1;
|
||||
param_get(param_find("UAVCAN_SUB_IMU"), &uavcan_sub_imu);
|
||||
|
||||
if (uavcan_sub_imu != 0) {
|
||||
list.add(new UavcanAccelBridge(node));
|
||||
list.add(new UavcanGyroBridge(node));
|
||||
}
|
||||
|
||||
// magnetometer
|
||||
int32_t uavcan_sub_mag = 1;
|
||||
param_get(param_find("UAVCAN_SUB_MAG"), &uavcan_sub_mag);
|
||||
|
||||
if (uavcan_sub_mag != 0) {
|
||||
list.add(new UavcanMagnetometerBridge(node));
|
||||
}
|
||||
|
||||
// range finder
|
||||
int32_t uavcan_sub_rng = 1;
|
||||
param_get(param_find("UAVCAN_SUB_RNG"), &uavcan_sub_rng);
|
||||
|
||||
if (uavcan_sub_rng != 0) {
|
||||
list.add(new UavcanRangefinderBridge(node));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (c) 2014, 2015 PX4 Development Team. All rights reserved.
|
||||
* Copyright (c) 2014-2021 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
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (c) 2014-2017 PX4 Development Team. All rights reserved.
|
||||
* Copyright (c) 2014-2021 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
|
||||
@ -195,18 +195,131 @@ PARAM_DEFINE_INT32(UAVCAN_LGT_NAV, 3);
|
||||
PARAM_DEFINE_INT32(UAVCAN_LGT_LAND, 0);
|
||||
|
||||
/**
|
||||
* UAVCAN BATTERY_MONITOR battery monitor selection
|
||||
* subscription airspeed
|
||||
*
|
||||
* This parameter defines that the system will select the battery monitor under the following conditions
|
||||
* Enable UAVCAN airspeed subscriptions.
|
||||
* uavcan::equipment::air_data::IndicatedAirspeed
|
||||
* uavcan::equipment::air_data::TrueAirspeed
|
||||
* uavcan::equipment::air_data::StaticTemperature
|
||||
*
|
||||
* 0 - default battery monitor
|
||||
* 1 - CUAV battery monitor
|
||||
*
|
||||
* @min 0
|
||||
* @max 1
|
||||
* @value 0 default battery monitor
|
||||
* @value 1 CUAV battery monitor
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_BAT_MON, 0);
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_ASPD, 0);
|
||||
|
||||
/**
|
||||
* subscription barometer
|
||||
*
|
||||
* Enable UAVCAN barometer subscription.
|
||||
* uavcan::equipment::air_data::StaticPressure
|
||||
* uavcan::equipment::air_data::StaticTemperature
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_BARO, 0);
|
||||
|
||||
/**
|
||||
* subscription battery
|
||||
*
|
||||
* Enable UAVCAN battery subscription.
|
||||
* 1) uavcan::equipment::power::BatteryInfo
|
||||
* 2) cuav::equipment::power::CBAT
|
||||
*
|
||||
* @min 0
|
||||
* @max 2
|
||||
* @value 0 disabled
|
||||
* @value 1 default
|
||||
* @value 2 CUAV battery monitor
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_BAT, 0);
|
||||
|
||||
/**
|
||||
* subscription differential pressure
|
||||
*
|
||||
* Enable UAVCAN differential pressure subscription.
|
||||
* uavcan::equipment::air_data::RawAirData
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_DPRES, 0);
|
||||
|
||||
/**
|
||||
* subscription flow
|
||||
*
|
||||
* Enable UAVCAN optical flow subscription.
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_FLOW, 0);
|
||||
|
||||
/**
|
||||
* subscription GPS
|
||||
*
|
||||
* Enable UAVCAN GPS subscriptions.
|
||||
* uavcan::equipment::gnss::Fix
|
||||
* uavcan::equipment::gnss::Fix2
|
||||
* uavcan::equipment::gnss::Auxiliary
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_GPS, 1);
|
||||
|
||||
/**
|
||||
* subscription ICE
|
||||
*
|
||||
* Enable UAVCAN internal combusion engine (ICE) subscription.
|
||||
* uavcan::equipment::ice::reciprocating::Status
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_ICE, 0);
|
||||
|
||||
/**
|
||||
* subscription IMU
|
||||
*
|
||||
* Enable UAVCAN IMU subscription.
|
||||
* uavcan::equipment::ahrs::RawIMU
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_IMU, 0);
|
||||
|
||||
/**
|
||||
* subscription magnetometer
|
||||
*
|
||||
* Enable UAVCAN GPS subscription.
|
||||
* uavcan::equipment::ahrs::MagneticFieldStrength
|
||||
* uavcan::equipment::ahrs::MagneticFieldStrength2
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_MAG, 1);
|
||||
|
||||
/**
|
||||
* subscription range finder
|
||||
*
|
||||
* Enable UAVCAN GPS subscription.
|
||||
* uavcan::equipment::range_sensor::Measurement
|
||||
*
|
||||
* @boolean
|
||||
* @reboot_required true
|
||||
* @group UAVCAN
|
||||
*/
|
||||
PARAM_DEFINE_INT32(UAVCAN_SUB_RNG, 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user