Files
dwarf-go/dwarfctl/proto/dwarf.proto
Jacquin Antoine 814a836c5a Reverse-engineer DWARF II telescope API and build open-source Go client
Complete reverse-engineering of the DWARFLAB Android app (v3.4.0) protocol
and implementation of a working CLI tool to control DWARF II telescopes.

Analysis (from APK decompilation with jadx):
- Extracted 17 protobuf definitions (382 messages) from embedded descriptors
- Mapped all 323 WebSocket command IDs across 16 modules
- Documented the full protocol: BLE discovery, WebSocket control (port 9900),
  RTSP preview, WsPacket envelope (proto v2.3)
- Documented the Android UI structure (screens, navigation, shooting modes)
- Key discovery: telescope responds with type=3 (reply), not type=1 (response),
  and several commands are fire-and-forget (RGB, camera open/close)

dwarfctl Go client:
- Protobuf bindings generated from extracted .proto files (397 messages)
- WebSocket transport layer with request-response matching and notification fan-out
- Typed API covering cameras, motors, astrophotography, focus, tracking, system, power
- Cobra CLI with 30+ subcommands and --debug traffic logging
- 57 unit tests (transport round-trip, command routing, proto encoding)
- Validated on real hardware: state, photo, motor slew (all directions/speeds),
  focus, RGB, time/location sync all confirmed working

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-12 15:18:56 +02:00

2654 lines
46 KiB
Protocol Buffer

