Skip to content

Commit

Permalink
CONNECTED_ESC_MAX and NUM_MOTOR_OUTPUTS changed.
Browse files Browse the repository at this point in the history
Maximum numbers of connected ESCs in uORB and
in UAVCAN expanded to 16.
  • Loading branch information
irsdkv committed Jun 15, 2019
1 parent 3273547 commit c18c9d0
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
4 changes: 2 additions & 2 deletions msg/esc_status.msg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
uint64 timestamp # time since system start (microseconds)
uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs
uint8 CONNECTED_ESC_MAX = 16 # The number of ESCs supported. Current (Q2/2019) we support 16 ESCs

uint8 ESC_VENDOR_GENERIC = 0 # generic ESC
uint8 ESC_VENDOR_MIKROKOPTER = 1 # Mikrokopter
Expand All @@ -17,4 +17,4 @@ uint16 counter # incremented by the writing thread everytime new data is s
uint8 esc_count # number of connected ESCs
uint8 esc_connectiontype # how ESCs connected to the system

esc_report[8] esc
esc_report[16] esc
2 changes: 1 addition & 1 deletion msg/test_motor.msg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
uint64 timestamp # time since system start (microseconds)
uint8 NUM_MOTOR_OUTPUTS = 8
uint8 NUM_MOTOR_OUTPUTS = 16

uint32 motor_number # number of motor to spin
float32 value # output power, range [0..1]
6 changes: 4 additions & 2 deletions src/drivers/uavcan/uavcan_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -901,9 +901,11 @@ int UavcanNode::run()

} else if (controls_updated && (_mixers != nullptr)) {

// XXX one output group has 8 outputs max,
// XXX one output group has 16 (esc_status_s::CONNECTED_ESC_MAX) outputs max (Q2/2019),
// but this driver could well serve multiple groups.
unsigned num_outputs_max = 8;
unsigned num_outputs_max = (
esc_status_s::CONNECTED_ESC_MAX < static_cast<unsigned>(uavcan::equipment::esc::RawCommand::FieldTypes::cmd::MaxSize) ?
esc_status_s::CONNECTED_ESC_MAX : static_cast<unsigned>(uavcan::equipment::esc::RawCommand::FieldTypes::cmd::MaxSize));

_mixers->set_airmode(_airmode);

Expand Down

0 comments on commit c18c9d0

Please sign in to comment.