# Motor, Focus & Track Commands ## MotorControlProto — Module MOTOR (ID=6, base 14000) ### ReqMotorRun — Run Motor | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `speed` | 2 | int32 | Speed | | `direction` | 3 | int32 | Direction | | `speedRamping` | 4 | bool | Speed ramping enabled | | `resolutionLevel` | 5 | int32 | Resolution level | ### ReqMotorStop — Stop Motor | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | ### ReqMotorRunTo — Move to Position | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `endPosition` | 2 | double | Target position | | `speed` | 3 | int32 | Speed | | `speedRamping` | 4 | bool | Speed ramping | | `resolutionLevel` | 5 | int32 | Resolution level | ### ReqMotorRunInPulse — Pulse Mode | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `frequency` | 2 | int32 | Frequency | | `direction` | 3 | int32 | Direction | | `speedRamping` | 4 | bool | Speed ramping | | `resolution` | 5 | int32 | Resolution | | `pulse` | 6 | int32 | Pulse count | | `mode` | 7 | int32 | Mode | ### ReqMotorChangeSpeed — Change Speed | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `speed` | 2 | int32 | New speed | ### ReqMotorChangeDirection — Change Direction | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `direction` | 2 | int32 | New direction | ### ReqMotorReset — Reset Motor | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | | `direction` | 2 | int32 | Reset direction | ### ReqMotorGetPosition — Get Position | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Motor ID | ### ReqMotorServiceJoystick — Joystick Control | Field | # | Type | Description | |-------|---|------|-------------| | `vectorAngle` | 1 | int32 | Joystick angle | | `vectorLength` | 2 | int32 | Joystick magnitude | ### ReqMotorServiceJoystickFixedAngle — Fixed-Angle Joystick | Field | # | Type | Description | |-------|---|------|-------------| | `vectorAngle` | 1 | int32 | Angle | | `vectorLength` | 2 | int32 | Magnitude | ### ReqMotorServiceJoystickStop — Stop Joystick (no fields) ### ReqDualCameraLinkage — Dual Camera Linkage | Field | # | Type | Description | |-------|---|------|-------------| | `x` | 1 | int32 | X position | | `y` | 2 | int32 | Y position | ### Responses - **ResMotor**: `id` (int32, #1) + `code` (int32, #2) - **ResMotorPosition**: `id` (int32, #1) + `code` (int32, #2) + `position` (double, #3) ### Command IDs | ID | Command | |----|---------| | 14000 | STEP_MOTOR_RUN | | 14002 | STEP_MOTOR_STOP | | 14006 | STEP_MOTOR_SERVICE_JOYSTICK | | 14007 | STEP_MOTOR_SERVICE_JOYSTICK_FIXED_ANGLE | | 14008 | STEP_MOTOR_SERVICE_JOYSTICK_STOP | | 14009 | STEP_MOTOR_SERVICE_DUAL_CAMERA_LINKAGE | > **Note**: IDs 14001, 14003-14005 are not assigned. --- ## FocusProto — Module FOCUS (ID=8, base 15000) ### ReqAstroAutoFocus — Astro Autofocus | Field | # | Type | Description | |-------|---|------|-------------| | `mode` | 1 | int32 | Focus mode | ### ReqStopAstroAutoFocus — No fields ### ReqNormalAutoFocus — Normal Autofocus | Field | # | Type | Description | |-------|---|------|-------------| | `mode` | 1 | int32 | Focus mode | | `centerX` | 2 | int32 | Focus center X | | `centerY` | 3 | int32 | Focus center Y | ### ReqManualSingleStepFocus — Step Focus | Field | # | Type | Description | |-------|---|------|-------------| | `direction` | 1 | int32 | Direction | ### ReqManualContinuFocus — Continuous Focus | Field | # | Type | Description | |-------|---|------|-------------| | `direction` | 1 | int32 | Direction | ### ReqStopManualContinuFocus — No fields ### ReqGetUserInfinityPos — No fields ### ReqSetUserInfinityPos | Field | # | Type | Description | |-------|---|------|-------------| | `pos` | 1 | int32 | Infinity position | ### ResUserInfinityPos | Field | # | Type | Description | |-------|---|------|-------------| | `code` | 1 | int32 | Status code | | `pos` | 2 | int32 | Position | ### Command IDs | ID | Command | |----|---------| | 15000 | FOCUS_AUTO_FOCUS | | 15001 | FOCUS_MANUAL_SINGLE_STEP_FOCUS | | 15002 | FOCUS_START_MANUAL_CONTINU_FOCUS | | 15003 | FOCUS_STOP_MANUAL_CONTINU_FOCUS | | 15004 | FOCUS_START_ASTRO_AUTO_FOCUS | | 15005 | FOCUS_STOP_ASTRO_AUTO_FOCUS | | 15011 | FOCUS_GET_USER_INFINITY_POS | | 15012 | FOCUS_SET_USER_INFINITY_POS | > **Note**: IDs 15006-15010 are not assigned. --- ## TrackProto — Module TRACK (ID=7, base 14800) ### ReqStartTrack — Start Tracking | Field | # | Type | Description | |-------|---|------|-------------| | `x` | 1 | int32 | X position | | `y` | 2 | int32 | Y position | | `w` | 3 | int32 | Width | | `h` | 4 | int32 | Height | | `camId` | 5 | int32 | Camera ID | ### ReqStartTrackClick — Click Tracking | Field | # | Type | Description | |-------|---|------|-------------| | `x` | 1 | int32 | X position | | `y` | 2 | int32 | Y position | | `camId` | 3 | int32 | Camera ID | ### ReqStopTrack, ReqContinueTrack — No fields ### ReqMOTTrackOne — MOT Track One Target | Field | # | Type | Description | |-------|---|------|-------------| | `id` | 1 | int32 | Target ID | ### ReqStartSentryMode — Start Sentry | Field | # | Type | Description | |-------|---|------|-------------| | `type` | 1 | int32 | Sentry type | ### ReqStopSentryMode — No fields ### ReqUFOAutoHandMode — UFO Auto/Manual Mode | Field | # | Type | Description | |-------|---|------|-------------| | `mode` | 1 | int32 | Mode (auto/manual) | ### Command IDs | ID | Command | |----|---------| | 14800 | TRACK_START_TRACK | | 14801 | TRACK_STOP_TRACK | | 14802 | SENTRY_MODE_START | | 14803 | SENTRY_MODE_STOP | | 14804 | MOT_START | | 14805 | MOT_TRACK_ONE | | 14806 | UFOTRACK_MODE_START | | 14807 | UFOTRACK_MODE_STOP | | 14808 | MOT_WIDE_TRACK_ONE | | 14809 | SWITCH_MAIN_PREVIEW | | 14810 | UFO_HAND_AOTO_MODE | | 14811 | SENTRY_SCENE_SELECT | | 14812 | TRACK_START_CLICK | > **Note**: `CMD_UFO_HAND_AOTO_MODE` — the "AOTO" spelling is as-is in the source code (typo for "AUTO").