syntax = "proto3";
option go_package = "github.com/antitbone/dwarfctl/proto;pb";
// source: astro
message ReqStartCalibration {
double lon = 1;
double lat = 2;
}
// source: astro
message ReqStopCalibration {
}
// source: astro
message ReqGotoDSO {
double ra = 1;
double dec = 2;
string target_name = 3;
bool goto_only = 4;
}
// source: astro
message ReqGotoSolarSystem {
int32 index = 1;
double lon = 2;
double lat = 3;
string target_name = 4;
bool force_start = 5;
}
// source: astro
message ResGotoSolarSystem {
int32 code = 1;
ReqGotoSolarSystem req = 2;
}
// source: astro
message ReqStopGoto {
}
// source: astro
message ReqCaptureRawLiveStacking {
int32 ir_index = 1;
bool force_start = 2;
}
// source: astro
message ReqStopCaptureRawLiveStacking {
}
// source: astro
message ReqFastStopCaptureRawLiveStacking {
}
// source: astro
message ReqCheckDarkFrame {
}
// source: astro
message ResCheckDarkFrame {
int32 progress = 1;
int32 code = 2;
}
// source: astro
message ReqCaptureDarkFrame {
int32 reshoot = 1;
}
// source: astro
message ReqStopCaptureDarkFrame {
}
// source: astro
message ReqCaptureDarkFrameWithParam {
int32 exp_index = 1;
int32 gain_index = 2;
int32 bin_index = 3;
int32 cap_size = 4;
}
// source: astro
message ReqStopCaptureDarkFrameWithParam {
}
// source: astro
message ReqGetDarkFrameList {
}
// source: astro
message ResGetDarkFrameInfo {
// oneof _temperature
int32 exp_index = 1;
int32 gain_index = 2;
int32 bin_index = 3;
string exp_name = 4;
string gain_name = 5;
string bin_name = 6;
int32 temperature = 7;
}
// source: astro
message ResGetDarkFrameInfoList {
int32 code = 1;
repeated ResGetDarkFrameInfo results = 2;
}
// source: astro
message ReqDelDarkFrame {
int32 exp_index = 1;
int32 gain_index = 2;
int32 bin_index = 3;
int32 temp_value = 4;
}
// source: astro
message ReqDelDarkFrameList {
repeated ReqDelDarkFrame dark_list = 1;
}
// source: astro
message ResDelDarkFrameList {
int32 code = 1;
}
// source: astro
message ReqGoLive {
}
// source: astro
message ReqTrackSpecialTarget {
int32 index = 1;
double lon = 2;
double lat = 3;
}
// source: astro
message ReqStopTrackSpecialTarget {
}
// source: astro
message ReqOneClickGotoDSO {
double ra = 1;
double dec = 2;
string target_name = 3;
double lon = 4;
double lat = 5;
int32 shooting_mode = 6;
bool goto_only = 7;
}
// source: astro
message ResOneClickGoto {
int32 step = 1;
int32 code = 2;
bool all_end = 3;
}
// source: astro
message ReqOneClickGotoSolarSystem {
int32 index = 1;
double lon = 2;
double lat = 3;
string target_name = 4;
int32 shooting_mode = 5;
bool force_start = 6;
}
// source: astro
message ResOneClickGotoSolarSystem {
int32 step = 1;
int32 code = 2;
bool all_end = 3;
ReqOneClickGotoSolarSystem req = 4;
}
// source: astro
message ReqStopOneClickGoto {
}
// source: astro
message ReqCaptureWideRawLiveStacking {
bool force_start = 1;
}
// source: astro
message ReqStopCaptureWideRawLiveStacking {
}
// source: astro
message ReqFastStopCaptureWideRawLiveStacking {
}
// source: astro
message ReqStartEqSolving {
double lon = 1;
double lat = 2;
}
// source: astro
message ResStartEqSolving {
double azi_err = 1;
double alt_err = 2;
int32 code = 3;
}
// source: astro
message ReqStopEqSolving {
}
// source: astro
message ReqStartAiEnhance {
}
// source: astro
message ReqStopAiEnhance {
}
// source: astro
message ReqStartMosaic {
int32 horizontal_scale = 1;
int32 vertical_scale = 2;
int32 rotation = 3;
int32 ir_index = 4;
bool force_start = 5;
}
// source: astro
message ReqStartMakeFitsThumb {
string src_dir = 1;
}
// source: astro
message ReqStopMakeFitsThumb {
}
// source: astro
message ResMakeFitsThumb {
int32 code = 1;
string src_dir = 2;
}
// source: astro
message MakeFitsThumbTaskParam {
string src_dir = 1;
}
// source: astro
message ReqIsImageStackable {
repeated string src_dirs = 1;
}
// source: astro
message ResIsImageStackable {
int32 code = 1;
repeated ResGetDarkFrameInfo need_dark_frame_info = 2;
}
// source: astro
message ReqStartRepostprocess {
repeated string src_dirs = 1;
}
// source: astro
message ReqStopRepostprocess {
}
// source: astro
message ResRepostprocess {
int32 code = 1;
string result_dir = 2;
}
// source: astro
message RepostprocessTaskParam {
string result_dir = 1;
}
// source: astro
message ReqGetAstroShootingTime {
int32 exp_index = 1;
int32 horizontal_scale = 2;
int32 vertical_scale = 3;
int32 rotation = 4;
int32 cam_id = 5;
int32 shooting_mode = 6;
}
// source: astro
message ResGetAstroShootingTime {
enum AstroMode {
NORMAL = 0;
MOSAIC = 1;
}
int32 code = 1;
int32 shooting_time = 2;
int32 cam_id = 3;
ResGetAstroShootingTime.AstroMode astro_mode = 4;
int32 shooting_mode = 5;
}
// source: astro
message ReqGetCaliFrameList {
int32 camera_type = 1;
int32 cali_frame_type = 2;
}
// source: astro
message CaliFrameInfo {
// oneof _filter_type
// oneof _info_id
// oneof _temp_value
string exp_name = 1;
int32 gain = 2;
int32 resolution = 3;
int32 camera_type = 4;
int32 progress = 5;
int32 cali_frame_type = 6;
int32 filter_type = 7;
int32 info_id = 8;
int32 temp_value = 9;
}
// source: astro
message ResGetCaliFrameList {
int32 code = 1;
repeated CaliFrameInfo list = 2;
int32 camera_type = 3;
int32 cali_frame_type = 4;
}
// source: astro
message ReqDelCaliFrameList {
repeated int32 info_ids = 1;
}
// source: astro
message ReqCaptureCaliFrame {
// oneof _filter_type
int32 exp_index = 1;
int32 gain = 2;
int32 resolution = 3;
int32 cap_size = 4;
int32 camera_type = 5;
int32 cali_frame_type = 6;
int32 filter_type = 7;
int32 scene_type = 8;
}
// source: astro
message ReqStopCaptureCaliFrame {
int32 camera_type = 1;
}
// source: astro
message CaptureCaliFrameTaskParam {
int32 camera_type = 1;
int32 cali_frame_type = 2;
}
// source: astro
message ReqGetQuickSetList {
int32 camera_type = 1;
}
// source: astro
message QuikSetInfo {
string exp_name = 1;
int32 exp_index = 2;
int32 gain = 3;
int32 resolution = 4;
int32 camera_type = 5;
string info_id = 6;
}
// source: astro
message ResGetQuikSetList {
int32 code = 1;
repeated QuikSetInfo quick_set_list = 2;
int32 camera_type = 3;
}
// source: astro
message ReqSetQuickSet {
string info_id = 1;
}
// source: astro
message ResSetQuickSet {
int32 code = 1;
string info_id = 2;
}
// source: astro
message ReqOneClickShooting {
}
// source: astro
message ResAstroShooting {
// oneof _exp_name
// oneof _gain
// oneof _resolution
// oneof _filter_type
// oneof _temp_threshold
int32 code = 1;
string exp_name = 2;
int32 gain = 3;
int32 resolution = 4;
int32 filter_type = 5;
int32 temp_threshold = 6;
}
// source: astro
message ReqStartSkyTargetFinder {
double lon = 1;
double lat = 2;
bool force_restart = 3;
int32 scene_type = 4;
}
// source: astro
message ResStartSkyTargetFinder {
int32 code = 1;
double zenith_azi = 2;
double zenith_alt = 3;
double center_azi = 4;
double center_alt = 5;
double center_roll = 6;
int32 scene_type = 7;
}
// source: astro
message ReqStopSkyTargetFinder {
}
// source: base
enum WsMajorVersion {
WS_MAJOR_VERSION_UNKNOWN = 0;
WS_MAJOR_VERSION_NUMBER = 2;
}
// source: base
enum WsMinorVersion {
WS_MINOR_VERSION_UNKNOWN = 0;
WS_MINOR_VERSION_NUMBER = 3;
}
// source: base
message WsPacket {
uint32 major_version = 1;
uint32 minor_version = 2;
uint32 device_id = 3;
uint32 module_id = 4;
uint32 cmd = 5;
uint32 type = 6;
bytes data = 7;
string client_id = 8;
}
// source: base
message ComResponse {
int32 code = 1;
}
// source: base
message ComResWithInt {
int32 value = 1;
int32 code = 2;
}
// source: base
message ComResWithDouble {
double value = 1;
int32 code = 2;
}
// source: base
message ComResWithString {
string str = 1;
int32 code = 2;
}
// source: base
message CommonParam {
bool hasAuto = 1;
int32 auto_mode = 2;
int32 id = 3;
int32 mode_index = 4;
int32 index = 5;
double continue_value = 6;
}
// source: ble
enum VocalType {
VT_UNKNOWN = 0;
VT_PING = 1;
VT_ECHO = 2;
}
// source: ble
message ReqGetconfig {
int32 cmd = 1;
string ble_psd = 2;
string client_id = 3;
}
// source: ble
message ReqAp {
int32 cmd = 1;
int32 wifi_type = 2;
int32 auto_start = 3;
int32 country_list = 4;
string country = 5;
string ble_psd = 6;
string client_id = 7;
bool force_restart = 8;
}
// source: ble
message ReqSta {
int32 cmd = 1;
int32 auto_start = 2;
string ble_psd = 3;
string ssid = 4;
string psd = 5;
string client_id = 6;
}
// source: ble
message ReqSetblewifi {
int32 cmd = 1;
int32 mode = 2;
string ble_psd = 3;
string value = 4;
string client_id = 5;
}
// source: ble
message ReqReset {
int32 cmd = 1;
string client_id = 2;
}
// source: ble
message ReqGetwifilist {
int32 cmd = 1;
string client_id = 2;
}
// source: ble
message ReqGetsysteminfo {
int32 cmd = 1;
string client_id = 2;
}
// source: ble
message ReqCheckFile {
int32 cmd = 1;
string file_path = 2;
string md5 = 3;
}
// source: ble
message ResCommon {
int32 cmd = 1;
int32 code = 2;
}
// source: ble
message ResGetconfig {
int32 cmd = 1;
int32 code = 2;
int32 state = 3;
int32 wifi_mode = 4;
int32 ap_mode = 5;
int32 auto_start = 6;
int32 ap_country_list = 7;
string ssid = 8;
string psd = 9;
string ip = 10;
string ap_country = 11;
}
// source: ble
message ResAp {
int32 cmd = 1;
int32 code = 2;
int32 mode = 3;
string ssid = 4;
string psd = 5;
}
// source: ble
message ResSta {
int32 cmd = 1;
int32 code = 2;
string ssid = 3;
string psd = 4;
string ip = 5;
}
// source: ble
message ResSetblewifi {
int32 cmd = 1;
int32 code = 2;
int32 mode = 3;
string value = 4;
}
// source: ble
message ResReset {
int32 cmd = 1;
int32 code = 2;
}
// source: ble
message WifiInfo {
int32 signal_level = 1;
string ssid = 2;
string security_capability = 3;
}
// source: ble
message ResWifilist {
int32 cmd = 1;
int32 code = 2;
repeated string ssid = 4;
repeated WifiInfo wifi_info_list = 5;
}
// source: ble
message ResGetsysteminfo {
int32 cmd = 1;
int32 code = 2;
int32 protocol_version = 3;
string device = 4;
string mac_address = 5;
string dwarf_ota_version = 6;
}
// source: ble
message ResReceiveDataError {
int32 cmd = 1;
int32 code = 2;
}
// source: ble
message ResCheckFile {
int32 cmd = 1;
int32 code = 2;
}
// source: ble
message ComDwarfMsg {
VocalType vocaltype = 1;
}
// source: ble
message DwarfPing {
VocalType vocaltype = 1;
uint64 timestamp = 2;
bytes magic = 3;
repeated bytes vocals = 4;
repeated bytes mutes = 5;
}
// source: ble
message StationModel {
uint32 family = 1;
uint32 revision = 2;
}
// source: ble
message NifAP {
// oneof _ipv6
string ifname = 1;
int32 mode = 2;
string country_code = 3;
string ssid = 4;
string sec = 5;
string psw = 6;
bytes ipv4 = 7;
bytes ipv6 = 8;
}
// source: ble
message NifSTA {
// oneof _ssid
// oneof _psw
// oneof _rssi
// oneof _ipv4
// oneof _ipv6
string ifname = 1;
string ssid = 2;
string psw = 3;
int32 rssi = 4;
bytes ipv4 = 5;
bytes ipv6 = 6;
}
// source: ble
message DwarfEcho {
VocalType vocaltype = 1;
uint64 timestamp = 2;
bytes magic = 3;
uint64 ts_ping = 4;
bytes mac_address = 5;
StationModel model = 6;
string sn = 7;
string name = 8;
string psw = 9;
string fw_version = 10;
string ws_scheme = 11;
uint32 session = 12;
NifAP ap = 13;
NifSTA sta = 14;
}
// source: camera
message ReqOpenCamera {
bool binning = 1;
int32 rtsp_encode_type = 2;
}
// source: camera
message ReqCloseCamera {
}
// source: camera
message ReqPhoto {
}
// source: camera
message ReqBurstPhoto {
int32 count = 1;
}
// source: camera
message ReqStopBurstPhoto {
}
// source: camera
message ReqStartRecord {
int32 encode_type = 1;
}
// source: camera
message ReqStopRecord {
}
// source: camera
message ReqSetExpMode {
int32 mode = 1;
}
// source: camera
message ReqGetExpMode {
}
// source: camera
message ReqSetExp {
int32 index = 1;
}
// source: camera
message ReqGetExp {
}
// source: camera
message ReqSetGainMode {
int32 mode = 1;
}
// source: camera
message ReqGetGainMode {
}
// source: camera
message ReqSetGain {
int32 index = 1;
}
// source: camera
message ReqGetGain {
}
// source: camera
message ReqSetBrightness {
int32 value = 1;
}
// source: camera
message ReqGetBrightness {
}
// source: camera
message ReqSetContrast {
int32 value = 1;
}
// source: camera
message ReqGetContrast {
}
// source: camera
message ReqSetHue {
int32 value = 1;
}
// source: camera
message ReqGetHue {
}
// source: camera
message ReqSetSaturation {
int32 value = 1;
}
// source: camera
message ReqGetSaturation {
}
// source: camera
message ReqSetSharpness {
int32 value = 1;
}
// source: camera
message ReqGetSharpness {
}
// source: camera
message ReqSetWBMode {
int32 mode = 1;
}
// source: camera
message ReqGetWBMode {
}
// source: camera
message ReqSetWBSence {
int32 value = 1;
}
// source: camera
message ReqGetWBSence {
}
// source: camera
message ReqSetWBCT {
int32 index = 1;
}
// source: camera
message ReqGetWBCT {
}
// source: camera
message ReqSetIrCut {
int32 value = 1;
}
// source: camera
message ReqGetIrcut {
}
// source: camera
message ReqStartTimeLapse {
}
// source: camera
message ReqStopTimeLapse {
}
// source: camera
message ReqSetAllParams {
int32 exp_mode = 1;
int32 exp_index = 2;
int32 gain_mode = 3;
int32 gain_index = 4;
int32 ircut_value = 5;
int32 wb_mode = 6;
int32 wb_index_type = 7;
int32 wb_index = 8;
int32 brightness = 9;
int32 contrast = 10;
int32 hue = 11;
int32 saturation = 12;
int32 sharpness = 13;
int32 jpg_quality = 14;
}
// source: camera
message ReqGetAllParams {
}
// source: camera
message ResGetAllParams {
repeated CommonParam all_params = 1;
int32 code = 2;
}
// source: camera
message ReqSetFeatureParams {
CommonParam param = 1;
}
// source: camera
message ReqGetAllFeatureParams {
}
// source: camera
message ResGetAllFeatureParams {
repeated CommonParam all_feature_params = 1;
int32 code = 2;
}
// source: camera
message ReqGetSystemWorkingState {
}
// source: camera
message ReqSetJpgQuality {
int32 quality = 1;
}
// source: camera
message ReqGetJpgQuality {
}
// source: camera
message ReqPhotoRaw {
}
// source: camera
message ReqSetRtspBitRateType {
int32 bitrate_type = 1;
}
// source: camera
message ReqDisableAllIspProcessing {
}
// source: camera
message ReqEnableAllIspProcessing {
}
// source: camera
message IspModuleState {
int32 module_id = 1;
bool state = 2;
}
// source: camera
message ReqSetIspModuleState {
repeated IspModuleState module_states = 1;
}
// source: camera
message ReqGetIspModuleState {
repeated int32 module_ids = 1;
}
// source: camera
message ReqSwitchResolution {
int32 resolution_index = 1;
}
// source: camera
message ReqSwitchFrameRate {
int32 fps_index = 1;
}
// source: camera
message ReqSwitchCropRatio {
int32 crop_ratio = 1;
}
// source: camera
message ReqSetPreviewQuality {
uint32 level = 1;
uint32 quality = 2;
}
// source: device
message ReqLensDefog {
int32 state = 1;
}
// source: device
message ReqAutoCooling {
int32 state = 1;
}
// source: device
message ReqAutoShutdown {
int32 state = 1;
}
// source: focus
message ReqManualSingleStepFocus {
uint32 direction = 1;
}
// source: focus
message ReqManualContinuFocus {
uint32 direction = 1;
}
// source: focus
message ReqStopManualContinuFocus {
}
// source: focus
message ReqNormalAutoFocus {
uint32 mode = 1;
uint32 center_x = 2;
uint32 center_y = 3;
}
// source: focus
message ReqAstroAutoFocus {
uint32 mode = 1;
}
// source: focus
message ReqStopAstroAutoFocus {
}
// source: focus
message ReqGetUserInfinityPos {
}
// source: focus
message ReqSetUserInfinityPos {
int32 pos = 1;
}
// source: focus
message ResUserInfinityPos {
int32 code = 1;
int32 pos = 2;
}
// source: itips
message ReqITipsGet {
int32 mode = 1;
}
// source: itips
message ResITipsGet {
int32 mode = 1;
string itips_code = 2;
int32 code = 3;
}
// source: itips
message CommonITips {
int32 itips_status = 1;
string itips_code = 2;
}
// source: itips
message CommonStepITips {
int32 step_id = 1;
int32 step_status = 2;
repeated CommonITips step_itips = 3;
}
// source: itips
message ResITipsList {
repeated CommonStepITips itips_list = 1;
int32 mode = 2;
int32 code = 3;
}
// source: motor_control
message ReqMotorServiceJoystick {
double vector_angle = 1;
double vector_length = 2;
}
// source: motor_control
message ReqMotorServiceJoystickFixedAngle {
double vector_angle = 1;
double vector_length = 2;
}
// source: motor_control
message ReqMotorServiceJoystickStop {
}
// source: motor_control
message ReqMotorRun {
int32 id = 1;
double speed = 2;
bool direction = 3;
int32 speed_ramping = 4;
int32 resolution_level = 5;
}
// source: motor_control
message ReqMotorRunInPulse {
int32 id = 1;
int32 frequency = 2;
bool direction = 3;
int32 speed_ramping = 4;
int32 resolution = 5;
int32 pulse = 6;
bool mode = 7;
}
// source: motor_control
message ReqMotorRunTo {
int32 id = 1;
double end_position = 2;
double speed = 3;
int32 speed_ramping = 4;
int32 resolution_level = 5;
}
// source: motor_control
message ReqMotorGetPosition {
int32 id = 1;
}
// source: motor_control
message ReqMotorStop {
int32 id = 1;
}
// source: motor_control
message ReqMotorReset {
int32 id = 1;
bool direction = 2;
}
// source: motor_control
message ReqMotorChangeSpeed {
int32 id = 1;
double speed = 2;
}
// source: motor_control
message ReqMotorChangeDirection {
int32 id = 1;
bool direction = 2;
}
// source: motor_control
message ResMotor {
int32 id = 1;
int32 code = 2;
}
// source: motor_control
message ResMotorPosition {
int32 id = 1;
int32 code = 2;
double position = 3;
}
// source: motor_control
message ReqDualCameraLinkage {
int32 x = 1;
int32 y = 2;
}
// source: notify
enum OperationState {
OPERATION_STATE_IDLE = 0;
OPERATION_STATE_RUNNING = 1;
OPERATION_STATE_STOPPING = 2;
OPERATION_STATE_STOPPED = 3;
}
// source: notify
enum AstroState {
ASTRO_STATE_IDLE = 0;
ASTRO_STATE_RUNNING = 1;
ASTRO_STATE_STOPPING = 2;
ASTRO_STATE_STOPPED = 3;
ASTRO_STATE_PLATE_SOLVING = 4;
}
// source: notify
enum SentryModeState {
SENTRY_MODE_STATE_IDLE = 0;
SENTRY_MODE_STATE_INIT = 1;
SENTRY_MODE_STATE_DETECT = 2;
SENTRY_MODE_STATE_TRACK = 3;
SENTRY_MODE_STATE_TRACK_FINISH = 4;
SENTRY_MODE_STATE_STOPPING = 5;
}
// source: notify
enum SentryObjectType {
SENTRY_OBJECT_TYPE_UNKNOWN = 0;
SENTRY_OBJECT_TYPE_UFO = 1;
SENTRY_OBJECT_TYPE_BIRD = 2;
SENTRY_OBJECT_TYPE_PERSON = 3;
SENTRY_OBJECT_TYPE_ANIMAL = 4;
SENTRY_OBJECT_TYPE_VEHICLE = 5;
SENTRY_OBJECT_TYPE_FLYING = 6;
SENTRY_OBJECT_TYPE_BOAT = 7;
}
// source: notify
message PictureMatching {
uint32 x = 1;
uint32 y = 2;
uint32 width = 3;
uint32 height = 4;
}
// source: notify
message StorageInfo {
uint32 available_size = 1;
uint32 total_size = 2;
int32 storage_type = 3;
bool is_valid = 4;
}
// source: notify
message Temperature {
int32 code = 1;
int32 temperature = 2;
}
// source: notify
message CmosTemperature {
// oneof _temperature
int32 temperature = 1;
int32 camera_type = 2;
}
// source: notify
message RecordTime {
uint32 record_time = 1;
uint32 camera_type = 2;
}
// source: notify
message TimeLapseOutTime {
uint32 interval = 1;
uint32 out_time = 2;
uint32 total_time = 3;
uint32 camera_type = 4;
}
// source: notify
message OperationStateNotify {
OperationState state = 1;
}
// source: notify
message AstroCalibrationState {
AstroState state = 1;
int32 plate_solving_times = 2;
}
// source: notify
message AstroGotoState {
AstroState state = 1;
string target_name = 2;
}
// source: notify
message AstroTrackingState {
OperationState state = 1;
string target_name = 2;
}
// source: notify
message ProgressCaptureRawDark {
int32 progress = 1;
int32 remaining_time = 2;
int32 camera_type = 3;
}
// source: notify
message ProgressCaptureRawLiveStacking {
// oneof _shooting_time
// oneof _stacked_time
int32 total_count = 1;
int32 update_type = 2;
int32 current_count = 3;
int32 stacked_count = 4;
int32 exp_index = 5;
int32 gain_index = 6;
string target_name = 7;
int32 camera_type = 8;
int32 shooting_time = 9;
int32 stacked_time = 10;
}
// source: notify
message Param {
repeated CommonParam param = 1;
}
// source: notify
message BurstProgress {
uint32 total_count = 1;
uint32 completed_count = 2;
uint32 camera_type = 3;
}
// source: notify
message PanoramaProgress {
int32 total_count = 1;
int32 completed_count = 2;
uint32 camera_type = 3;
}
// source: notify
message RgbState {
int32 state = 1;
}
// source: notify
message PowerIndState {
int32 state = 1;
}
// source: notify
message ChargingState {
int32 state = 1;
}
// source: notify
message BatteryInfo {
int32 percentage = 1;
}
// source: notify
message HostSlaveMode {
int32 mode = 1;
bool lock = 2;
}
// source: notify
message MTPState {
int32 mode = 1;
}
// source: notify
message TrackResult {
int32 x = 1;
int32 y = 2;
int32 w = 3;
int32 h = 4;
int32 id = 5;
}
// source: notify
message CPUMode {
int32 mode = 1;
}
// source: notify
message AstroTrackingSpecialState {
OperationState state = 1;
string target_name = 2;
int32 index = 3;
}
// source: notify
message PowerOff {
}
// source: notify
message AlbumUpdate {
int32 media_type = 1;
}
// source: notify
message SentryState {
SentryModeState state = 1;
SentryObjectType object_type = 2;
}
// source: notify
message OneClickGotoState {
// oneof current_state
AstroAutoFocusState astro_auto_focus_state = 1;
AstroCalibrationState astro_calibration_state = 2;
AstroGotoState astro_goto_state = 3;
AstroTrackingState astro_tracking_state = 4;
}
// source: notify
message StreamType {
int32 stream_type = 1;
int32 cam_id = 2;
}
// source: notify
message MultiTrackResult {
repeated TrackResult results = 1;
}
// source: notify
message EqSolvingState {
OperationState state = 1;
}
// source: notify
message LongExpPhotoProgress {
double total_time = 1;
double exposured_time = 2;
uint32 camera_type = 3;
}
// source: notify
message ShootingScheduleResultAndState {
string schedule_id = 1;
int32 result = 2;
int32 state = 3;
}
// source: notify
message ShootingTaskState {
string schedule_task_id = 1;
int32 state = 2;
int32 code = 3;
}
// source: notify
message SkySeacherState {
OperationState state = 1;
}
// source: notify
message ProgressAiEnhance {
int32 progress = 1;
int32 total_time = 2;
}
// source: notify
message CommonProgress {
enum ProgressType {
PROGRESS_TYPE_INITING = 0;
PROGRESS_TYPE_MOSAIC_MOVING = 1;
}
int32 current = 1;
int32 total = 2;
CommonProgress.ProgressType progress_type = 3;
}
// source: notify
message CalibrationResult {
double azi = 1;
double alt = 2;
}
// source: notify
message FocusPosition {
int32 pos = 1;
}
// source: notify
message SentryAutoHand {
int32 mode = 1;
}
// source: notify
message PanoramaStitchUploadComplete {
int32 code = 1;
string user_id = 2;
string busi_no = 3;
string panorama_name = 4;
string mac = 5;
}
// source: notify
message PanoramaCompressionComplete {
int32 code = 1;
string panorama_name = 2;
string zip_file_path = 3;
string zip_file_md5 = 4;
uint64 zip_file_size = 5;
string stitch_param = 6;
}
// source: notify
message PanoramaCompressionProgress {
string panorama_name = 1;
uint32 total_files_num = 2;
uint32 compressed_files_num = 3;
}
// source: notify
message PanoramaUploadCompressionProgress {
string user_id = 1;
string busi_no = 2;
string panorama_name = 3;
string mac = 4;
uint32 total_files_num = 5;
uint32 compressed_files_num = 6;
double speed = 7;
}
// source: notify
message PanoramaUploadProgress {
string user_id = 1;
string busi_no = 2;
string panorama_name = 3;
string mac = 4;
uint64 total_size = 5;
uint64 uploaded_size = 6;
double speed = 7;
}
// source: notify
message PanoramaCurrentUploadState {
int32 code = 1;
string user_id = 2;
string busi_no = 3;
string panorama_name = 4;
string mac = 5;
uint32 total_files_num = 6;
uint32 compressed_files_num = 7;
uint64 total_size = 8;
uint64 uploaded_size = 9;
uint32 step = 10;
}
// source: notify
message LowTempProtectionMode {
int32 mode = 1;
}
// source: notify
message StateSystemResourceOccupation {
enum TaskId {
IDLE = 0;
PANORAMA_UPLOAD = 1;
ASTRO_MULTI_STACK = 2;
}
StateSystemResourceOccupation.TaskId task_id = 1;
OperationState state = 2;
}
// source: notify
message BodyStatus {
enum BodyStatusEnum {
UNKNOWN = 0;
EQ_MODE = 1;
AZI_MODE = 2;
}
BodyStatus.BodyStatusEnum body_status = 1;
}
// source: notify
message ProgressCaptureMosaic {
int32 total_count = 1;
int32 update_type = 2;
int32 current_count = 3;
int32 stacked_count = 4;
int32 exp_index = 5;
int32 gain_index = 6;
string target_name = 7;
int32 horizontal_scale = 8;
int32 vertical_scale = 9;
int32 rotation = 10;
int32 fov_id = 11;
int32 fov_total = 12;
}
// source: notify
message Wb {
uint64 mode = 1;
int32 ct = 2;
int32 scene = 3;
int32 camera_type = 4;
}
// source: notify
message GeneralIntParam {
uint64 param_id = 1;
int32 mode = 2;
int32 value = 3;
}
// source: notify
message GeneralFloatParam {
uint64 param_id = 1;
float value = 2;
}
// source: notify
message GeneralBoolParams {
uint64 param_id = 1;
bool value = 2;
}
// source: notify
message SwitchShootingMode {
int32 state = 1;
int32 source_mode = 2;
int32 dst_mode = 3;
}
// source: notify
message SwitchCropRatioState {
int32 state = 1;
int32 crop_ratio = 2;
}
// source: notify
message ResolutionParam {
uint64 param_id = 1;
int32 current_res_value = 2;
int32 current_fps_value = 3;
repeated int32 supported_fps_list = 4;
repeated int32 supported_resolution_list = 5;
}
// source: notify
message CaptureRawState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message PhotoState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message BurstState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message RecordState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message TimeLapseState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message CaptureRawDarkState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message PanoramaState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message AstroAutoFocusState {
OperationState state = 1;
}
// source: notify
message NormalAutoFocusState {
OperationState state = 1;
}
// source: notify
message AstroAutoFocusFastState {
OperationState state = 1;
}
// source: notify
message AreaAutoFocusState {
OperationState state = 1;
}
// source: notify
message DualCameraLinkageState {
OperationState state = 1;
}
// source: notify
message NormalTrackState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message SwitchResolutionFpsState {
OperationState state = 1;
int32 camera_type = 2;
}
// source: notify
message CaptureCaliFrameState {
OperationState state = 1;
int32 camera_type = 2;
int32 cali_frame_type = 3;
}
// source: notify
message CaptureCaliFrameProgress {
int32 progress = 1;
int32 camera_type = 2;
int32 cali_frame_type = 3;
}
// source: notify
message DeviceAttitude {
double pitch = 1;
double yaw = 2;
double roll = 3;
}
// source: notify
message SkyTargetFinderState {
OperationState state = 1;
int32 scene_type = 2;
}
// source: notify
message PanoFramingThumbnailUpdateNotify {
bytes webp_data = 1;
}
// source: notify
message PanoFramingRectUpdateNotify {
double norm_x_tl = 1;
double norm_y_tl = 2;
double norm_x_br = 3;
double norm_y_br = 4;
double norm_limit_x_left = 5;
double norm_limit_y_top = 6;
double norm_limit_x_right = 7;
double norm_limit_y_bottom = 8;
double rect_hor_fov = 9;
double rect_ver_fov = 10;
int32 error_code = 11;
}
// source: notify
message PanoFramingStateNotify {
int32 state = 1;
}
// source: notify
message AutoShutdown {
int32 state = 1;
}
// source: notify
message LensDefog {
int32 state = 1;
}
// source: notify
message AutoCooling {
int32 state = 1;
}
// source: panorama
message ReqStartPanoramaByGrid {
}
// source: panorama
message ReqStartPanoramaByEulerRange {
float yaw_range = 1;
float pitch_range = 2;
}
// source: panorama
message ReqStartPanoramaStitchUpload {
uint64 resource_id = 1;
string user_id = 2;
int32 app_platform = 3;
string panorama_name = 4;
string ak = 5;
string sk = 6;
string token = 7;
string bucket = 8;
string bucket_prefix = 9;
string from = 10;
string env_type = 11;
}
// source: panorama
message ReqStopPanorama {
}
// source: panorama
message ReqStopPanoramaStitchUpload {
string user_id = 1;
}
// source: panorama
message ReqGetPanoramaCurrentUploadState {
}
// source: panorama
message ResGetPanoramaCurrentUploadState {
int32 code = 1;
string user_id = 2;
string busi_no = 3;
string panorama_name = 4;
string mac = 5;
uint32 total_files_num = 6;
uint32 compressed_files_num = 7;
uint64 total_size = 8;
uint64 uploaded_size = 9;
uint32 step = 10;
}
// source: panorama
message ReqGetUploadPredict {
string panorama_name = 1;
}
// source: panorama
message ResGetUploadPredict {
int32 code = 1;
string panorama_name = 2;
uint32 file_nums = 3;
string resolution = 4;
uint64 cloud_data_size = 5;
uint64 zip_data_size = 6;
uint64 app_zip_data_size = 7;
}
// source: panorama
message PanoramaUploadParam {
string user_id = 1;
string busi_no = 2;
string panorama_name = 3;
string mac = 4;
uint32 total_files_num = 5;
uint32 compressed_files_num = 6;
uint64 total_size = 7;
uint64 uploaded_size = 8;
uint32 step = 9;
}
// source: panorama
message ReqCompressPanorama {
string panorama_name = 1;
}
// source: panorama
message ReqStopCompressPanorama {
}
// source: panorama
message ReqStartPanoramaFraming {
}
// source: panorama
message ReqResetPanoramaFraming {
}
// source: panorama
message ReqStopPanoramaFraming {
}
// source: panorama
message ReqStopPanoramaFramingAndStartGrid {
}
// source: panorama
message ResStopPanoramaFraming {
int32 code = 1;
double centerX_degree_offset = 2;
double centerY_degree_offset = 3;
uint32 framing_rows = 4;
uint32 framing_cols = 5;
}
// source: panorama
message ReqUpdatePanoramaFramingRect {
double norm_x_tl = 1;
double norm_y_tl = 2;
double norm_x_br = 3;
double norm_y_br = 4;
}
// source: param
message ReqSetExposure {
uint64 param_id = 1;
int32 mode = 2;
int32 value = 3;
}
// source: param
message ParamReqSetGain {
uint64 param_id = 1;
int32 mode = 2;
int32 value = 3;
}
// source: param
message ReqSetWb {
uint64 param_id = 1;
int32 mode = 2;
int32 value = 3;
}
// source: param
message ReqSetGeneralIntParam {
uint64 param_id = 1;
int32 value = 2;
}
// source: param
message ReqSetGeneralFloatParam {
uint64 param_id = 1;
float value = 2;
}
// source: param
message ReqSetGeneralBoolParams {
uint64 param_id = 1;
bool value = 2;
}
// source: param
message ReqSetAutoParam {
int32 camera_type = 1;
int32 shooting_tech = 2;
bool is_auto = 3;
}
// source: param
message ResSetAutoParam {
int32 shooting_mode = 1;
int32 camera_type = 2;
int32 shooting_tech = 3;
bool is_auto = 4;
bool update_all = 5;
int32 code = 6;
}
// source: rgb
message ReqOpenRgb {
}
// source: rgb
message ReqCloseRgb {
}
// source: rgb
message ReqPowerDown {
}
// source: rgb
message ReqOpenPowerInd {
}
// source: rgb
message ReqClosePowerInd {
}
// source: rgb
message ReqReboot {
}
// source: schedule
enum ShootingScheduleState {
SHOOTING_SCHEDULE_STATE_INITIALIZED = 0;
SHOOTING_SCHEDULE_STATE_PENDING_SHOOT = 1;
SHOOTING_SCHEDULE_STATE_SHOOTING = 2;
SHOOTING_SCHEDULE_STATE_COMPLETED = 3;
SHOOTING_SCHEDULE_STATE_EXPIRED = 4;
}
// source: schedule
enum ShootingScheduleSyncState {
SHOOTING_SCHEDULE_SYNC_STATE_PENDING_SYNC = 0;
SHOOTING_SCHEDULE_SYNC_STATE_SYNCED = 1;
}
// source: schedule
enum ShootingScheduleResult {
SHOOTING_SCHEDULE_RESULT_PENDING_START = 0;
SHOOTING_SCHEDULE_RESULT_ALL_COMPLETED = 1;
SHOOTING_SCHEDULE_RESULT_PARTIALLY_COMPLETED = 2;
SHOOTING_SCHEDULE_RESULT_ALL_FAILED = 3;
}
// source: schedule
enum ScheduleShootingTaskState {
SHOOTING_TASK_STATUS_IDLE = 0;
SHOOTING_TASK_STATUS_SHOOTING = 1;
SHOOTING_TASK_STATUS_SUCCESS = 2;
SHOOTING_TASK_STATUS_FAILED = 3;
SHOOTING_TASK_STATUS_INTERRUPTED = 4;
}
// source: schedule
enum ShootingScheduleMode {
SHOOTING_SCHEDULE_MODE_ASTRO_DEEP_SKY = 0;
}
// source: schedule
message ShootingTaskMsg {
string schedule_id = 1;
string params = 2;
ShootingTaskState state = 3;
int32 code = 4;
int64 created_time = 5;
int64 updated_time = 6;
string schedule_task_id = 7;
int32 param_mode = 8;
int32 param_version = 9;
int32 create_from = 10;
}
// source: schedule
message ShootingScheduleMsg {
string schedule_id = 1;
string schedule_name = 2;
int32 device_id = 3;
string mac_address = 4;
int64 start_time = 5;
int64 end_time = 6;
ShootingScheduleResult result = 7;
int64 created_time = 8;
int64 updated_time = 9;
ShootingScheduleState state = 10;
int32 lock = 11;
string password = 12;
repeated ShootingTaskMsg shooting_tasks = 13;
int32 param_mode = 14;
int32 param_version = 15;
string params = 16;
int64 schedule_time = 17;
ShootingScheduleSyncState sync_state = 18;
}
// source: schedule
message ReqSyncShootingSchedule {
ShootingScheduleMsg shooting_schedule = 1;
}
// source: schedule
message ResSyncShootingSchedule {
ShootingScheduleMsg shooting_schedule = 1;
repeated string time_conflict_schedule_ids = 2;
int32 code = 3;
bool can_replace = 4;
}
// source: schedule
message ReqCancelShootingSchedule {
string id = 1;
string password = 2;
}
// source: schedule
message ResCancelShootingSchedule {
string id = 1;
int32 code = 2;
}
// source: schedule
message ReqGetAllShootingSchedule {
}
// source: schedule
message ResGetAllShootingSchedule {
repeated ShootingScheduleMsg shooting_schedule = 1;
int32 code = 2;
}
// source: schedule
message ReqGetShootingScheduleById {
string id = 1;
}
// source: schedule
message ResGetShootingScheduleById {
ShootingScheduleMsg shooting_schedule = 1;
int32 code = 2;
}
// source: schedule
message ReqGetShootingTaskById {
string id = 1;
}
// source: schedule
message ResGetShootingTaskById {
ShootingTaskMsg shooting_task = 1;
int32 code = 2;
}
// source: schedule
message ReqReplaceShootingSchedule {
ShootingScheduleMsg shooting_schedule = 1;
}
// source: schedule
message ResReplaceShootingSchedule {
ShootingScheduleMsg shooting_schedule = 1;
repeated ShootingScheduleMsg replaced_shooting_schedule = 2;
int32 code = 3;
}
// source: schedule
message ReqUnlockShootingSchedule {
string id = 1;
string password = 2;
}
// source: schedule
message ResUnlockShootingSchedule {
string id = 1;
int32 code = 2;
}
// source: schedule
message ReqLockShootingSchedule {
string id = 1;
string password = 2;
}
// source: schedule
message ResLockShootingSchedule {
string id = 1;
string password = 2;
int32 code = 3;
}
// source: schedule
message ReqDeleteShootingSchedule {
string id = 1;
string password = 2;
}
// source: schedule
message ResDeleteShootingSchedule {
string id = 1;
int32 code = 2;
}
// source: system
message ReqSetTime {
uint64 timestamp = 1;
double timezone_offset = 2;
}
// source: system
message ReqSetTimezone {
string timezone = 1;
}
// source: system
message ReqSetMtpMode {
int32 mode = 1;
}
// source: system
message ReqSetCpuMode {
int32 mode = 1;
}
// source: system
message ReqsetMasterLock {
bool lock = 1;
}
// source: system
message ReqGetDeviceActivateInfo {
int32 issuer = 1;
}
// source: system
message ResDeviceActivateInfo {
int32 activate_state = 1;
int32 activate_process_state = 2;
string request_param = 3;
}
// source: system
message ReqDeviceActivateWriteFile {
string request_param = 1;
}
// source: system
message ResDeviceActivateWriteFile {
int32 code = 1;
string request_param = 2;
}
// source: system
message ReqDeviceActivateSuccessfull {
string request_param = 1;
}
// source: system
message ResDeviceActivateSuccessfull {
int32 code = 1;
int32 activate_state = 2;
}
// source: system
message ReqDisableDeviceActivate {
string request_param = 1;
}
// source: system
message ResDisableDeviceActivate {
int32 code = 1;
int32 activate_state = 2;
}
// source: system
message ReqSetLocation {
double latitude = 1;
double longitude = 2;
double altitude = 3;
string country_region = 4;
string province = 5;
string city = 6;
string district = 7;
bool enable = 8;
}
// source: task_center
enum TaskId {
TASK_ID_IDLE = 0;
TASK_ID_PANORAMA_UPLOAD = 1;
TASK_ID_ASTRO_MULTI_STACK_THUMBNAIL_GENERATION = 2;
TASK_ID_ASTRO_MULTI_STACK = 3;
TASK_ID_CAPTURE_CALI_FRAME = 4;
}
// source: task_center
enum ExclusiveTaskType {
EXCLUSIVE_TYPE_NONE = 0;
EXCLUSIVE_TYPE_CAMERA = 1;
EXCLUSIVE_TYPE_MOTOR = 2;
EXCLUSIVE_TYPE_FOCUS_MOTOR = 4;
EXCLUSIVE_TYPE_SYSTEM_IO = 8;
EXCLUSIVE_TYPE_SYSTEM_WIFI = 16;
}
// source: task_center
message TaskAttr {
int32 exclusive_mask = 1;
int32 priority = 2;
}
// source: task_center
message TaskState {
// oneof extendedState
OperationState base_state = 1;
AstroState astro_extended_state = 2;
}
// source: task_center
message TaskParam {
// oneof param
PanoramaUploadParam panorama_upload = 1;
MakeFitsThumbTaskParam make_fits_thumb_task_param = 2;
RepostprocessTaskParam repostprocess_task_param = 3;
CaptureCaliFrameTaskParam capture_cali_frame_task_param = 4;
}
// source: task_center
message ResNotifyTaskState {
TaskId task_id = 1;
TaskAttr task_attr = 2;
TaskState state = 3;
TaskParam param = 4;
}
// source: task_center
message ReqStartTask {
// oneof param
TaskId task_id = 1;
ReqStartMakeFitsThumb req_make_fits_thumb_param = 2;
ReqStartRepostprocess req_repostprocess_param = 3;
}
// source: task_center
message ReqStopTask {
TaskId task_id = 1;
}
// source: task_center
message ResTaskCenter {
int32 code = 1;
TaskId task_id = 2;
}
// source: task_center
message ClientParams {
int32 encode_type = 1;
}
// source: task_center
message ReqEnterCamera {
ClientParams client_param = 3;
}
// source: task_center
message ResEnterCamera {
int32 code = 1;
int32 shooting_mode_id = 2;
}
// source: task_center
message ReqSwitchShootingMode {
int32 mode = 1;
}
// source: task_center
message ResSwitchShootingMode {
int32 code = 1;
int32 shooting_mode_id = 2;
}
// source: task_center
message ReqSwitchShootingTech {
int32 tech = 1;
}
// source: task_center
message ResSwitchShootingTech {
int32 code = 1;
int32 shooting_tech_id = 2;
}
// source: task_center
message ReqGetDeviceStateInfo {
}
// source: task_center
message ExclusiveCameraState {
// oneof current_state
CaptureRawState capture_raw_state = 1;
PhotoState photo_state = 2;
BurstState burst_state = 3;
RecordState record_state = 4;
TimeLapseState timelapse_state = 5;
CaptureCaliFrameState capture_cali_frame_state = 6;
PanoramaState panorama_state = 7;
SentryState sentry_state = 8;
}
// source: task_center
message TeleCameraStateInfo {
// oneof _cmos_temperature
ExclusiveCameraState exclusive_state = 1;
StreamType stream_type = 2;
double h_fov = 3;
double v_fov = 4;
uint32 resolution_width = 5;
uint32 resolution_height = 6;
CmosTemperature cmos_temperature = 7;
}
// source: task_center
message WideCameraStateInfo {
// oneof _cmos_temperature
ExclusiveCameraState exclusive_state = 1;
StreamType stream_type = 2;
double h_fov = 3;
double v_fov = 4;
uint32 resolution_width = 5;
uint32 resolution_height = 6;
CmosTemperature cmos_temperature = 7;
}
// source: task_center
message ExclusiveFocusMotorState {
// oneof current_state
AstroAutoFocusState astro_auto_focus_state = 1;
NormalAutoFocusState normal_auto_focus_state = 2;
AstroAutoFocusFastState astro_auto_focus_fast_state = 3;
AreaAutoFocusState area_auto_focus_state = 4;
}
// source: task_center
message FocusMotorStateInfo {
// oneof _focus_position
ExclusiveFocusMotorState exclusive_state = 1;
FocusPosition focus_position = 2;
}
// source: task_center
message ExclusiveMotionMotorState {
// oneof current_state
AstroCalibrationState astro_calibration_state = 1;
AstroGotoState astro_goto_state = 2;
AstroTrackingState astro_tracking_state = 3;
NormalTrackState normal_track_state = 4;
OneClickGotoState one_click_goto_state = 5;
EqSolvingState eq_state = 6;
SentryState sentry_state = 7;
SkyTargetFinderState sky_target_finder_state = 8;
}
// source: task_center
message MotionMotorStateInfo {
ExclusiveMotionMotorState exclusive_state = 1;
SentryAutoHand sentry_auto_hand = 2;
}
// source: task_center
message DeviceStateInfo {
RgbState rgb_state = 1;
PowerIndState power_ind_state = 2;
ChargingState charging_state = 3;
StorageInfo storage_info = 4;
MTPState mtp_state = 5;
CPUMode cpu_mode = 6;
Temperature temperature = 7;
BodyStatus body_status = 8;
BatteryInfo battery_info = 9;
CalibrationResult calibration_result = 10;
PictureMatching picture_matching = 11;
AutoShutdown auto_shutdown = 12;
LensDefog lens_defog = 13;
AutoCooling auto_cooling = 14;
}
// source: task_center
message ConnectionStateInfo {
HostSlaveMode host_slave_mode = 1;
}
// source: task_center
message ShootingModeAndTech {
int32 shooting_mode = 1;
int32 parent_shooting_mode = 2;
repeated int32 shooting_techs = 3;
}
// source: task_center
message ResGetDeviceStateInfo {
int32 shooting_mode = 1;
TeleCameraStateInfo tele_camera_state_info = 2;
WideCameraStateInfo wide_camera_state_info = 3;
FocusMotorStateInfo focus_motor_state_info = 4;
MotionMotorStateInfo motion_motor_state_info = 5;
DeviceStateInfo device_state_info = 6;
int32 code = 7;
ConnectionStateInfo connection_state_info = 8;
repeated ShootingModeAndTech shooting_mode_and_techs = 9;
}
// source: track
message ReqStartTrack {
int32 x = 1;
int32 y = 2;
int32 w = 3;
int32 h = 4;
int32 cam_id = 5;
}
// source: track
message ReqStopTrack {
}
// source: track
message ReqPauseTrack {
}
// source: track
message ReqContinueTrack {
}
// source: track
message ReqStartSentryMode {
int32 type = 1;
}
// source: track
message ReqStopSentryMode {
}
// source: track
message ReqMOTTrackOne {
int32 id = 1;
}
// source: track
message ReqUFOAutoHandMode {
int32 mode = 1;
}
// source: track
message ReqStartTrackClick {
int32 x = 1;
int32 y = 2;
int32 cam_id = 3;
}
// source: voiceassistant
enum VoiceCommandType {
VOICE_CMD_UNKNOWN = 0;
VOICE_CMD_GET_STATUS = 1;
VOICE_CMD_TAKE_PHOTO = 2;
VOICE_CMD_START_RECORD = 3;
VOICE_CMD_STOP_RECORD = 4;
VOICE_CMD_START_TIMELAPSE = 5;
VOICE_CMD_STOP_TIMELAPSE = 6;
VOICE_CMD_START_BURST = 7;
VOICE_CMD_STOP_BURST = 8;
VOICE_CMD_START_ASTRO = 9;
VOICE_CMD_STOP_ASTRO = 10;
VOICE_CMD_START_SENTRY = 11;
VOICE_CMD_STOP_SENTRY = 12;
VOICE_CMD_MOVE = 13;
VOICE_CMD_GOTO_TARGET = 14;
VOICE_CMD_CALIBRATION = 15;
VOICE_CMD_AUTO_FOCUS = 16;
VOICE_CMD_STOP_FOCUS = 17;
VOICE_CMD_STOP_ALL = 18;
}
// source: voiceassistant
message ReqVoiceCommand {
// oneof params
VoiceCommandType command_type = 1;
int32 shooting_mode = 2;
VoicePhotoParams photo_params = 10;
VoiceRecordParams record_params = 11;
VoiceTimelapseParams timelapse_params = 12;
VoiceBurstParams burst_params = 13;
VoiceAstroParams astro_params = 14;
VoiceSentryParams sentry_params = 15;
VoiceMoveParams move_params = 16;
VoiceGotoParams goto_params = 17;
VoiceCalibrationParams calibration_params = 18;
VoiceFocusParams focus_params = 19;
}
// source: voiceassistant
message VoicePhotoParams {
int32 camera_type = 1;
}
// source: voiceassistant
message VoiceRecordParams {
int32 camera_type = 1;
int32 duration_seconds = 2;
}
// source: voiceassistant
message VoiceTimelapseParams {
int32 camera_type = 1;
int32 interval_seconds = 2;
int32 duration_seconds = 3;
}
// source: voiceassistant
message VoiceBurstParams {
int32 camera_type = 1;
int32 count = 2;
}
// source: voiceassistant
message VoiceAstroParams {
string target_name = 1;
double ra = 2;
double dec = 3;
int32 index = 4;
double lon = 5;
double lat = 6;
bool auto_goto = 7;
bool force_start = 8;
}
// source: voiceassistant
message VoiceSentryParams {
int32 type = 1;
}
// source: voiceassistant
message VoiceMoveParams {
double azimuth_angle = 1;
double altitude_angle = 2;
int32 speed = 3;
}
// source: voiceassistant
message VoiceGotoParams {
string target_name = 1;
double ra = 2;
double dec = 3;
int32 index = 4;
double lon = 5;
double lat = 6;
int32 shooting_mode = 7;
}
// source: voiceassistant
message VoiceCalibrationParams {
double lon = 1;
double lat = 2;
}
// source: voiceassistant
message VoiceFocusParams {
bool is_infinity = 1;
}
// source: voiceassistant
message ResVoiceCommand {
// oneof result
int32 code = 1;
string message = 2;
VoiceCommandType command_type = 3;
VoiceStatusResult status_result = 10;
VoiceOperationResult operation_result = 11;
}
// source: voiceassistant
message AstroShootingProgress {
string target_name = 1;
int32 captured_count = 2;
int32 total_count = 3;
int32 stacked_count = 4;
int32 progress_percentage = 5;
int64 elapsed_time = 6;
int64 remaining_time = 7;
}
// source: voiceassistant
message VoiceStatusResult {
ResGetDeviceStateInfo device_state_info = 1;
AstroShootingProgress astro_progress = 2;
}
// source: voiceassistant
message VoiceOperationResult {
bool success = 1;
string detail_message = 2;
}
// source: voiceassistant
message ResNotifyVoiceAssistant {
VoiceCommandType command_type = 1;
OperationState state = 2;
string message = 4;
}