-
Notifications
You must be signed in to change notification settings - Fork 15.3k
feat(dshot): Extended Telemetry and EEPROM support #26263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 74 commits
Commits
Show all changes
217 commits
Select commit
Hold shift + click to select a range
b93cb96
rebased
dakejahl 74da73e
fix frame quantization
dakejahl 844b5ad
add no_data counter
dakejahl a63f180
increase telem processing delay from 3 to 5 seconds
dakejahl 316c0c1
adaptive gcr bit width tracking
dakejahl bc89140
cleaned up
dakejahl 9761cb3
improve dshot status output
dakejahl 1d576c0
added am32_eeprom to mavlink
dakejahl bd4ac2a
added mavlink submodule
dakejahl 5c7e33d
fixup mavlink, enable development on ARK FPV
dakejahl 55cdb4d
it's working
dakejahl b4e69e9
update mavlink
dakejahl 22ac085
update mavlink
dakejahl e674459
rename to ESC_EEPROM and fix up logic for 192 length
dakejahl c6c8cdd
mavlink submodule
dakejahl 3b9ea30
clean up naming
dakejahl 46cecf6
multi timer, first pass
dakejahl d1d5417
fix issues found during review, clean up
dakejahl 4b3cd1e
fix names and variables and remove dead code
dakejahl 22587b0
bdshot per channel, use PWM_TIM param for BDSHOT instead of single pa…
dakejahl f6eeacf
temporarily comment out dshot re-init
dakejahl 3c8a652
before claude
dakejahl 8ab112b
after claudes fixes
dakejahl bf78377
fix esc online mask ordering, fix bdshot channels ready check, improv…
dakejahl 4ee3d27
sequential dshot burst/capture timer triggering, it works!
dakejahl 72cd09b
fix handling MAV_CMD_CONFIGURE_ACTUATOR -1000
dakejahl 2d7b3a8
bdshot_analyzer.py for saleae timign analysis
dakejahl 597611e
code simplifier
dakejahl b5e9457
remove bdshot_timing_analyzer_spec.md
dakejahl 24d7cd4
board: ark_fpv: add rc.board_airframes to reduce flash
dakejahl 458c775
fix ifdef, adjust esc isInRange check
dakejahl c434ef1
fix build and rename _param_escs_checks_required
dakejahl 9ad690d
fix rpm overflow, change type to int32
dakejahl 6bc0e0c
dshot: imxrt: fix unsigned to uint8_t in dshot_motor_data_set
dakejahl 7edc606
don't use DSHOT_TEL_CFG directly in code since it is autogenerated on…
dakejahl 8847c3c
dshot: trigger timers at the same time, with 10us delay between burst…
dakejahl 4d09521
make format
dakejahl e835394
mavlink: fixup ifdefs around ESC_EEPROM
julianoes b1585a7
Update platforms/nuttx/src/px4/stm/stm32_common/dshot/dshot.c
dakejahl 89f1410
Update platforms/nuttx/src/px4/stm/stm32_common/dshot/dshot.c
dakejahl 44f62fd
rename perf counters, skip burst delay on last channel
dakejahl c9a8f37
remove TODO
dakejahl bbbac3b
remove debug mavlink code
dakejahl 5cde036
fix date
dakejahl d72542a
replace eeprom struct with opaque buffer
dakejahl 0c51b25
dshot: support timer channels without DMA capture
julianoes 3ef8b10
dshot: improve status output
julianoes b26b3ac
boards: fixup timers and DMA for KakuteH7-Wing
julianoes 47bb143
adjust debug message
dakejahl 6f8ba00
dshot: fix bug preventing writing settings
dakejahl ac5fba4
imxrt: add up_bdshot_channel_capture_supported
dakejahl a9f5e5d
remove extra newlines
dakejahl 4f70ed3
dshot: fix optarg list
dakejahl b05c772
dshot: module.yaml: esc_type default 0
dakejahl 130ec77
boards: don't use the word capture
julianoes 81a8a88
msg/mavlink: report up to 12 motors
julianoes 53a4a87
dshot: enable up to 16 DShot channels
julianoes b1b3a69
Update to UORB docs according to standard
hamishwillee 408a773
ARKV6X fix flash overflow
AlexKlimaj f6a0ed5
dshot: remove redundant static_assert for ESC_MAX channels
AlexKlimaj b9f6e35
dshot: just publish at 200 Hz
julianoes 7b09845
dshot: add EDT data to status
julianoes 7e2361a
dshot: fix EDT request
julianoes ae5b191
bump mavlink
dakejahl 4cfda1f
Merge branch 'main' into dev/dshot_stuff2
dakejahl f78ce5b
clean up
dakejahl e5068e1
cleanup print_status, rename perf counters
dakejahl 789bdbd
dshot: replace MOT_POLE_COUNT with per-motor parameters DSHOT_MOT_POL
dakejahl d68cbad
ark_fpv: add 2106_albatross to airframe list
dakejahl 5be7943
ark boards: change GPIO_FMU output init from PULLDOWN to PULLUP
dakejahl 06e6b51
Merge branch 'jake/ark_outputs_pullup' into dev/dshot_stuff2
dakejahl 6126c01
remove fmu output gpio init
dakejahl 32a880d
Merge branch 'jake/ark_outputs_pullup' into dev/dshot_stuff2
dakejahl c1586bc
Merge branch 'main' into dev/dshot_stuff2
dakejahl f9798f6
Merge branch 'main' into dev/dshot_stuff2
dakejahl 6397c11
EscReport.msg: fix motor_temperature comment syntax
dakejahl c464dc5
fix syntax
dakejahl 77c32fe
Merge branch 'main' into dev/dshot_stuff2
dakejahl e37c4cf
ark_fpv: mavlink-dev.px4board
dakejahl 5cf7411
EscReport: remove unimplemented esc_cmdcount
dakejahl a88db5b
logged_topics.cpp: revert changes
dakejahl 6fb29ae
remove Tools/bdshot_analyzer.py
dakejahl c2e5d09
ark_fmu-v6x: mavlink-dev.px4board
dakejahl 1c577c4
ark_pi6x: mavlink-dev.px4board
dakejahl 5eb1cba
add docs
dakejahl 4d80877
Update docs/en/esc/ark_4in1_esc.md
dakejahl 86e9eb8
Update docs/en/peripherals/dshot.md
dakejahl 98932f5
Update docs/en/peripherals/dshot.md
dakejahl 74e21bb
Update docs/en/peripherals/dshot.md
dakejahl 6118dfc
docs: dshot: add back 1.16 badge
dakejahl 34eae75
docs: dshot: add links to dshot/bdshot spec
dakejahl 1fc67ff
Merge branch 'main' into dev/dshot_stuff2
dakejahl c919a83
Merge branch 'main' into dev/dshot_stuff2
AlexKlimaj bf772e2
Merge branch 'main' into dev/dshot_stuff2
dakejahl cedc4f0
Merge branch 'main' into dev/dshot_stuff2
dakejahl c47dbfb
fix(dshot): widen motor masks to uint16_t for 12 ESC support
dakejahl bb3f95a
fix(dshot): bounds-check esc_index before shift operations
dakejahl 069eff3
fix(dshot): use unit16 for voltage/current/erpm
dakejahl 46093fe
fix(dshot): translate REQUEST_MESSAGE to ESC_REQUEST_EEPROM in mavlin…
dakejahl 7c142b4
fix(format): make format
dakejahl 396c90c
fix(dshot): volatile keyword to _bdshot_cycle_complete
dakejahl 6573fe6
fix(dshot): added TODO
dakejahl f2e7fe1
fix(dshot): typo
dakejahl 508c4a8
fix(dshot): clamp command response bytes to prevent buffer overflow
dakejahl 2dccba9
fix(dshot): bounds check timer channel
dakejahl 9cc0a82
refactor(dshot): replace timer config magic numbers with named constants
dakejahl 519e1bc
fix(dshot): warn on mixed DShot frequencies across timer groups
dakejahl b27699b
style(dshot): remove commented-out code
dakejahl d85a059
fix(dshot): fix typos in messages, docs, and comments
dakejahl 9a36d24
fix(mavlink): only copy actual EEPROM data length in ESC_EEPROM stream
dakejahl 2fde11a
fix(mavlink): guard esc_eeprom_write include and member behind ifdef
dakejahl 7a1464e
refactor(dshot): rename bdshot_success perf counter to bdshot_recv
dakejahl 19a5faa
fix(format): formatting
dakejahl 818992c
fix(ark/fpv): revert bootloader
dakejahl e65bcca
fix(ark/v6x): revert .px4board changes
dakejahl 67ac464
fix(uavcan/actuators): bump uint8 to uint16 for check_escs_status() r…
dakejahl f4b4777
fix(dshot): use EscData.source field
dakejahl 26e10e2
fix(dshot): specify static variables
dakejahl ef5e550
fix(dshot): count_set_bits() return type uint32
dakejahl c4aecf4
fix(param_translation): translate MOT_POLE_COUNT to DSHOT_MOT_POL{i}
dakejahl 1ac876c
fix(dshot): change print INFO to DEBUG
dakejahl c8e51e8
fix(dshot): change bool 0 to false
dakejahl 2b3434c
chore(dshot): update copyright year
dakejahl dd6d769
chore(dshot): clean up DSHOT_MAXIMUM_CHANNELS usage
dakejahl 237b0da
fix(dshot): fix mask mapping
dakejahl d663a24
fix(dshot): use motor_index for error rate tracking, cast esc.current…
dakejahl d23abea
revert(dshot): b9f6e35a43f123e293bba5b0e48d05d0bf2da555#diff-ee11cd0d…
dakejahl b615b1c
fix(dshot): unsigned type
dakejahl 78b086b
fix(dshot): PX4_ERR on command response overflow
dakejahl b3fca07
fix(dshot): cleanup
dakejahl 014ee2c
chore(dshot): rename
dakejahl a386fd8
fix(mavlink): use PX4_DEBUG
dakejahl 1cec80f
fix(dshot): fail on command response overflow
dakejahl b87353f
fix(dshot): constrain pole_count to 2 to avoid divide by zero
dakejahl 05d0d5c
fix(dshot): use CONNECTED_ESC_MAX for param handle array length
dakejahl 591def5
fix(dshot): check channel value before array indexing
dakejahl f09f18f
fix(dshot): init bdshot_channel_mask to zero
dakejahl 12ba983
fix(dshot): return sentinel from output_channel_from_timer_channel on…
dakejahl 6f3b085
Revert "chore(dshot): rename"
dakejahl 4e16907
fix(dshot/nxp): bounds check on up_bdshot_num_errors()
dakejahl bb01f56
fix(dshot): remove dead code
dakejahl 112c79f
fix(dshot): fix remaining mask mapping actuator->motor ordering issues
dakejahl fe6274b
refactor(dshot): simplify function to return void
dakejahl 0843a8f
fix(dshot): reset command response state on overflow
dakejahl 1c93b10
fix(dshot): fix actuator/motor index inconsistencies
dakejahl 5bb82d6
fix(msg): remove extra param fields in vehicle cmd
dakejahl 93904c0
refactor(dshot): use lroundf() for float-to-int param conversion
dakejahl 19c6637
fix(dshot): zero init array
dakejahl 11bf15f
fix(dshot): adjust max command response from 192 to 49
dakejahl 81ae5b6
Merge branch 'main' into dev/dshot_stuff2
dakejahl 96437b6
fix(dshot): fix PRIx32 formatting
dakejahl 4798dd2
chore(msg): fix whitespace
dakejahl ea8c3a9
fix(dshot): revert -DDEBUG_BUILD
dakejahl e102c9c
fix(params): fix PRId32 format specifier in param_translation
dakejahl d07ec69
fix(mavlink): copy const vehicle_command before modifying
dakejahl d6e2111
fix(logger): reduce esc_status logging to 10Hz
dakejahl fb985ad
fix(dshot): don't run capture callback during init
dakejahl 86cde62
fix(dshot): move param_get out of hot path, cache pole_count params
dakejahl 1f8a8c1
fix(dshot/serial_telem): reduce CPU polling on read()
dakejahl cf829b4
fix(dshot): reduce bdshot ISR overhead
dakejahl e5ad0b6
fix(dshot): start telemetry index search from current position
dakejahl 136827e
fix(bdshot): don't clear _bdshot_processed for non-capture channels
dakejahl f67a195
fix(dshot): minor fixes
dakejahl 070d630
fix(dshot): ensure both telemetry paths always run
dakejahl d4e7b43
fix(dshot): fix OOB access in NXP up_bdshot_num_errors()
dakejahl 64d6cba
fix(dshot): return 0 for invalid channels in NXP up_bdshot_channel_on…
dakejahl f740134
fix(dshot): prevent deadlock on DMA alloc failure
dakejahl eb2913d
fix(dshot): use motor-index domain in serial telemetry round-robin
dakejahl ba0a362
fix(dshot): reset frame position on new telemetry request
dakejahl 3a800e4
fix(dshot): count all processed channels in NXP num_channels_ready()
dakejahl 4a55fa0
fix(dshot): restore pin mode and end perf on capture DMA alloc failure
dakejahl 445c70d
fix(dshot): add volatile to ISR-written telemetry data
dakejahl 0aab523
fix(mavlink): clamp ESC_EEPROM msg.length to actual bytes copied
dakejahl e07fa08
fix(dshot): silence spurious warning for default ESC type Unknown
dakejahl 2095784
fix(dshot): reset command response state when handler is null
dakejahl eab36a7
fix(mavlink): fix ESC_INFO for 12-ESC support
dakejahl 1a28268
fix(mavlink): read all ESC_STATUS subscribers when aggregating ESC data
dakejahl 5783c83
fix(dshot): remove dead code and fix NXP init return value
dakejahl 3b91bf8
fix(mavlink): always emit ESC messages for all known slots
dakejahl ff987fe
fix(mavlink): defer ESC_EEPROM request ACK to DShot driver
dakejahl eb2ea63
fix(dshot): add missing cstdint include in ESCSettingsInterface.h
dakejahl bc0b0e6
fix(dshot): skip ESC_INFO request when ESC type is Unknown
dakejahl b727cc9
fix(dshot): compute esc_online_flags per-motor instead of globally
dakejahl c2180c5
fix(dshot): add bounds check to NXP up_bdshot_get_erpm()
dakejahl 94eaef4
fix(dshot): compare telemetry mask against motor mask, not output mask
dakejahl 1f0c4ae
fix(mavlink): ACK REQUEST_MESSAGE not internal ESC_REQUEST_EEPROM
dakejahl d0917c7
refactor(mavlink): remove dead request_message() from ESC_EEPROM
dakejahl 79cf083
fix(dshot): reduce serial telemetry timeout from 30ms to 5ms
dakejahl 2d75ffe
fix(dshot): adaptively skip unresponsive serial telemetry motors
dakejahl 8f61f14
fix(dshot): use sentinel -1 for telemetry motor index when idle
dakejahl dfb1a76
fix(dshot): add DSHOT_MAX_MOTORS to bound motor-indexed arrays
dakejahl 427931e
fix(dshot): move DSHOT_MAX_MOTORS to DShotCommon.h, fix DShotTelemetr…
dakejahl 9618403
fix(dshot): document intentionally conservative online flag logic
dakejahl 60ffaf5
fix(dshot): match EscEepromWrite data size to EscEepromRead (48 bytes)
dakejahl a0201bc
fix(dshot): bootstrap serial telemetry round-robin from sentinel state
dakejahl e18fd8e
perf(dshot): precompute bdshot capture delay at init
dakejahl 38722cc
perf(dshot): replace bdshot ready scan with bitmask
dakejahl 91588d1
perf(dshot): cache motor count, use __builtin_popcount
dakejahl 84cc85a
perf(dshot): remove unnecessary memset of dshot_capture_buffer
dakejahl 0629555
simplify(dshot): extract motor_index_from_output() helper
dakejahl 1022ff2
simplify(dshot): use switch for timer config mapping in initialize_ds…
dakejahl 288b32a
simplify(dshot): express online-flag logic as single boolean in consu…
dakejahl fd71456
simplify(dshot): extract resetCommandResponse() and use memcpy in DSh…
dakejahl 0f249b5
simplify(dshot): replace State enum with local bool in updateOutputs()
dakejahl 181ab2f
format(dshot): make format
dakejahl 0faf173
fix(dshot): add bounds check to dshot_motor_data_set()
dakejahl 2915d96
fix(dshot): pass motor mask to initSettingsHandlers()
dakejahl d89e7d4
fix(dshot): reset command response state on invalid motor index
dakejahl e1d0d4e
fix(dshot): return parsed mask from NXP up_bdshot_get_ready_mask()
dakejahl af384c5
fix(dshot): match _serial_port_path definition size to declaration
dakejahl a1252ba
fix(msg): update esc_address comment for 12-ESC support
dakejahl e3defb0
fix(dshot): fix typo in comment
dakejahl 158e74d
fix(msg): add missing unit annotation in EscEepromRead.msg
dakejahl bb18048
Merge branch 'main' into dev/dshot_stuff2
dakejahl 7d767fd
docs(dshot): remove references to CLI commands
dakejahl b903770
Revert "perf(dshot): remove unnecessary memset of dshot_capture_buffer"
dakejahl 9f42130
fix(commander): ignore VEHICLE_CMD_ESC_REQUEST_EEPROM
dakejahl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| 4001_quad_x | ||
| 4050_generic_250 | ||
| 6001_hexa_x | ||
| 12001_octo_cox | ||
| 13100_generic_vtol_tiltrotor | ||
| 5001_quad_+ | ||
| 24001_dodeca_cox | ||
| 2100_standard_plane | ||
| 13000_generic_vtol_standard | ||
| 4601_droneblocks_dexi_5 | ||
| 11001_hexa_cox | ||
| 14001_generic_mc_with_tilt | ||
| 16001_helicopter | ||
| 9001_octo_+ | ||
| 7001_hexa_+ | ||
| 3000_generic_wing | ||
| 2106_albatross | ||
| 13200_generic_vtol_tailsitter | ||
| 13030_generic_vtol_quad_tiltrotor |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| uint64 timestamp # [us] Time since system start | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For all of these can you add a message description for all of these https://docs.px4.io/main/en/uorb/uorb_documentation#message-description |
||
| uint8 firmware # ESC firmware type (see ESC_FIRMWARE enum in MAVLink) | ||
| uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc.) | ||
| uint16 length # [-] Length of valid data | ||
| uint8[192] data # [-] Raw ESC EEPROM data | ||
|
|
||
| uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up responses | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| uint64 timestamp # [us] Time since system start | ||
| uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink) | ||
| uint8 index # [-]Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All) | ||
| uint16 length # [-]Length of valid data | ||
| uint8[64] data # [-]Raw ESC EEPROM data | ||
| uint32[2] write_mask # [-] Bitmask indicating which bytes in the data array should be written (max 64 values) | ||
|
|
||
| uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up requests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1,32 @@ | ||
| uint64 timestamp # time since system start (microseconds) | ||
| uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs | ||
| uint64 timestamp # [us] Time since system start | ||
| uint8 CONNECTED_ESC_MAX = 12 # The number of ESCs supported (Motor1-Motor12) | ||
|
|
||
| uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC | ||
| uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC | ||
| uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM | ||
| uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C | ||
| uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus | ||
| uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot | ||
| uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC | ||
| uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC | ||
| uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM | ||
| uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C | ||
| uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus | ||
| uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot | ||
|
|
||
| uint16 counter # incremented by the writing thread everytime new data is stored | ||
| uint16 counter # [-] Incremented by the writing thread everytime new data is stored | ||
|
|
||
| uint8 esc_count # number of connected ESCs | ||
| uint8 esc_connectiontype # how ESCs connected to the system | ||
| uint8 esc_count # [-] Number of connected ESCs | ||
| uint8 esc_connectiontype # [@enum ESC_CONNECTION_TYPE] How ESCs connected to the system | ||
|
|
||
| uint8 esc_online_flags # Bitmask indicating which ESC is online/offline | ||
| # esc_online_flags bit 0 : Set to 1 if ESC0 is online | ||
| # esc_online_flags bit 1 : Set to 1 if ESC1 is online | ||
| # esc_online_flags bit 2 : Set to 1 if ESC2 is online | ||
| # esc_online_flags bit 3 : Set to 1 if ESC3 is online | ||
| # esc_online_flags bit 4 : Set to 1 if ESC4 is online | ||
| # esc_online_flags bit 5 : Set to 1 if ESC5 is online | ||
| # esc_online_flags bit 6 : Set to 1 if ESC6 is online | ||
| # esc_online_flags bit 7 : Set to 1 if ESC7 is online | ||
| uint16 esc_online_flags # Bitmask indicating which ESC is online/offline (in motor order) | ||
| # esc_online_flags bit 0 : Set to 1 if Motor1 is online | ||
| # esc_online_flags bit 1 : Set to 1 if Motor2 is online | ||
| # esc_online_flags bit 2 : Set to 1 if Motor3 is online | ||
| # esc_online_flags bit 3 : Set to 1 if Motor4 is online | ||
| # esc_online_flags bit 4 : Set to 1 if Motor5 is online | ||
| # esc_online_flags bit 5 : Set to 1 if Motor6 is online | ||
| # esc_online_flags bit 6 : Set to 1 if Motor7 is online | ||
| # esc_online_flags bit 7 : Set to 1 if Motor8 is online | ||
| # esc_online_flags bit 8 : Set to 1 if Motor9 is online | ||
| # esc_online_flags bit 9 : Set to 1 if Motor10 is online | ||
| # esc_online_flags bit 10: Set to 1 if Motor11 is online | ||
| # esc_online_flags bit 11: Set to 1 if Motor12 is online | ||
|
|
||
| uint8 esc_armed_flags # Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set. | ||
| uint16 esc_armed_flags # [-] Bitmask indicating which ESC is armed (in motor order) | ||
|
|
||
| EscReport[8] esc | ||
| EscReport[12] esc |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.