When writing to uint8_t properties or equivalently
sized enum properties, the ASCII protocol handler would
write beyond the variable itself and overwrite adjacent
memory.
This manifested for instance in the following:
r axis0.controller.config.input_mode 1
w axis0.controller.config.control_mode 3
r axis0.controller.config.input_mode 0
This boils down to what appears to be misbehavior of
`sscanf`.
This fix adds an intermediate union to provide a safe
memory area for the `sscanf` call.
When writing to uint8_t properties or equivalently
sized enum properties, the ASCII protocol handler would
write beyond the variable itself and overwrite adjacent
memory.
This manifested for instance in the following:
r axis0.controller.config.input_mode 1
w axis0.controller.config.control_mode 3
r axis0.controller.config.input_mode 0
This boils down to what appears to be misbehavior of
`sscanf`.
This fix adds an intermediate union to provide a safe
memory area for the `sscanf` call.
Caching doesn't work well with the tup build system as tup acts offended
when a build task writes files outside of tup's root directory.
Particularly on Windows this manifests in errors like:
tup error: File '[...]/__pycache__/unicode_escape.cpython-38.pyc' was written to, but is not in .tup/db. You probably should specify it as an output
The option -B prevents python from using byte code cache.
Added torque_ramp_rate to controller config.
Changed INPUT_MODE_CURRENT_RAMP to INPUT_MODE_TORQUE_RAMP for controller input mode enum.
Torque limits and current limits are now observed seperately. Torque limit is in the controller, current limit is in the motor object.
Fixed torque -> current calculation in motor_update to handle ACIM motors.
changed all instances of current_setpoint to torque_setpoint
modified limitVel() to use torque instead of current units
removed effective_current_lim, added effective_torque_lim()
added torque_lim to motor config struct and interface file
The following documentation is moved to odrive-interfaces.yaml:
- Error flag documentation from troubleshooting.md
- Axis state documentation from commands.md
- Input mode documentation from input_modes.md
This adds a jinja template to generate markdown files
(with lots of HTML mixed in) from YAML using the existing
interface_generator.py script.
The docs website layout files are modified to incorporate the
new documentation.
While previously Github Pages was automatically running
Jekyll on the docs folder, this commit adds a custom Github
workflow to compile and deploy the website to facilitate
the custom markdown generation step before Jekyll runs.