• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

TUM-Aries-Lab / motor-module / 35756885148
74%

Build:
DEFAULT BRANCH: main
Ran 22 Sep 2026 04:53PM UTC
Jobs 1
Files 13
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Sep 2026 04:51PM UTC coverage: 73.796% (+0.5%) from 73.291%
35756885148

push

github

NGierden
Raise the CAN interface instead of assuming somebody already did

Callers have had to remember `sudo ./setup_can.sh` after every power cycle.
Forgetting it presents as a motor that will not answer, which sends you to the
wiring for a fault that is one command away.

This belongs here rather than in a consumer. can_utils already holds
get_can_state and reset_can_interface, and ensure_can_interface is the third
member of that family -- the light idempotent one beside the heavy
module-reload one. Splitting them is how someone reaches for the wrong tool.
The settings are bus properties too: CANDefaults already carried interface and
bitrate, so an application defining its own would be a second place for them to
drift from setup_can.sh.

Idempotent by design, and the tests pin it. An interface already up at the
right bitrate is left strictly alone: taking a working link down and up resets
the controller and can drop a motor into BUS-OFF, so an unnecessary bring-up is
worse than none. It acts only when the interface is down or running at another
bitrate.

restart_ms, tx_queue_length and the command timeout join CANDefaults beside the
two that were already there. The first two look optional and are not:
berr-reporting with restart-ms is what lets the controller restart itself out
of BUS-OFF, which one unacknowledged frame can cause, and a queue of 10 is too
shallow for a 100 Hz loop driving two motors.

sudo -n throughout, so a host without passwordless sudo fails at once and says
what to do rather than stopping a control process at a password prompt. On the
Orin it does, so scripts/allow_can_bringup_without_password.sh grants the one
narrow rule needed: `ip link set can0 <anything>` and nothing else -- not other
interfaces, not ip route, not ip addr. Reading needs no privilege, so
`ip link show` is not granted either. The rule is checked with visudo -c in a
temporary file before installation and sudoers revalidated afterwards, because
a malformed file there ... (continued)

1563 of 2118 relevant lines covered (73.8%)

0.74 hits per line

Coverage Regressions

Lines Coverage ∆ File
29
58.89
45.73% motor_python/can_utils.py
6
97.44
0.03% motor_python/definitions.py
Jobs
ID Job ID Ran Files Coverage
1 35756885148.1 22 Sep 2026 04:53PM UTC 13
73.8
GitHub Action Run
Source Files on build 35756885148
  • Tree
  • List 13
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35756885148
  • a733555d on github
  • Prev Build on main (#35588894726)
  • Next Build on main (#35758748508)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc