| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Phone to Server (using SFS ExtensionRequest protocol) | |||||||||||||||||||
2 | Request | Message | Variable Type in AS3 (types used in SFSObject, C++) | Permissible Values | Units | How to Display | Notes | Named Range LInks | ||||||||||||
3 | Commands | |||||||||||||||||||
4 | Robot Login | robotmemberlogin | Not yet implemented. | Control_Panel_to_Phone | ||||||||||||||||
5 | Coordinates | |||||||||||||||||||
6 | Phone_to_Control_Panel | |||||||||||||||||||
7 | Control Panel (Pilot) to Phone (using SFS PrivateMessageRequest protocol) | Telemetry | ||||||||||||||||||
8 | Request | Message | Variable Type in AS3 (types used in SFSObject, C++) | Permissible Values | Units | How to Display | Notes | |||||||||||||
9 | ||||||||||||||||||||
10 | Move | mv | MoveProps* | L and R Motor Speed Requested indicators | Robot will map requested 0 to 255 speeds to safe range between dcMin and dcTop | |||||||||||||||
11 | Motor Current Limit | mcl | uint (byte, uint8_t) s | 1 to 128 | Horizontal Slider near Motor Controls | step value "N" resulting in "I" mA limit according to formula I = 23950 / ( 100 * N / 128 ) ^ 0.977 which is displayed to user | ||||||||||||||
12 | Steering Trim | stt | Number (float) t | -1.0 (left) to 1.0 (right) | Horizontal Slider near Motor Controls | Sign used to determine direction. In the case of skid steering, this means which motor's duty cycle request is to be scaled down. The effect (and the data tip user feedback) is interpreted on a simple y=x^2 parabolic exponential scale, from 100% of Left Trim at far left to Zero in the center to 100% Right Trim at far right. Thus the adjustment near the center is finer than at the extremes, e.g., input of ±0.1 → output of 0.01, ±0.2→0.04, ±0.5→0.25, etc. | ||||||||||||||
13 | ||||||||||||||||||||
14 | Camera Move | cm | CameraMove* | |||||||||||||||||
15 | Camera Move Home | ch | ||||||||||||||||||
16 | Camera Move Reset | cr | ||||||||||||||||||
17 | Camera View Click | cvk | ShortXY* | Command ID = 0x1B | See notes in Phone to MCU section | |||||||||||||||
18 | ||||||||||||||||||||
19 | Camera Config | cameraconfig | CameraConfig* | Test this configuration and report | ||||||||||||||||
20 | Camera Config Adjust for Motion | cameraconfigadjust | Boolean (boolean) b | Toggles whether Robot is to switch to Motion configuration when moving | ||||||||||||||||
21 | Camera Config Default | cameraconfigdef | CameraConfig* | Store this configuration as default | ||||||||||||||||
22 | Camera Config for Motion | cameraconfigmotion | CameraConfig* | Store this configuration for use in motion | ||||||||||||||||
23 | Camera FPS Poll Interval | camerafpspollmsec | int (short) m = msecs | |||||||||||||||||
24 | Camera Stream Restart | camerarestart | ||||||||||||||||||
25 | ||||||||||||||||||||
26 | Custom Command | cu | ArduinoCommand* | User-configurable on Phone (notes in Phone to MCU section) | ||||||||||||||||
27 | ||||||||||||||||||||
28 | Flashlight On/Off | fl | Boolean (boolean) b | |||||||||||||||||
29 | Time Stamp | ping | Ping* | |||||||||||||||||
30 | ||||||||||||||||||||
31 | EMS Acknowledge | emsack | ||||||||||||||||||
32 | Sleep | sleep | ||||||||||||||||||
33 | Wakeup | wake | ||||||||||||||||||
34 | Exit | exit | ||||||||||||||||||
35 | ||||||||||||||||||||
36 | Waypoint Navigation Off | wp0 | ||||||||||||||||||
37 | Waypoint Navigation On | wp1 | ||||||||||||||||||
38 | Waypoint | wp | WaypointCoordinates* | [byte array index] descripton [0] = 0x14 (WAYPOINT_COORD) ... See Waypoint Coordinates class below for configuration details | ||||||||||||||||
39 | Waypoint Delete | wpd | ArduinoCommand* | [byte array index] descripton [0] = 0x1A (WAYPOINT_DELETE) [1] = (unsigned byte) Admin ID | ||||||||||||||||
40 | Waypoint Move | wpm | WaypointCoordinates* | [byte array index] descripton [0] = 0x19 (WAYPOINT_MOVE) ... See Waypoint Coordinates class below for configuration details | ||||||||||||||||
41 | Waypoints Clear All | wpca | ||||||||||||||||||
42 | Waypoints List Append | wpla | Serialized vector of WaypointCoordinates* objects | Vector (typed array) of WaypointCoordinates objects. Due to potentially large size if user creates numerous waypoints, this is AMF3-serialized to a zlib-compressed byte array before wrapping in SFSObject. | ||||||||||||||||
43 | Waypoints List Replace | wplr | Serialized vector of WaypointCoordinates* objects | Vector (typed array) of WaypointCoordinates objects. Due to potentially large size if user creates numerous waypoints, this is AMF3-serialized to a zlib-compressed byte array before wrapping in SFSObject. | ||||||||||||||||
44 | ||||||||||||||||||||
45 | ||||||||||||||||||||
46 | ||||||||||||||||||||
47 | Control Panel (Copilot) to Server (using SFS ExtensionRequest protocol) | |||||||||||||||||||
48 | ||||||||||||||||||||
49 | Pilot Control Request | controlrequest | Not yet implemented. Adds user to request queue | Not yet implemented | ||||||||||||||||
50 | ||||||||||||||||||||
51 | Control Panel (Pilot) to Server (using SFS ExtensionRequest protcol) | |||||||||||||||||||
52 | ||||||||||||||||||||
53 | Pilot Control Surrender | controlsurrender | Not yet implemented. Transfers control to next user in the request queue, if any | Not yet implemented | ||||||||||||||||
54 | ||||||||||||||||||||
55 | ||||||||||||||||||||
56 | ||||||||||||||||||||
57 | ||||||||||||||||||||
58 | Commands Phone to MCU (using byte array protocol) | All in this section are wrapped in a command packet: [0] = 0xA5 (COMMAND_PACKET_ID) [1] = Packet Payload Length N (count of Command ID byte and any argument bytes, but not LPC byte) [2] = Command ID ([0] byte of payload) [...] = Argument bytes of payload, if any [N + 2] = LPC (longitudinal parity check) | ||||||||||||||||||
59 | Move | 0x01 | Speed: 0 to 255 Run Modes: • FORWARD = 0x01 • BACKWARD = 0x02 • BRAKE = 0x03 • RELEASE = 0x04 | [byte array index] descripton [0] = 0x01 (MOVE) [1] = (unsigned byte) Left Run Mode [2] = (unsigned byte) Left Speed [3] = (unsigned byte) Right Run Mode [4] = (unsigned byte) Right Speed | ||||||||||||||||
60 | Camera Move | 0x02 | Pan and Tilt are in range 0° to 180° for most servos, but we provide 2 bytes for each to allow for those with range of 0° to 360° | ° | [byte array index] descripton [0] = 0x02 (CAMERA_MOVE) [1 to 2] = (unsigned short) Pan (degrees) [3 to 4] = (unsigned short) Tilt (degrees) | |||||||||||||||
61 | Camera Move Home | 0x04 | [byte array index] descripton [0] = 0x04 (CAMERA_HOME) | |||||||||||||||||
62 | Camera Move Reset | 0x05 | [byte array index] descripton [0] = 0x05 (CAMERA_RESET) | |||||||||||||||||
63 | Read EEPROM | 0x06 | [byte array index] descripton [0] = 0x06 (EEPROM_READ) [1 to 2] = (unsigned short) Address [3] = (unsigned byte) Number of Data Bytes to Read | |||||||||||||||||
64 | Write EEPROM | 0x07 | [byte array index] descripton [0] = 0x07 (EEPROM_WRITE) [1 to 2] = (unsigned short) Address [3] = (unsigned byte) Number of Data Bytes (N) to Write [4 to 3+N] = Data Bytes | |||||||||||||||||
65 | Safe Rover | 0x08 | [byte array index] descripton [0] = 0x08 SAFE_ROVER) | |||||||||||||||||
66 | Sleep | 0x0A | [byte array index] descripton [0] = 0x0A (SLEEP) | |||||||||||||||||
67 | Wakeup | 0x0B | [byte array index] descripton [0] = 0x0B (WAKEUP) | |||||||||||||||||
68 | Head Light Off | 0x0C | [byte array index] descripton [0] = 0x0C (LIGHT_OFF) | |||||||||||||||||
69 | Head Light On | 0x0D | [byte array index] descripton [0] = 0x0D (LIGHT_ON) | |||||||||||||||||
70 | Ping Interval | 0x10 | unsigned long | >= 500 ? | ms | [byte array index] descripton [0] = 0x10 (PING_INTERVAL) [1 to 4] = (unsigned long) Ping Interval | Maximum milliseconds expected to ellapse between Pings. | |||||||||||||
71 | Comm Setup | 0x10 | byte | 0x00 = Watchdog Off 0x4E = 1 sec interrupt and system reset mode 0x4F = 2 sec 0x68 = 4 sec 0x69 = 8 sec 0x46 = 1 sec interrupt mode 0x47 = 2 sec 0x60 = 4 sec 0x61 = 8 sec | [byte array index] descripton [0] = 0x10 (COMM_SETUP) [1] = (unsigned byte) Mode ID | Replaced PING_INTERVAL as of 2016-07-28 | ||||||||||||||
72 | Ping | 0x11 | [byte array index] descripton [0] = 0x11 (PING) | |||||||||||||||||
73 | Heading | 0x12 | 0 to 359 | ° | [byte array index] descripton [0] = 0x12 (HEADING) [1 to 2] = (unsigned short) Heading | |||||||||||||||
74 | Current Coordinates | 0x13 | [byte array index] descripton [0] = 0x13 (CURRENT_COORD) [1 to 8 or 1 to 16] See Waypoint Coordinates class below for configuration details | |||||||||||||||||
75 | Waypoint Coordinates | 0x14 | [byte array index] descripton [0] = 0x14 (WAYPOINT_COORD) [1 to 8 or 1 to 16] See Waypoint Coordinates class below for configuration details [9 or 17] = (unsigned byte) Admin ID | |||||||||||||||||
76 | Waypoints Off | 0x16 | [byte array index] descripton [0] = 0x16 (WAYPOINTS_OFF) | |||||||||||||||||
77 | Waypoints On | 0x17 | [byte array index] descripton [0] = 0x17 (WAYPOINTS_ON) | |||||||||||||||||
78 | Waypoints Clear All | 0x18 | [byte array index] descripton [0] = 0x18 (WAYPOINTS_CLEAR) | |||||||||||||||||
79 | Waypoint Move | 0x19 | [byte array index] descripton [0] = 0x19 (WAYPOINT_MOVE) [1 to 8 or 1 to 16] See Waypoint Coordinates class below for configuration details [9 or 17] = (unsigned byte) Admin ID | |||||||||||||||||
80 | Waypoint Delete | 0x1A | [byte array index] descripton [0] = 0x1A (WAYPOINT_DELETE) [1] = (unsigned byte) Admin ID | |||||||||||||||||
81 | Camera View Click | 0x1B | x and y are in pixels from upper left corner of pre-transform video stream | [byte array index] descripton [0] = 0x1B (CAMERA_VIEW_CLICK) [1 to 2] = (unsigned short) x (pixels from left) [3 to 4] = (unsigned short) y (pixels from top) | ||||||||||||||||
82 | Servo Move | 0x1C | Servo Index 0 = Servo A Servo Index 1 = Servo B | [byte array index] descripton [0] = 0x1C (SERVO_MOVE) [1] = (unsigned byte) Servo Index [2 to 3] (unsigned short) Servo Position | Reserved, but currently not implemented. | |||||||||||||||
83 | Current Limit | 0x1D | uint (byte, uint8_t) | Motor Current Limit Step N where 1 <= N <= 128 | [byte array index] descripton [0] = 0x1D (CURRENT_LIMIT) [1] = (unsigned byte) Current Limit Step | |||||||||||||||
84 | Custom Command | 0x40 to 0x5F | As configured | [byte array index] descripton [0] = command ID in range of 0x40 to 0x5F (64 to 95) [1 to ?] = Data as dictated by data type user configured | ||||||||||||||||
85 | ||||||||||||||||||||
86 | ||||||||||||||||||||
87 | ||||||||||||||||||||
88 | Telemetry MCU to Phone (using byte array protocol) | All in this section are wrapped in a telemetry packet: [0] = 0xCA (TELEMETRY_PACKET_ID) [1] = Packet Payload Length N (count of Telemetry ID byte and any data bytes, but not LPC byte) [2] = Telemetry ID ([0] byte of payload) [...] = Data bytes of payload, if any [N+2] = LPC (longitudinal parity check) | ||||||||||||||||||
89 | Motor 1 Current | 0x01 (MOTOR1_CURRENT_ID) | [byte array index] descripton [0] = 0x01 (MOTOR1_CURRENT_ID) [1 to 2] = (unsigned short) Value | |||||||||||||||||
90 | Motor 2 Current | 0x02 (MOTOR2_CURRENT_ID) | [byte array index] descripton [0] = 0x02 (MOTOR2_CURRENT_ID) [1 to 2] = (unsigned short) Value | |||||||||||||||||
91 | Body Temperature | 0x03 (TEMP_SENSOR_ID) | [byte array index] descripton [0] = 0x03 (TEMP_SENSOR_ID) [1 to 2] = (short) Value | |||||||||||||||||
92 | Ultrasonic Ranger Left | 0x04 (RANGE_LEFT_ID) | ||||||||||||||||||
93 | Ultrasonic Ranger Right | 0x05 (RANGE_RIGHT_ID) | ||||||||||||||||||
94 | Robot Battery | 0x06 (BATTERY_ID) | ||||||||||||||||||
95 | Motor Battery | 0x07 (DIRTY_BATTERY_ID) | ||||||||||||||||||
96 | Pan | 0x08 (PAN_POSITION_ID) | ||||||||||||||||||
97 | Tilt | 0x09 (TILT_POSITION_ID) | ||||||||||||||||||
98 | EEPROM Read Result | 0x0A (EEPROM_RESPONSE_ID) | [byte array index] descripton [0] = 0x0A (EEPROM_RESPONSE) [1 to 2] = (word) Address [3] = (unsigned byte) Number of Data Bytes (N) to Follow [4 to 3+N] = Data Bytes | |||||||||||||||||
99 | Emergency | 0x0B (EMERGENCY_ID) | Emergency Codes: 0x01 Watchdog Timeout (data byte always 0x00) | [byte array index] descripton [0] = 0x0B (EMERGENCY_ID) [1] = (unsigned byte) Emergency Code [2] = (unsigned byte) Ancillary data where needed or 0x00 | ||||||||||||||||
100 | Command Dump | 0x0D (COMMAND_DUMP_ID) | Echoes Command Received (in debug mode only) | |||||||||||||||||