Skip to content

Hardware Protocol Specification: SmartActuator

Version: 2.0.0
Author: Motion Control Systems
Physical Layer: 921600 bps, 8N1.0
Framing: binary
Integrity Algorithm: crc32

📄 AsyncAPI Artifacts: Download AsyncAPI 2.6.0 YAML | View Interactive AsyncAPI HTML Docs

Description

Servo actuator protocol with CRC32 integrity checking and status reporting

Command Catalog & Message Signatures

Category: GENERAL

set_position (Command ID: 0x1001) - Sets servo angular position and maximum velocity

Parameter Type Unit Range / Constraints Options
channel uint8 - [0.0, 7.0] -
angle_degrees float32 deg [0.0, 360.0] -
velocity_limit uint16 rpm - -

Expected Response Payload (Timeout: 200 ms):

Field Name Type Unit
channel uint8 -
current_position float32 deg
status_flags uint8 -

Formal AsyncAPI 2.6.0 Specification

asyncapi: 2.6.0
info:
  title: SmartActuator
  version: 2.0.0
  description: Servo actuator protocol with CRC32 integrity checking and status reporting
  contact:
    name: Motion Control Systems
servers:
  serial_link:
    url: serial://tty/921600
    protocol: serial
    description: Physical UART Transport (921600 bps, 8N1.0)
    bindings:
      serial:
        baudRate: 921600
        dataBits: 8
        parity: none
        stopBits: 1.0
        framingType: binary
        integrity: crc32
channels:
  omniuart/cmd/set_position:
    publish:
      summary: 'Send command set_position (ID: 0x1001)'
      description: Sets servo angular position and maximum velocity
      message:
        name: set_position_Message
        title: set_position Command
        payload:
          $ref: '#/components/schemas/set_position_Request'
  omniuart/resp/set_position:
    subscribe:
      summary: Receive response for set_position
      description: Decoded async payload stream from device after command set_position
      message:
        name: set_position_Response_Message
        title: set_position Response
        payload:
          $ref: '#/components/schemas/set_position_Response'
components:
  messages: {}
  schemas:
    set_position_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 4097
          description: Opcode ID for set_position
        channel:
          type: integer
          minimum: 0.0
          maximum: 7.0
          default: 0
        angle_degrees:
          type: number
          unit: deg
          minimum: 0.0
          maximum: 360.0
          default: 90.0
        velocity_limit:
          type: integer
          unit: rpm
          default: 1000
      description: Sets servo angular position and maximum velocity
    set_position_Response:
      type: object
      properties:
        channel:
          type: integer
        current_position:
          type: number
          unit: deg
        status_flags:
          type: integer
      description: Decoded response frame payload for set_position