Files
dwarf_protocol/10_system_param_voice_commands.md
Jacquin Antoine be87e8a4ca Add complete DWARFLAB protocol documentation
- Architecture overview, BLE and WebSocket protocols
- All 19 modules with command IDs validated against smali source
- BLE packet format with CRC-16/MODBUS pseudocode
- Complete WsCmd index (~300 commands)
- Connection flow with pseudocode examples
- Methodology section explaining APK decompilation process
2026-06-13 00:21:19 +02:00

207 lines
5.7 KiB
Markdown

# System, Param, ITips & VoiceAssistant Commands
## SystemProto — Module SYSTEM (ID=4, base 13000)
### ReqSetTime
| Field | # | Type | Description |
|-------|---|------|-------------|
| `timestamp` | 1 | int64 | Unix timestamp |
| `timezoneOffset` | 2 | double | Timezone offset (hours) |
### ReqSetTimezone
| Field | # | Type | Description |
|-------|---|------|-------------|
| `timezone` | 1 | string | Timezone (e.g. "Europe/Paris") |
### ReqSetMtpMode / ReqSetCpuMode
| Field | # | Type | Description |
|-------|---|------|-------------|
| `mode` | 1 | int32 | Mode value |
### ReqsetMasterLock
| Field | # | Type | Description |
|-------|---|------|-------------|
| `lock` | 1 | bool | Lock state |
### ReqSetLocation
| Field | # | Type | Description |
|-------|---|------|-------------|
| `latitude` | 1 | double | Latitude |
| `longitude` | 2 | double | Longitude |
| `altitude` | 3 | double | Altitude |
| `countryRegion` | 4 | string | Country/region |
| `province` | 5 | string | Province |
| `city` | 6 | string | City |
| `district` | 7 | string | District |
| `enable` | 8 | bool | Enabled |
### ReqGetDeviceActivateInfo / ReqDeviceActivateWriteFile / ReqDeviceActivateSuccessfull / ReqDisableDeviceActivate
| Field | # | Type | Description |
|-------|---|------|-------------|
| `issuer` | 1 | int32 | (GetDeviceActivateInfo only) |
| `requestParam` | 1 | string | (others) |
### Command IDs
| ID | Command |
|----|---------|
| 13000 | SET_TIME |
| 13001 | SET_TIME_ZONE |
| 13002 | SET_MTP_MODE |
| 13003 | SET_CPU_MODE |
| 13004 | SET_MASTER |
| 13005 | GET_DEVICE_ACTIVATE_INFO |
| 13006 | DEVICE_ACTIVATE_WRITE_FILE |
| 13007 | DEVICE_ACTIVATE_NOTIFY_ACTIVATE_SUCCESSFULL |
| 13008 | FACTORY_TEST_UN_ACTIVATE |
| 13009 | SET_LOW_TEMP_PROTECTION_MODE |
| 13010 | SET_LOCATION |
---
## ParamProto — Module PARAM (ID=15, base 16700)
### ReqSetAutoParam
| Field | # | Type | Description |
|-------|---|------|-------------|
| `cameraType` | 1 | int32 | Camera type |
| `shootingTech` | 2 | int32 | Shooting technique |
| `isAuto` | 3 | bool | Auto mode |
### ReqSetExposure / ReqSetGain / ReqSetWb
| Field | # | Type | Description |
|-------|---|------|-------------|
| `paramId` | 1 | int64 | Parameter ID |
| `mode` | 2 | int32 | Mode |
| `value` | 3 | int32 | Value |
### ReqSetGeneralBoolParams
| Field | # | Type | Description |
|-------|---|------|-------------|
| `paramId` | 1 | int64 | Parameter ID |
| `value` | 2 | bool | Boolean value |
### ReqSetGeneralIntParam
| Field | # | Type | Description |
|-------|---|------|-------------|
| `paramId` | 1 | int64 | Parameter ID |
| `value` | 2 | int32 | Integer value |
### ReqSetGeneralFloatParam
| Field | # | Type | Description |
|-------|---|------|-------------|
| `paramId` | 1 | int64 | Parameter ID |
| `value` | 2 | float | Float value |
### ResSetAutoParam
| Field | # | Type | Description |
|-------|---|------|-------------|
| `shootingMode` | 1 | int32 | Shooting mode |
| `cameraType` | 2 | int32 | Camera type |
| `shootingTech` | 3 | int32 | Technique |
| `isAuto` | 4 | bool | Auto enabled |
| `updateAll` | 5 | bool | Update all |
| `code` | 6 | int32 | Status code |
### Command IDs
| ID | Command |
|----|---------|
| 16700 | PARAM_SET_EXPOSURE |
| 16701 | PARAM_SET_GAIN |
| 16702 | PARAM_SET_WB |
| 16703 | PARAM_SET_GENERAL_BOOL_PARAMS |
| 16704 | PARAM_SET_GENERAL_INT_PARAM |
| 16705 | PARAM_SET_GENERAL_FLOAT_PARAM |
| 16706 | PARAM_SET_AUTO_PARAMS |
---
## ITipsProto — Module ITIPS (ID=11, base 15700)
### ReqITipsGet
| Field | # | Type | Description |
|-------|---|------|-------------|
| `mode` | 1 | int32 | Mode |
### ResITipsGet
| Field | # | Type | Description |
|-------|---|------|-------------|
| `mode` | 1 | int32 | Mode |
| `itipsCode` | 2 | string | Tip code |
| `code` | 3 | int32 | Status code |
### Command IDs
| ID | Command |
|----|---------|
| 15700 | ITIPS_GET |
---
## VoiceAssistantProto — Module VOICE_ASSISTANT (ID=16, base 16800)
### ReqVoiceCommand
| Field | # | Type | Description |
|-------|---|------|-------------|
| `commandType` | 1 | int32 | Voice command type (see enum) |
| `shootingMode` | 2 | int32 | Shooting mode |
| `params` | 14 | oneof | Specific parameters |
### VoiceCommandType Enum
| Value | Name | Description |
|-------|------|-------------|
| 0 | VOICE_CMD_UNKNOWN | Unknown |
| 1 | VOICE_CMD_TAKE_PHOTO | Take photo |
| 2 | VOICE_CMD_START_RECORD | Start recording |
| 3 | VOICE_CMD_STOP_RECORD | Stop recording |
| 4 | VOICE_CMD_START_BURST | Start burst |
| 5 | VOICE_CMD_STOP_BURST | Stop burst |
| 6 | VOICE_CMD_START_TIMELAPSE | Start timelapse |
| 7 | VOICE_CMD_STOP_TIMELAPSE | Stop timelapse |
| 8 | VOICE_CMD_START_ASTRO | Start astro |
| 9 | VOICE_CMD_STOP_ASTRO | Stop astro |
| 10 | VOICE_CMD_GOTO_TARGET | Goto target |
| 11 | VOICE_CMD_AUTO_FOCUS | Autofocus |
| 12 | VOICE_CMD_STOP_FOCUS | Stop focus |
| 13 | VOICE_CMD_START_SENTRY | Start sentry |
| 14 | VOICE_CMD_STOP_SENTRY | Stop sentry |
| 15 | VOICE_CMD_CALIBRATION | Calibrate |
| 16 | VOICE_CMD_MOVE | Move |
| 17 | VOICE_CMD_GET_STATUS | Get status |
| 18 | VOICE_CMD_STOP_ALL | Stop all |
### Voice Parameter Messages
- **VoiceGotoParams**: `targetName`, `ra`, `dec`, `index`, `lon`, `lat`, `shootingMode`
- **VoiceAstroParams**: `targetName`, `ra`, `dec`, `index`, `lon`, `lat`, `autoGoto`, `forceStart`
- **VoiceBurstParams**: `cameraType`, `count`
- **VoicePhotoParams**: `cameraType`
- **VoiceRecordParams**: `cameraType`, `durationSeconds`
- **VoiceTimelapseParams**: `cameraType`, `intervalSeconds`, `durationSeconds`
- **VoiceFocusParams**: `isInfinity`
- **VoiceCalibrationParams**: `lon`, `lat`
- **VoiceMoveParams**: `azimuthAngle`, `altitudeAngle`, `speed`
- **VoiceSentryParams**: `type`
### Command IDs
| ID | Command |
|----|---------|
| 16800 | VOICE_ASSISTANT_TASK |