Skip to content

fix: use new science API#27

Open
ConnorNeed wants to merge 1 commit into
mainfrom
science-update
Open

fix: use new science API#27
ConnorNeed wants to merge 1 commit into
mainfrom
science-update

Conversation

@ConnorNeed
Copy link
Copy Markdown
Member

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the Science Control Panel from the legacy /science/device_control packed-bitfield protocol to the new /esp_pwm_command (interfaces/msg/PwmCommand) API, which sends pin, duty_cycle, duration, frequency, and ramp as discrete fields. Motor configs are updated to include a per-motor frequency, several DC motor pin IDs and a servo entry are added/changed, and the duration clamp is expanded.

Changes:

  • Replaced bit-packed service payload publishing to sensor_msgs/msg/NavSatStatus with explicit PwmCommand fields on /esp_pwm_command.
  • Added frequency to all MotorConfig entries and a shared SendCommandFn type that accepts frequency and ramp.
  • Updated DC motor pin IDs/defaults, added a Resin Servo, widened the duration clamp to 65.535, and switched React keys to composite strings.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 62 to 100
@@ -59,16 +73,29 @@ const motors: MotorConfig[] = [
maxPulseUs: 2495,
periodUs: 20000,
maxDegrees: 195,
frequency: 50,
type: 'servo',
},
{
id: 25,
id: 27,
name: 'Polar Servo',
defaultPosition: 45,
minPulseUs: 615,
maxPulseUs: 2495,
periodUs: 20000,
maxDegrees: 195,
frequency: 50,
type: 'servo',
},
{
id: 32,
name: 'Resin Servo',
defaultPosition: 45,
minPulseUs: 350,
maxPulseUs: 2500,
periodUs: 20000,
maxDegrees: 360,
frequency: 50,
type: 'servo',
}
}

const PWM_MAX = 1023;
const DEFAULT_PWM_FREQUENCY = 50;
Comment on lines +118 to +120
const safeDurationMs = Math.round(
Math.min(Math.max(duration ?? 0, 0), 65.535) * 10
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants