Accurately reflect PWM output configuration
mixed feelings about the store. thoughts? the idea is to slowly move logic away from .vue files
Summary by Sourcery
Extract actuator capability detection to a Vuex module and enhance the gripper component with generic channel mapping and misconfiguration warnings.
New Features:
- Add ardupilot_capabilities Vuex module to detect actuator support in firmware
- Display misconfiguration warnings for gripper setup when no actuator or PWM output is configured
Enhancements:
- Refactor gripper channel detection to iterate over dynamically defined channel arrays
- Introduce configured_actuators computed property for flexible actuator value mapping
- Limit gripper card width with max-width styling
Reviewer's Guide
This PR refactors gripper-related logic by moving configuration checks into computed properties and a new Vuex module, replaces hardcoded channel detection with a dynamic loop over expanded channel definitions, and enhances the UI with validation messaging and layout constraints.
Class diagram for new ArdupilotCapabilitiesStore Vuex module
classDiagram
class ArdupilotCapabilitiesStore {
+firmware_supports_actuators: boolean
}
ArdupilotCapabilitiesStore <|-- ardupilot_capabilities: instance
ArdupilotCapabilitiesStore ..> autopilot_data: uses
Class diagram for updated gripper.vue component logic
classDiagram
class Gripper {
+gripper: number | null
+boardType: string | undefined
+configured_actuators(): number[]
+misconfigured_gripper(): string | null
+toBoardFriendlyChannel(servo: string): string
}
Gripper ..> ardupilot_capabilities: uses
Gripper ..> autopilot_data: uses
Gripper ..> autopilot: uses
File-Level Changes
| Change | Details | Files |
|---|---|---|
| Refactored servo channel detection into a dynamic loop |
|
core/frontend/src/components/vehiclesetup/overview/gripper.vue |
| Added misconfigured gripper validation and messaging |
|
core/frontend/src/components/vehiclesetup/overview/gripper.vue |
| Created ardupilot_capabilities Vuex module for firmware checks |
|
core/frontend/src/store/ardupilot_capabilities.ts |
| Introduced configured_actuators computed property |
|
core/frontend/src/components/vehiclesetup/overview/gripper.vue |
| Minor UI and import adjustments |
|
core/frontend/src/components/vehiclesetup/overview/gripper.vue |
Tips and commands
Interacting with Sourcery
- Trigger a new review: Comment
@sourcery-ai reviewon the pull request. - Continue discussions: Reply directly to Sourcery's review comments.
- Generate a GitHub issue from a review comment: Ask Sourcery to create an
issue from a review comment by replying to it. You can also reply to a
review comment with
@sourcery-ai issueto create an issue from it. - Generate a pull request title: Write
@sourcery-aianywhere in the pull request title to generate a title at any time. You can also comment@sourcery-ai titleon the pull request to (re-)generate the title at any time. - Generate a pull request summary: Write
@sourcery-ai summaryanywhere in the pull request body to generate a PR summary at any time exactly where you want it. You can also comment@sourcery-ai summaryon the pull request to (re-)generate the summary at any time. - Generate reviewer's guide: Comment
@sourcery-ai guideon the pull request to (re-)generate the reviewer's guide at any time. - Resolve all Sourcery comments: Comment
@sourcery-ai resolveon the pull request to resolve all Sourcery comments. Useful if you've already addressed all the comments and don't want to see them anymore. - Dismiss all Sourcery reviews: Comment
@sourcery-ai dismisson the pull request to dismiss all existing Sourcery reviews. Especially useful if you want to start fresh with a new review - don't forget to comment@sourcery-ai reviewto trigger a new review!
Customizing Your Experience
Access your dashboard to:
- Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others.
- Change the review language.
- Add, remove or edit custom review instructions.
- Adjust other review settings.
Getting Help
- Contact our support team for questions or feedback.
- Visit our documentation for detailed guides and information.
- Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.
Relevant to #3501
Needs to include outputs displaying as RCIN9/10 when using a firmware that supports the new lights outputs (if the output parameters are not using Lights1/2 values)