rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
servo_cmd_t Struct Reference

A command of the SERVO screen, as the servo link takes it. More...

#include <servo_cmd.h>

Data Fields

servo_cmd_kind_t kind
uint16_t value_us
uint16_t min_us
 The range the channel is configured with, carried with the command: centred on the servo's PULSE CENTRE and reaching the further of its PULSE MIN and MAX, so its midpoint – where the far end rests a surface – is the centre. value_us stays within MIN..MAX.
uint16_t max_us
uint16_t slew_per_s
uint16_t frame_hz
uint16_t sweep_kind
 SERVO_CMD_SWEEP's curve, as the SERVO page takes it (servo_sweep.h): the curve, thousandths of a cycle a second, command units either side of the centre and the hold at each end.
uint16_t sweep_mhz
uint16_t sweep_span
uint16_t sweep_dwell_ms
bool ends_sweep
 This command ends a sweep the screen was running: a HOLD, a finger on the dial, CENTRE.
bool resume
 SERVO_CMD_SWEEP carrying on the sweep PAUSE held, from where it was held: the panel asks the IOmcu to resume it (protocol 4.6), and an older one, or one that refuses, starts the curve over.
uint16_t pause_seq
 SERVO_CMD_HOLD: which pause it is, given back with its acknowledgement in servo_screen_sweep_held().
uint16_t from_pause
 The pause this command derives from – a resume of it, a repeat of that resume, a position said again under a changed profile – or 0: what the panel drops once it has let that pause go (servo_cmd_stale()).
uint16_t start_seq
 SERVO_CMD_SWEEP: which sweep command it is, given back with the acknowledgement of a start in servo_screen_sweep_started().

Detailed Description

A command of the SERVO screen, as the servo link takes it.

Field Documentation

◆ ends_sweep

bool servo_cmd_t::ends_sweep

This command ends a sweep the screen was running: a HOLD, a finger on the dial, CENTRE.

The panel gives it way at once over sweep writes already on the wire or queued.

◆ frame_hz

uint16_t servo_cmd_t::frame_hz

The frame rate the profile in force runs at, in Hz. The panel writes it to the IOmcu's SERVO page, which runs the PWM target at it: every PWM output whose first channel is a surface, or from protocol 4.19 the one programming port the target names; see servo_screen_rate().

◆ kind

servo_cmd_kind_t servo_cmd_t::kind

what the command asks

◆ max_us

uint16_t servo_cmd_t::max_us

the range's upper end; see min_us

◆ min_us

uint16_t servo_cmd_t::min_us

The range the channel is configured with, carried with the command: centred on the servo's PULSE CENTRE and reaching the further of its PULSE MIN and MAX, so its midpoint – where the far end rests a surface – is the centre. value_us stays within MIN..MAX.

The pulse means nothing without them: 760us is the centre of a narrow servo and below the bottom of a standard one, so a command clamped against the wrong pair is a servo that does not move, or one driven past its stops. Zero on either says the sender named no range.

◆ pause_seq

uint16_t servo_cmd_t::pause_seq

SERVO_CMD_HOLD: which pause it is, given back with its acknowledgement in servo_screen_sweep_held().

Never 0.

◆ slew_per_s

uint16_t servo_cmd_t::slew_per_s

How fast the bench may move the output, in channel-span units a second; zero is at once.

The SPEED setting, as the far end takes it. A servo goes at its own rate unless the bench ramps the command in front of it, so a speed that only moved the drawing would be a control that does nothing to the thing under test.

◆ sweep_dwell_ms

uint16_t servo_cmd_t::sweep_dwell_ms

the hold at each end, ms

◆ sweep_kind

uint16_t servo_cmd_t::sweep_kind

SERVO_CMD_SWEEP's curve, as the SERVO page takes it (servo_sweep.h): the curve, thousandths of a cycle a second, command units either side of the centre and the hold at each end.

Zero otherwise. the curve's kind

◆ sweep_mhz

uint16_t servo_cmd_t::sweep_mhz

cycles a second, thousandths

◆ sweep_span

uint16_t servo_cmd_t::sweep_span

command units either side of the centre

◆ value_us

uint16_t servo_cmd_t::value_us

pulse width in microseconds, for a position


The documentation for this struct was generated from the following file: