{
  "source_binary": "dwarf_mini_v1.1.3.2/bin/bilbo",
  "source_sha256": "e7ae24fae358eda8ca301a231f000c23fae66df27571f0a92796c34bc54ad090",
  "descriptors": [
    {
      "name": "astro.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8677556,
      "offset_hex": "0x8468b4",
      "encoded_size": 5405,
      "sha256": "6388fe34dc110ec8f4fa00ee93880f72f59e6be4b67860f24cc366e42de49e28",
      "messages": [
        {
          "name": "ReqStartCalibration",
          "full_name": "ReqStartCalibration",
          "fields": [
            {
              "name": "lon",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCalibration",
          "full_name": "ReqStopCalibration",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGotoDSO",
          "full_name": "ReqGotoDSO",
          "fields": [
            {
              "name": "ra",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dec",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "goto_only",
              "number": 4,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_rotation",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGotoSolarSystem",
          "full_name": "ReqGotoSolarSystem",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_start",
              "number": 5,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGotoSolarSystem",
          "full_name": "ResGotoSolarSystem",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "req",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqGotoSolarSystem",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopGoto",
          "full_name": "ReqStopGoto",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureRawLiveStacking",
          "full_name": "ReqCaptureRawLiveStacking",
          "fields": [
            {
              "name": "ir_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_start",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCaptureRawLiveStacking",
          "full_name": "ReqStopCaptureRawLiveStacking",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFastStopCaptureRawLiveStacking",
          "full_name": "ReqFastStopCaptureRawLiveStacking",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCheckDarkFrame",
          "full_name": "ReqCheckDarkFrame",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResCheckDarkFrame",
          "full_name": "ResCheckDarkFrame",
          "fields": [
            {
              "name": "progress",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureDarkFrame",
          "full_name": "ReqCaptureDarkFrame",
          "fields": [
            {
              "name": "reshoot",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCaptureDarkFrame",
          "full_name": "ReqStopCaptureDarkFrame",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureDarkFrameWithParam",
          "full_name": "ReqCaptureDarkFrameWithParam",
          "fields": [
            {
              "name": "exp_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bin_index",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cap_size",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCaptureDarkFrameWithParam",
          "full_name": "ReqStopCaptureDarkFrameWithParam",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetDarkFrameList",
          "full_name": "ReqGetDarkFrameList",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetDarkFrameInfo",
          "full_name": "ResGetDarkFrameInfo",
          "fields": [
            {
              "name": "exp_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bin_index",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_name",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bin_name",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "temperature",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_temperature",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetDarkFrameInfoList",
          "full_name": "ResGetDarkFrameInfoList",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "results",
              "number": 2,
              "label": "repeated",
              "type": "message",
              "type_name": ".ResGetDarkFrameInfo",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDelDarkFrame",
          "full_name": "ReqDelDarkFrame",
          "fields": [
            {
              "name": "exp_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bin_index",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "temp_value",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDelDarkFrameList",
          "full_name": "ReqDelDarkFrameList",
          "fields": [
            {
              "name": "dark_list",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".ReqDelDarkFrame",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResDelDarkFrameList",
          "full_name": "ResDelDarkFrameList",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGoLive",
          "full_name": "ReqGoLive",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqTrackSpecialTarget",
          "full_name": "ReqTrackSpecialTarget",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopTrackSpecialTarget",
          "full_name": "ReqStopTrackSpecialTarget",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqOneClickGotoDSO",
          "full_name": "ReqOneClickGotoDSO",
          "fields": [
            {
              "name": "ra",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dec",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "goto_only",
              "number": 7,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_rotation",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResOneClickGoto",
          "full_name": "ResOneClickGoto",
          "fields": [
            {
              "name": "step",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "all_end",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqOneClickGotoSolarSystem",
          "full_name": "ReqOneClickGotoSolarSystem",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_start",
              "number": 6,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResOneClickGotoSolarSystem",
          "full_name": "ResOneClickGotoSolarSystem",
          "fields": [
            {
              "name": "step",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "all_end",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "req",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqOneClickGotoSolarSystem",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopOneClickGoto",
          "full_name": "ReqStopOneClickGoto",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureWideRawLiveStacking",
          "full_name": "ReqCaptureWideRawLiveStacking",
          "fields": [
            {
              "name": "force_start",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCaptureWideRawLiveStacking",
          "full_name": "ReqStopCaptureWideRawLiveStacking",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFastStopCaptureWideRawLiveStacking",
          "full_name": "ReqFastStopCaptureWideRawLiveStacking",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartEqSolving",
          "full_name": "ReqStartEqSolving",
          "fields": [
            {
              "name": "lon",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "use_calibration",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": "_use_calibration",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResStartEqSolving",
          "full_name": "ResStartEqSolving",
          "fields": [
            {
              "name": "azi_err",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "alt_err",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopEqSolving",
          "full_name": "ReqStopEqSolving",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartAiEnhance",
          "full_name": "ReqStartAiEnhance",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopAiEnhance",
          "full_name": "ReqStopAiEnhance",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartMosaic",
          "full_name": "ReqStartMosaic",
          "fields": [
            {
              "name": "horizontal_scale",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vertical_scale",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ir_index",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_start",
              "number": 5,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartMakeFitsThumb",
          "full_name": "ReqStartMakeFitsThumb",
          "fields": [
            {
              "name": "src_dir",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopMakeFitsThumb",
          "full_name": "ReqStopMakeFitsThumb",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResMakeFitsThumb",
          "full_name": "ResMakeFitsThumb",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "src_dir",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "MakeFitsThumbTaskParam",
          "full_name": "MakeFitsThumbTaskParam",
          "fields": [
            {
              "name": "src_dir",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqIsImageStackable",
          "full_name": "ReqIsImageStackable",
          "fields": [
            {
              "name": "src_dirs",
              "number": 1,
              "label": "repeated",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResIsImageStackable",
          "full_name": "ResIsImageStackable",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "need_dark_frame_info",
              "number": 2,
              "label": "repeated",
              "type": "message",
              "type_name": ".ResGetDarkFrameInfo",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartRepostprocess",
          "full_name": "ReqStartRepostprocess",
          "fields": [
            {
              "name": "src_dirs",
              "number": 1,
              "label": "repeated",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopRepostprocess",
          "full_name": "ReqStopRepostprocess",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResRepostprocess",
          "full_name": "ResRepostprocess",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "result_dir",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "RepostprocessTaskParam",
          "full_name": "RepostprocessTaskParam",
          "fields": [
            {
              "name": "result_dir",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetAstroShootingTime",
          "full_name": "ReqGetAstroShootingTime",
          "fields": [
            {
              "name": "exp_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "horizontal_scale",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vertical_scale",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cam_id",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetAstroShootingTime",
          "full_name": "ResGetAstroShootingTime",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_time",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cam_id",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "astro_mode",
              "number": 4,
              "label": "optional",
              "type": "enum",
              "type_name": ".ResGetAstroShootingTime.AstroMode",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": [
            {
              "name": "AstroMode",
              "full_name": "ResGetAstroShootingTime.AstroMode",
              "values": [
                {
                  "name": "NORMAL",
                  "number": 0
                },
                {
                  "name": "MOSAIC",
                  "number": 1
                }
              ]
            }
          ]
        },
        {
          "name": "ReqGetCaliFrameList",
          "full_name": "ReqGetCaliFrameList",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaliFrameInfo",
          "full_name": "CaliFrameInfo",
          "fields": [
            {
              "name": "exp_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "progress",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "filter_type",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_filter_type",
              "proto3_optional": true
            },
            {
              "name": "info_id",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_info_id",
              "proto3_optional": true
            },
            {
              "name": "temp_value",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_temp_value",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetCaliFrameList",
          "full_name": "ResGetCaliFrameList",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "list",
              "number": 2,
              "label": "repeated",
              "type": "message",
              "type_name": ".CaliFrameInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDelCaliFrameList",
          "full_name": "ReqDelCaliFrameList",
          "fields": [
            {
              "name": "info_ids",
              "number": 1,
              "label": "repeated",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureCaliFrame",
          "full_name": "ReqCaptureCaliFrame",
          "fields": [
            {
              "name": "exp_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cap_size",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "filter_type",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_filter_type",
              "proto3_optional": true
            },
            {
              "name": "scene_type",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCaptureCaliFrame",
          "full_name": "ReqStopCaptureCaliFrame",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureCaliFrameTaskParam",
          "full_name": "CaptureCaliFrameTaskParam",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetQuickSetList",
          "full_name": "ReqGetQuickSetList",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "QuikSetInfo",
          "full_name": "QuikSetInfo",
          "fields": [
            {
              "name": "exp_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "info_id",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetQuickSetList",
          "full_name": "ResGetQuickSetList",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "quick_set_list",
              "number": 2,
              "label": "repeated",
              "type": "message",
              "type_name": ".QuikSetInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetQuickSet",
          "full_name": "ReqSetQuickSet",
          "fields": [
            {
              "name": "info_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSetQuickSet",
          "full_name": "ResSetQuickSet",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "info_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqOneClickShootingParam",
          "full_name": "ReqOneClickShootingParam",
          "fields": [
            {
              "name": "horizontal_scale",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vertical_scale",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "filter_type",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cap_size",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqOneClickShooting",
          "full_name": "ReqOneClickShooting",
          "fields": [
            {
              "name": "goto_dso",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqOneClickGotoDSO",
              "oneof": "_goto_dso",
              "proto3_optional": true
            },
            {
              "name": "shooting_param",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqOneClickShootingParam",
              "oneof": "_shooting_param",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResAstroShooting",
          "full_name": "ResAstroShooting",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": "_exp_name",
              "proto3_optional": true
            },
            {
              "name": "gain",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_gain",
              "proto3_optional": true
            },
            {
              "name": "resolution",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_resolution",
              "proto3_optional": true
            },
            {
              "name": "filter_type",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_filter_type",
              "proto3_optional": true
            },
            {
              "name": "temp_threshold",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_temp_threshold",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartSkyTargetFinder",
          "full_name": "ReqStartSkyTargetFinder",
          "fields": [
            {
              "name": "lon",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_restart",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "scene_type",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResStartSkyTargetFinder",
          "full_name": "ResStartSkyTargetFinder",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zenith_azi",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zenith_alt",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "center_azi",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "center_alt",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "center_roll",
              "number": 6,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "scene_type",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopSkyTargetFinder",
          "full_name": "ReqStopSkyTargetFinder",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetGyroAttitude",
          "full_name": "ReqGetGyroAttitude",
          "fields": [
            {
              "name": "duration_ms",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetGyroAttitude",
          "full_name": "ResGetGyroAttitude",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "roll",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pitch",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "yaw",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "azi",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "alt",
              "number": 6,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqContinueShooting",
          "full_name": "ReqContinueShooting",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "base.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8686680,
      "offset_hex": "0x848c58",
      "encoded_size": 624,
      "sha256": "28145bf5aff992ff02079db3b64504bc01545e10083e8e99e13b6e65e4430fab",
      "messages": [
        {
          "name": "WsPacket",
          "full_name": "WsPacket",
          "fields": [
            {
              "name": "major_version",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "minor_version",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "device_id",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "module_id",
              "number": 4,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cmd",
              "number": 5,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "type",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "data",
              "number": 7,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 8,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ComResponse",
          "full_name": "ComResponse",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ComResWithInt",
          "full_name": "ComResWithInt",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ComResWithDouble",
          "full_name": "ComResWithDouble",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ComResWithString",
          "full_name": "ComResWithString",
          "fields": [
            {
              "name": "str",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CommonParam",
          "full_name": "CommonParam",
          "fields": [
            {
              "name": "hasAuto",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "id",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode_index",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "continue_value",
              "number": 6,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "WsMajorVersion",
          "full_name": "WsMajorVersion",
          "values": [
            {
              "name": "WS_MAJOR_VERSION_UNKNOWN",
              "number": 0
            },
            {
              "name": "WS_MAJOR_VERSION_NUMBER",
              "number": 2
            }
          ]
        },
        {
          "name": "WsMinorVersion",
          "full_name": "WsMinorVersion",
          "values": [
            {
              "name": "WS_MINOR_VERSION_UNKNOWN",
              "number": 0
            },
            {
              "name": "WS_MINOR_VERSION_NUMBER",
              "number": 3
            }
          ]
        }
      ]
    },
    {
      "name": "ble.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8687632,
      "offset_hex": "0x849010",
      "encoded_size": 2408,
      "sha256": "637680c61f4d4e89aa1c7e0dd431300a174b8906a68b3281b95210d9f8c41494",
      "messages": [
        {
          "name": "ReqGetconfig",
          "full_name": "ReqGetconfig",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ble_psd",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqAp",
          "full_name": "ReqAp",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wifi_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_start",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "country_list",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "country",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ble_psd",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_restart",
              "number": 8,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSta",
          "full_name": "ReqSta",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_start",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ble_psd",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psd",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetblewifi",
          "full_name": "ReqSetblewifi",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ble_psd",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqReset",
          "full_name": "ReqReset",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetwifilist",
          "full_name": "ReqGetwifilist",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetsysteminfo",
          "full_name": "ReqGetsysteminfo",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "client_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCheckFile",
          "full_name": "ReqCheckFile",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "file_path",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "md5",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResCommon",
          "full_name": "ResCommon",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetconfig",
          "full_name": "ResGetconfig",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wifi_mode",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ap_mode",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_start",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ap_country_list",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 8,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psd",
              "number": 9,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ip",
              "number": 10,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ap_country",
              "number": 11,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResAp",
          "full_name": "ResAp",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psd",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSta",
          "full_name": "ResSta",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psd",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ip",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSetblewifi",
          "full_name": "ResSetblewifi",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResReset",
          "full_name": "ResReset",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "WifiInfo",
          "full_name": "WifiInfo",
          "fields": [
            {
              "name": "signal_level",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "security_capability",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResWifilist",
          "full_name": "ResWifilist",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 4,
              "label": "repeated",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wifi_info_list",
              "number": 5,
              "label": "repeated",
              "type": "message",
              "type_name": ".WifiInfo",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetsysteminfo",
          "full_name": "ResGetsysteminfo",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "protocol_version",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "device",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac_address",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dwarf_ota_version",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResReceiveDataError",
          "full_name": "ResReceiveDataError",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResCheckFile",
          "full_name": "ResCheckFile",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ComDwarfMsg",
          "full_name": "ComDwarfMsg",
          "fields": [
            {
              "name": "vocaltype",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".VocalType",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DwarfPing",
          "full_name": "DwarfPing",
          "fields": [
            {
              "name": "vocaltype",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".VocalType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "timestamp",
              "number": 2,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "magic",
              "number": 3,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vocals",
              "number": 4,
              "label": "repeated",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mutes",
              "number": 5,
              "label": "repeated",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "StationModel",
          "full_name": "StationModel",
          "fields": [
            {
              "name": "family",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "revision",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "NifAP",
          "full_name": "NifAP",
          "fields": [
            {
              "name": "ifname",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "country_code",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sec",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psw",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ipv4",
              "number": 7,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ipv6",
              "number": 8,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": "_ipv6",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "NifSTA",
          "full_name": "NifSTA",
          "fields": [
            {
              "name": "ifname",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ssid",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": "_ssid",
              "proto3_optional": true
            },
            {
              "name": "psw",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": "_psw",
              "proto3_optional": true
            },
            {
              "name": "rssi",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_rssi",
              "proto3_optional": true
            },
            {
              "name": "ipv4",
              "number": 5,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": "_ipv4",
              "proto3_optional": true
            },
            {
              "name": "ipv6",
              "number": 6,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": "_ipv6",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DwarfEcho",
          "full_name": "DwarfEcho",
          "fields": [
            {
              "name": "vocaltype",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".VocalType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "timestamp",
              "number": 2,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "magic",
              "number": 3,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ts_ping",
              "number": 4,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac_address",
              "number": 5,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "model",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".StationModel",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sn",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "name",
              "number": 8,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "psw",
              "number": 9,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "fw_version",
              "number": 10,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ws_scheme",
              "number": 11,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "session",
              "number": 12,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ap",
              "number": 13,
              "label": "optional",
              "type": "message",
              "type_name": ".NifAP",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sta",
              "number": 14,
              "label": "optional",
              "type": "message",
              "type_name": ".NifSTA",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "VocalType",
          "full_name": "VocalType",
          "values": [
            {
              "name": "VT_UNKNOWN",
              "number": 0
            },
            {
              "name": "VT_PING",
              "number": 1
            },
            {
              "name": "VT_ECHO",
              "number": 2
            }
          ]
        }
      ]
    },
    {
      "name": "camera.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [
        "base.proto"
      ],
      "offset": 8691552,
      "offset_hex": "0x849f60",
      "encoded_size": 2013,
      "sha256": "e4da8bdeba76cad15366bb46f36832bf5c9845031965957a5e24f8211e04953e",
      "messages": [
        {
          "name": "ReqOpenCamera",
          "full_name": "ReqOpenCamera",
          "fields": [
            {
              "name": "binning",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rtsp_encode_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCloseCamera",
          "full_name": "ReqCloseCamera",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqPhoto",
          "full_name": "ReqPhoto",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqBurstPhoto",
          "full_name": "ReqBurstPhoto",
          "fields": [
            {
              "name": "count",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopBurstPhoto",
          "full_name": "ReqStopBurstPhoto",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartRecord",
          "full_name": "ReqStartRecord",
          "fields": [
            {
              "name": "encode_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopRecord",
          "full_name": "ReqStopRecord",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetExpMode",
          "full_name": "ReqSetExpMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetExpMode",
          "full_name": "ReqGetExpMode",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetExp",
          "full_name": "ReqSetExp",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetExp",
          "full_name": "ReqGetExp",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGainMode",
          "full_name": "ReqSetGainMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetGainMode",
          "full_name": "ReqGetGainMode",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGain",
          "full_name": "ReqSetGain",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetGain",
          "full_name": "ReqGetGain",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetBrightness",
          "full_name": "ReqSetBrightness",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetBrightness",
          "full_name": "ReqGetBrightness",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetContrast",
          "full_name": "ReqSetContrast",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetContrast",
          "full_name": "ReqGetContrast",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetHue",
          "full_name": "ReqSetHue",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetHue",
          "full_name": "ReqGetHue",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetSaturation",
          "full_name": "ReqSetSaturation",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetSaturation",
          "full_name": "ReqGetSaturation",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetSharpness",
          "full_name": "ReqSetSharpness",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetSharpness",
          "full_name": "ReqGetSharpness",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetWBMode",
          "full_name": "ReqSetWBMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetWBMode",
          "full_name": "ReqGetWBMode",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetWBSence",
          "full_name": "ReqSetWBSence",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetWBSence",
          "full_name": "ReqGetWBSence",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetWBCT",
          "full_name": "ReqSetWBCT",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetWBCT",
          "full_name": "ReqGetWBCT",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetIrCut",
          "full_name": "ReqSetIrCut",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetNdFilter",
          "full_name": "ReqSetNdFilter",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetIrcut",
          "full_name": "ReqGetIrcut",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartTimeLapse",
          "full_name": "ReqStartTimeLapse",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopTimeLapse",
          "full_name": "ReqStopTimeLapse",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAllParams",
          "full_name": "ReqSetAllParams",
          "fields": [
            {
              "name": "exp_mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_mode",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ircut_value",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wb_mode",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wb_index_type",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wb_index",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "brightness",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "contrast",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "hue",
              "number": 11,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "saturation",
              "number": 12,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sharpness",
              "number": 13,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "jpg_quality",
              "number": 14,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetAllParams",
          "full_name": "ReqGetAllParams",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetAllParams",
          "full_name": "ResGetAllParams",
          "fields": [
            {
              "name": "all_params",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".CommonParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetFeatureParams",
          "full_name": "ReqSetFeatureParams",
          "fields": [
            {
              "name": "param",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".CommonParam",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetAllFeatureParams",
          "full_name": "ReqGetAllFeatureParams",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetAllFeatureParams",
          "full_name": "ResGetAllFeatureParams",
          "fields": [
            {
              "name": "all_feature_params",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".CommonParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetSystemWorkingState",
          "full_name": "ReqGetSystemWorkingState",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetJpgQuality",
          "full_name": "ReqSetJpgQuality",
          "fields": [
            {
              "name": "quality",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetJpgQuality",
          "full_name": "ReqGetJpgQuality",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqPhotoRaw",
          "full_name": "ReqPhotoRaw",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetRtspBitRateType",
          "full_name": "ReqSetRtspBitRateType",
          "fields": [
            {
              "name": "bitrate_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDisableAllIspProcessing",
          "full_name": "ReqDisableAllIspProcessing",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqEnableAllIspProcessing",
          "full_name": "ReqEnableAllIspProcessing",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "IspModuleState",
          "full_name": "IspModuleState",
          "fields": [
            {
              "name": "module_id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetIspModuleState",
          "full_name": "ReqSetIspModuleState",
          "fields": [
            {
              "name": "module_states",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".IspModuleState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetIspModuleState",
          "full_name": "ReqGetIspModuleState",
          "fields": [
            {
              "name": "module_ids",
              "number": 1,
              "label": "repeated",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSwitchResolution",
          "full_name": "ReqSwitchResolution",
          "fields": [
            {
              "name": "resolution_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSwitchFrameRate",
          "full_name": "ReqSwitchFrameRate",
          "fields": [
            {
              "name": "fps_index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSwitchCropRatio",
          "full_name": "ReqSwitchCropRatio",
          "fields": [
            {
              "name": "crop_ratio",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetPreviewQuality",
          "full_name": "ReqSetPreviewQuality",
          "fields": [
            {
              "name": "level",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "quality",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "device.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [
        "base.proto"
      ],
      "offset": 8696000,
      "offset_hex": "0x84b0c0",
      "encoded_size": 132,
      "sha256": "0ca65b24678d4e62614bdcf300f3ac0aa1167d57df9617d21a14f6dcef95dac3",
      "messages": [
        {
          "name": "ReqLensDefog",
          "full_name": "ReqLensDefog",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqAutoCooling",
          "full_name": "ReqAutoCooling",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqAutoShutdown",
          "full_name": "ReqAutoShutdown",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "factoryTest.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8696268,
      "offset_hex": "0x84b1cc",
      "encoded_size": 2737,
      "sha256": "e2477afceb10256873f6ee3f96e5fe400ea967c59f71714bf8ae58dab36cfc5c",
      "messages": [
        {
          "name": "ReqSetSN",
          "full_name": "ReqSetSN",
          "fields": [
            {
              "name": "sn",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetSN",
          "full_name": "ReqGetSN",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetNTCValue",
          "full_name": "ReqGetNTCValue",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetEMMCValue",
          "full_name": "ReqGetEMMCValue",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAUDSTART",
          "full_name": "ReqSetAUDSTART",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAUDSTOP",
          "full_name": "ReqSetAUDSTOP",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAUDPLAYSTART",
          "full_name": "ReqSetAUDPLAYSTART",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAUDPLAYSTOP",
          "full_name": "ReqSetAUDPLAYSTOP",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetFatigueTestMode",
          "full_name": "ReqSetFatigueTestMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetRgb",
          "full_name": "ReqSetRgb",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetELE",
          "full_name": "ReqGetELE",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetFactoryTestState",
          "full_name": "ReqGetFactoryTestState",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetWiFiStartUpMode",
          "full_name": "ReqSetWiFiStartUpMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetFactoryTestState",
          "full_name": "ResGetFactoryTestState",
          "fields": [
            {
              "name": "sn",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "fatigue_test_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wifi_start_up",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac_address",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FatigueTestIrcutParam",
          "full_name": "FatigueTestIrcutParam",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "interval",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FatigueTestMotorParam",
          "full_name": "FatigueTestMotorParam",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "m_step",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "interval",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FatigueTestLightsParam",
          "full_name": "FatigueTestLightsParam",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "interval",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FatigueTestCameraParam",
          "full_name": "FatigueTestCameraParam",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FatigueTestParam",
          "full_name": "FatigueTestParam",
          "fields": [
            {
              "name": "ircut_param",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestIrcutParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "motor_rotate_param",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestMotorParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "motor_pitch_param",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestMotorParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "motor_af_param",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestMotorParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "light_param",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestLightsParam",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_param",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".FatigueTestCameraParam",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResEMMCInAadOutSpeed",
          "full_name": "ResEMMCInAadOutSpeed",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "readspeed",
              "number": 3,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "writespeed",
              "number": 4,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFocusMotorBacklashTest",
          "full_name": "ReqFocusMotorBacklashTest",
          "fields": [
            {
              "name": "motor_id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_motor_id",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureTeleDark",
          "full_name": "ReqCaptureTeleDark",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureTeleBias",
          "full_name": "ReqCaptureTeleBias",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureTeleFlat",
          "full_name": "ReqCaptureTeleFlat",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureWideDark",
          "full_name": "ReqCaptureWideDark",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureWideBias",
          "full_name": "ReqCaptureWideBias",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureWideFlat",
          "full_name": "ReqCaptureWideFlat",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureGuideFlat",
          "full_name": "ReqCaptureGuideFlat",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCaptureGuideBias",
          "full_name": "ReqCaptureGuideBias",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqResetMotorMcu",
          "full_name": "ReqResetMotorMcu",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResErrorTeststart",
          "full_name": "ResErrorTeststart",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResErrorTestState",
          "full_name": "ResErrorTestState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "angle",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dir",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqTestOpenAllCamera",
          "full_name": "ReqTestOpenAllCamera",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryTestSuccess",
          "full_name": "ReqFactoryTestSuccess",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetRssi",
          "full_name": "ReqGetRssi",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetMCUUART",
          "full_name": "ReqGetMCUUART",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetFIRMWAREVERISON",
          "full_name": "ReqGetFIRMWAREVERISON",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqTestRgbUart",
          "full_name": "ReqTestRgbUart",
          "fields": [
            {
              "name": "count",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqPasswordEncryption",
          "full_name": "ReqPasswordEncryption",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqPasswordEncryptionState",
          "full_name": "ReqPasswordEncryptionState",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqRestPasswordEncryption",
          "full_name": "ReqRestPasswordEncryption",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryTecState",
          "full_name": "ReqFactoryTecState",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryFanState",
          "full_name": "ReqFactoryFanState",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryHeadTapeState",
          "full_name": "ReqFactoryHeadTapeState",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGyroCal",
          "full_name": "ReqSetGyroCal",
          "fields": [
            {
              "name": "enable",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryGyroAttitude",
          "full_name": "ReqFactoryGyroAttitude",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResFactoryGyroAttitude",
          "full_name": "ResFactoryGyroAttitude",
          "fields": [
            {
              "name": "cmd",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pitch",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "yaw",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "roll",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TemperatureItem",
          "full_name": "TemperatureItem",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResAllTemperature",
          "full_name": "ResAllTemperature",
          "fields": [
            {
              "name": "temps",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".TemperatureItem",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryMoveIrcutFloor",
          "full_name": "ReqFactoryMoveIrcutFloor",
          "fields": [
            {
              "name": "floor",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dir",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResFactoryMicRms",
          "full_name": "ResFactoryMicRms",
          "fields": [
            {
              "name": "all_mic_rms",
              "number": 1,
              "label": "repeated",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetVcmRom",
          "full_name": "ReqSetVcmRom",
          "fields": [
            {
              "name": "addr",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResVcmK",
          "full_name": "ResVcmK",
          "fields": [
            {
              "name": "value",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactorySetUsbMode",
          "full_name": "ReqFactorySetUsbMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryDualPeSwitchState",
          "full_name": "ReqFactoryDualPeSwitchState",
          "fields": [
            {
              "name": "motor_id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResFactoryDualPeSwitchState",
          "full_name": "ResFactoryDualPeSwitchState",
          "fields": [
            {
              "name": "motor_id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state1",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state2",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactorySetRollHorizontalDegree",
          "full_name": "ReqFactorySetRollHorizontalDegree",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactoryGetRollHorizontalDegree",
          "full_name": "ReqFactoryGetRollHorizontalDegree",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResFactoryGetRollHorizontalDegree",
          "full_name": "ResFactoryGetRollHorizontalDegree",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "degree",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqFactorySetRollHorizontalPosition",
          "full_name": "ReqFactorySetRollHorizontalPosition",
          "fields": [
            {
              "name": "offset_mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "move_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "focus.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8701692,
      "offset_hex": "0x84c6fc",
      "encoded_size": 747,
      "sha256": "9bc9011851bedbcdd626af8420fa6eb689df01d12fd0c76a07ee4d1c2293d80b",
      "messages": [
        {
          "name": "ReqManualSingleStepFocus",
          "full_name": "ReqManualSingleStepFocus",
          "fields": [
            {
              "name": "direction",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqManualContinuFocus",
          "full_name": "ReqManualContinuFocus",
          "fields": [
            {
              "name": "direction",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopManualContinuFocus",
          "full_name": "ReqStopManualContinuFocus",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqNormalAutoFocus",
          "full_name": "ReqNormalAutoFocus",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "center_x",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "center_y",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqAstroAutoFocus",
          "full_name": "ReqAstroAutoFocus",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopAstroAutoFocus",
          "full_name": "ReqStopAstroAutoFocus",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqManualSingleStepFocusForFactory",
          "full_name": "ReqManualSingleStepFocusForFactory",
          "fields": [
            {
              "name": "direction",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_level",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetUserInfinityPos",
          "full_name": "ReqGetUserInfinityPos",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetUserInfinityPos",
          "full_name": "ReqSetUserInfinityPos",
          "fields": [
            {
              "name": "pos",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResUserInfinityPos",
          "full_name": "ResUserInfinityPos",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pos",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSfrAutoFocusForFactory",
          "full_name": "ReqSfrAutoFocusForFactory",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "fast_spos",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_fast_spos",
              "proto3_optional": true
            },
            {
              "name": "fast_pulse",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_fast_pulse",
              "proto3_optional": true
            },
            {
              "name": "fast_scope",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_fast_scope",
              "proto3_optional": true
            },
            {
              "name": "slow_pulse",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_slow_pulse",
              "proto3_optional": true
            },
            {
              "name": "slow_scope",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_slow_scope",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetVcmCode",
          "full_name": "ReqSetVcmCode",
          "fields": [
            {
              "name": "code_value",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "motor_control.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8703016,
      "offset_hex": "0x84cc28",
      "encoded_size": 1299,
      "sha256": "ee0bfdb429ce6ff6cc55bf20139b5e544e2a7f5722ae33e9f0091f0cf2e4a211",
      "messages": [
        {
          "name": "ReqMotorServiceJoystick",
          "full_name": "ReqMotorServiceJoystick",
          "fields": [
            {
              "name": "vector_angle",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vector_length",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorServiceJoystickFixedAngle",
          "full_name": "ReqMotorServiceJoystickFixedAngle",
          "fields": [
            {
              "name": "vector_angle",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vector_length",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorServiceJoystickStop",
          "full_name": "ReqMotorServiceJoystickStop",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorRun",
          "full_name": "ReqMotorRun",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "direction",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed_ramping",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_level",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorRunInPulse",
          "full_name": "ReqMotorRunInPulse",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "frequency",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "direction",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed_ramping",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pulse",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 7,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorRunTo",
          "full_name": "ReqMotorRunTo",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "end_position",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed_ramping",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_level",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorGetPosition",
          "full_name": "ReqMotorGetPosition",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorStop",
          "full_name": "ReqMotorStop",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorReset",
          "full_name": "ReqMotorReset",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "direction",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorChangeSpeed",
          "full_name": "ReqMotorChangeSpeed",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorChangeDirection",
          "full_name": "ReqMotorChangeDirection",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "direction",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResMotor",
          "full_name": "ResMotor",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResMotorPosition",
          "full_name": "ResMotorPosition",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "position",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorLevelCalibrationMove",
          "full_name": "ReqMotorLevelCalibrationMove",
          "fields": [
            {
              "name": "direction",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".MotorLevelCalibrationDirection",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorLevelCalibrationSave",
          "full_name": "ReqMotorLevelCalibrationSave",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorLevelCalibrationResetDefault",
          "full_name": "ReqMotorLevelCalibrationResetDefault",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDualCameraLinkage",
          "full_name": "ReqDualCameraLinkage",
          "fields": [
            {
              "name": "x",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "y",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorStartDeviceAttitudeNotify",
          "full_name": "ReqMotorStartDeviceAttitudeNotify",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqMotorStopDeviceAttitudeNotify",
          "full_name": "ReqMotorStopDeviceAttitudeNotify",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "MotorLevelCalibrationDirection",
          "full_name": "MotorLevelCalibrationDirection",
          "values": [
            {
              "name": "MOTOR_LEVEL_CALIBRATION_DIRECTION_CW",
              "number": 0
            },
            {
              "name": "MOTOR_LEVEL_CALIBRATION_DIRECTION_CCW",
              "number": 1
            }
          ]
        }
      ]
    },
    {
      "name": "notify.proto",
      "package": "notify",
      "syntax": "proto3",
      "dependencies": [
        "base.proto"
      ],
      "offset": 8705224,
      "offset_hex": "0x84d4c8",
      "encoded_size": 7805,
      "sha256": "95bd313263dbc3eb2d86a93d0a707999bdda704bbe75fbfb39b030207cd0cf86",
      "messages": [
        {
          "name": "PictureMatching",
          "full_name": "notify.PictureMatching",
          "fields": [
            {
              "name": "x",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "y",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "width",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "height",
              "number": 4,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "StorageInfo",
          "full_name": "notify.StorageInfo",
          "fields": [
            {
              "name": "available_size",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_size",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "storage_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "is_valid",
              "number": 4,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "Temperature",
          "full_name": "notify.Temperature",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "temperature",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CmosTemperature",
          "full_name": "notify.CmosTemperature",
          "fields": [
            {
              "name": "temperature",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_temperature",
              "proto3_optional": true
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "RecordTime",
          "full_name": "notify.RecordTime",
          "fields": [
            {
              "name": "record_time",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TimeLapseOutTime",
          "full_name": "notify.TimeLapseOutTime",
          "fields": [
            {
              "name": "interval",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "out_time",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_time",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 4,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "OperationStateNotify",
          "full_name": "notify.OperationStateNotify",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroCalibrationState",
          "full_name": "notify.AstroCalibrationState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.AstroState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "plate_solving_times",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroGotoState",
          "full_name": "notify.AstroGotoState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.AstroState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroTrackingState",
          "full_name": "notify.AstroTrackingState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ProgressCaptureRawDark",
          "full_name": "notify.ProgressCaptureRawDark",
          "fields": [
            {
              "name": "progress",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "remaining_time",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ProgressCaptureRawLiveStacking",
          "full_name": "notify.ProgressCaptureRawLiveStacking",
          "fields": [
            {
              "name": "total_count",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "update_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_count",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stacked_count",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_time",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_shooting_time",
              "proto3_optional": true
            },
            {
              "name": "stacked_time",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_stacked_time",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "Param",
          "full_name": "notify.Param",
          "fields": [
            {
              "name": "param",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".CommonParam",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "BurstProgress",
          "full_name": "notify.BurstProgress",
          "fields": [
            {
              "name": "total_count",
              "number": 1,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "completed_count",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaProgress",
          "full_name": "notify.PanoramaProgress",
          "fields": [
            {
              "name": "total_count",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "completed_count",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "RgbState",
          "full_name": "notify.RgbState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PowerIndState",
          "full_name": "notify.PowerIndState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ChargingState",
          "full_name": "notify.ChargingState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "BatteryInfo",
          "full_name": "notify.BatteryInfo",
          "fields": [
            {
              "name": "percentage",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cycle_count",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_cycle_count",
              "proto3_optional": true
            },
            {
              "name": "soh",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_soh",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "HostSlaveMode",
          "full_name": "notify.HostSlaveMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lock",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "MTPState",
          "full_name": "notify.MTPState",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TrackResult",
          "full_name": "notify.TrackResult",
          "fields": [
            {
              "name": "x",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "y",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "w",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "h",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CPUMode",
          "full_name": "notify.CPUMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroTrackingSpecialState",
          "full_name": "notify.AstroTrackingSpecialState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "index",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PowerOff",
          "full_name": "notify.PowerOff",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AlbumUpdate",
          "full_name": "notify.AlbumUpdate",
          "fields": [
            {
              "name": "media_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SentryState",
          "full_name": "notify.SentryState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.SentryModeState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "object_type",
              "number": 2,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.SentryObjectType",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "OneClickGotoState",
          "full_name": "notify.OneClickGotoState",
          "fields": [
            {
              "name": "astro_auto_focus_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroAutoFocusState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_calibration_state",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroCalibrationState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_goto_state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroGotoState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_tracking_state",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroTrackingState",
              "oneof": "current_state",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "StreamType",
          "full_name": "notify.StreamType",
          "fields": [
            {
              "name": "stream_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cam_id",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "EqSolvingState",
          "full_name": "notify.EqSolvingState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "LongExpPhotoProgress",
          "full_name": "notify.LongExpPhotoProgress",
          "fields": [
            {
              "name": "total_time",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exposured_time",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ShootingScheduleResultAndState",
          "full_name": "notify.ShootingScheduleResultAndState",
          "fields": [
            {
              "name": "schedule_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "result",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ShootingTaskState",
          "full_name": "notify.ShootingTaskState",
          "fields": [
            {
              "name": "schedule_task_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SkySeacherState",
          "full_name": "notify.SkySeacherState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ProgressAiEnhance",
          "full_name": "notify.ProgressAiEnhance",
          "fields": [
            {
              "name": "progress",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_time",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CommonProgress",
          "full_name": "notify.CommonProgress",
          "fields": [
            {
              "name": "current",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "progress_type",
              "number": 3,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.CommonProgress.ProgressType",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": [
            {
              "name": "ProgressType",
              "full_name": "notify.CommonProgress.ProgressType",
              "values": [
                {
                  "name": "PROGRESS_TYPE_INITING",
                  "number": 0
                },
                {
                  "name": "PROGRESS_TYPE_MOSAIC_MOVING",
                  "number": 1
                }
              ]
            }
          ]
        },
        {
          "name": "CalibrationResult",
          "full_name": "notify.CalibrationResult",
          "fields": [
            {
              "name": "azi",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "alt",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FocusPosition",
          "full_name": "notify.FocusPosition",
          "fields": [
            {
              "name": "pos",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "RollLevelCalibrationAngle",
          "full_name": "notify.RollLevelCalibrationAngle",
          "fields": [
            {
              "name": "offset_degree",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SentryAutoHand",
          "full_name": "notify.SentryAutoHand",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaStitchUploadComplete",
          "full_name": "notify.PanoramaStitchUploadComplete",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "user_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaCompressionComplete",
          "full_name": "notify.PanoramaCompressionComplete",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zip_file_path",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zip_file_md5",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zip_file_size",
              "number": 5,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stitch_param",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaCompressionProgress",
          "full_name": "notify.PanoramaCompressionProgress",
          "fields": [
            {
              "name": "panorama_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_files_num",
              "number": 2,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "compressed_files_num",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaUploadCompressionProgress",
          "full_name": "notify.PanoramaUploadCompressionProgress",
          "fields": [
            {
              "name": "user_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_files_num",
              "number": 5,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "compressed_files_num",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 7,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaUploadProgress",
          "full_name": "notify.PanoramaUploadProgress",
          "fields": [
            {
              "name": "user_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_size",
              "number": 5,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "uploaded_size",
              "number": 6,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 7,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaCurrentUploadState",
          "full_name": "notify.PanoramaCurrentUploadState",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "user_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_files_num",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "compressed_files_num",
              "number": 7,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_size",
              "number": 8,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "uploaded_size",
              "number": 9,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "step",
              "number": 10,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "LowTempProtectionMode",
          "full_name": "notify.LowTempProtectionMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "StateSystemResourceOccupation",
          "full_name": "notify.StateSystemResourceOccupation",
          "fields": [
            {
              "name": "task_id",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.StateSystemResourceOccupation.TaskId",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 2,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": [
            {
              "name": "TaskId",
              "full_name": "notify.StateSystemResourceOccupation.TaskId",
              "values": [
                {
                  "name": "IDLE",
                  "number": 0
                },
                {
                  "name": "PANORAMA_UPLOAD",
                  "number": 1
                },
                {
                  "name": "ASTRO_MULTI_STACK",
                  "number": 2
                }
              ]
            }
          ]
        },
        {
          "name": "BodyStatus",
          "full_name": "notify.BodyStatus",
          "fields": [
            {
              "name": "body_status",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.BodyStatus.BodyStatusEnum",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": [
            {
              "name": "BodyStatusEnum",
              "full_name": "notify.BodyStatus.BodyStatusEnum",
              "values": [
                {
                  "name": "UNKNOWN",
                  "number": 0
                },
                {
                  "name": "EQ_MODE",
                  "number": 1
                },
                {
                  "name": "AZI_MODE",
                  "number": 2
                }
              ]
            }
          ]
        },
        {
          "name": "ProgressCaptureMosaic",
          "full_name": "notify.ProgressCaptureMosaic",
          "fields": [
            {
              "name": "total_count",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "update_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_count",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stacked_count",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "horizontal_scale",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "vertical_scale",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rotation",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "fov_id",
              "number": 11,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "fov_total",
              "number": 12,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "Wb",
          "full_name": "notify.Wb",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ct",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "scene",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "GeneralIntParam",
          "full_name": "notify.GeneralIntParam",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "GeneralFloatParam",
          "full_name": "notify.GeneralFloatParam",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "GeneralBoolParams",
          "full_name": "notify.GeneralBoolParams",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SwitchShootingMode",
          "full_name": "notify.SwitchShootingMode",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "source_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dst_mode",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SwitchCropRatioState",
          "full_name": "notify.SwitchCropRatioState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "crop_ratio",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResolutionParam",
          "full_name": "notify.ResolutionParam",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_res_value",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_fps_value",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "supported_fps_list",
              "number": 4,
              "label": "repeated",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "supported_resolution_list",
              "number": 5,
              "label": "repeated",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureRawState",
          "full_name": "notify.CaptureRawState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PhotoState",
          "full_name": "notify.PhotoState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "BurstState",
          "full_name": "notify.BurstState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "RecordState",
          "full_name": "notify.RecordState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TimeLapseState",
          "full_name": "notify.TimeLapseState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureRawDarkState",
          "full_name": "notify.CaptureRawDarkState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaState",
          "full_name": "notify.PanoramaState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroAutoFocusState",
          "full_name": "notify.AstroAutoFocusState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "NormalAutoFocusState",
          "full_name": "notify.NormalAutoFocusState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroAutoFocusFastState",
          "full_name": "notify.AstroAutoFocusFastState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AreaAutoFocusState",
          "full_name": "notify.AreaAutoFocusState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DualCameraLinkageState",
          "full_name": "notify.DualCameraLinkageState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "NormalTrackState",
          "full_name": "notify.NormalTrackState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SwitchResolutionFpsState",
          "full_name": "notify.SwitchResolutionFpsState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureCaliFrameState",
          "full_name": "notify.CaptureCaliFrameState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureCaliFrameProgress",
          "full_name": "notify.CaptureCaliFrameProgress",
          "fields": [
            {
              "name": "progress",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cali_frame_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DeviceAttitude",
          "full_name": "notify.DeviceAttitude",
          "fields": [
            {
              "name": "pitch",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "yaw",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "roll",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SkyTargetFinderState",
          "full_name": "notify.SkyTargetFinderState",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "scene_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoFramingThumbnailUpdateNotify",
          "full_name": "notify.PanoFramingThumbnailUpdateNotify",
          "fields": [
            {
              "name": "webp_data",
              "number": 1,
              "label": "optional",
              "type": "bytes",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoFramingRectUpdateNotify",
          "full_name": "notify.PanoFramingRectUpdateNotify",
          "fields": [
            {
              "name": "norm_x_tl",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_y_tl",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_x_br",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_y_br",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_limit_x_left",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_limit_y_top",
              "number": 6,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_limit_x_right",
              "number": 7,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_limit_y_bottom",
              "number": 8,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rect_hor_fov",
              "number": 9,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "rect_ver_fov",
              "number": 10,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "error_code",
              "number": 11,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoFramingStateNotify",
          "full_name": "notify.PanoFramingStateNotify",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AutoShutdown",
          "full_name": "notify.AutoShutdown",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "LensDefog",
          "full_name": "notify.LensDefog",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AutoCooling",
          "full_name": "notify.AutoCooling",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "OperationState",
          "full_name": "notify.OperationState",
          "values": [
            {
              "name": "OPERATION_STATE_IDLE",
              "number": 0
            },
            {
              "name": "OPERATION_STATE_RUNNING",
              "number": 1
            },
            {
              "name": "OPERATION_STATE_STOPPING",
              "number": 2
            },
            {
              "name": "OPERATION_STATE_STOPPED",
              "number": 3
            }
          ]
        },
        {
          "name": "AstroState",
          "full_name": "notify.AstroState",
          "values": [
            {
              "name": "ASTRO_STATE_IDLE",
              "number": 0
            },
            {
              "name": "ASTRO_STATE_RUNNING",
              "number": 1
            },
            {
              "name": "ASTRO_STATE_STOPPING",
              "number": 2
            },
            {
              "name": "ASTRO_STATE_STOPPED",
              "number": 3
            },
            {
              "name": "ASTRO_STATE_PLATE_SOLVING",
              "number": 4
            }
          ]
        },
        {
          "name": "SentryModeState",
          "full_name": "notify.SentryModeState",
          "values": [
            {
              "name": "SENTRY_MODE_STATE_IDLE",
              "number": 0
            },
            {
              "name": "SENTRY_MODE_STATE_INIT",
              "number": 1
            },
            {
              "name": "SENTRY_MODE_STATE_DETECT",
              "number": 2
            },
            {
              "name": "SENTRY_MODE_STATE_TRACK",
              "number": 3
            },
            {
              "name": "SENTRY_MODE_STATE_TRACK_FINISH",
              "number": 4
            },
            {
              "name": "SENTRY_MODE_STATE_STOPPING",
              "number": 5
            }
          ]
        },
        {
          "name": "SentryObjectType",
          "full_name": "notify.SentryObjectType",
          "values": [
            {
              "name": "SENTRY_OBJECT_TYPE_UNKNOWN",
              "number": 0
            },
            {
              "name": "SENTRY_OBJECT_TYPE_UFO",
              "number": 1
            },
            {
              "name": "SENTRY_OBJECT_TYPE_BIRD",
              "number": 2
            },
            {
              "name": "SENTRY_OBJECT_TYPE_PERSON",
              "number": 3
            },
            {
              "name": "SENTRY_OBJECT_TYPE_ANIMAL",
              "number": 4
            },
            {
              "name": "SENTRY_OBJECT_TYPE_VEHICLE",
              "number": 5
            },
            {
              "name": "SENTRY_OBJECT_TYPE_FLYING",
              "number": 6
            },
            {
              "name": "SENTRY_OBJECT_TYPE_BOAT",
              "number": 7
            }
          ]
        }
      ]
    },
    {
      "name": "panorama.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8717204,
      "offset_hex": "0x850394",
      "encoded_size": 1641,
      "sha256": "54e6b6f5ab6a9b46713c3a72843fe8e33587e4d9d97667d2cd3590379d6e4f1c",
      "messages": [
        {
          "name": "ReqStartPanoramaByGrid",
          "full_name": "ReqStartPanoramaByGrid",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartPanoramaByEulerRange",
          "full_name": "ReqStartPanoramaByEulerRange",
          "fields": [
            {
              "name": "yaw_range",
              "number": 1,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pitch_range",
              "number": 2,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartPanoramaStitchUpload",
          "full_name": "ReqStartPanoramaStitchUpload",
          "fields": [
            {
              "name": "resource_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "user_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "app_platform",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ak",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sk",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "token",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bucket",
              "number": 8,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "bucket_prefix",
              "number": 9,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "from",
              "number": 10,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "env_type",
              "number": 11,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResStartPanoramaStitchUpload",
          "full_name": "ResStartPanoramaStitchUpload",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_panorama_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_user_id",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResStopPanoramaStitchUpload",
          "full_name": "ResStopPanoramaStitchUpload",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_panorama_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "current_user_id",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopPanorama",
          "full_name": "ReqStopPanorama",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopPanoramaStitchUpload",
          "full_name": "ReqStopPanoramaStitchUpload",
          "fields": [
            {
              "name": "user_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetPanoramaCurrentUploadState",
          "full_name": "ReqGetPanoramaCurrentUploadState",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetPanoramaCurrentUploadState",
          "full_name": "ResGetPanoramaCurrentUploadState",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "user_id",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_files_num",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "compressed_files_num",
              "number": 7,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_size",
              "number": 8,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "uploaded_size",
              "number": 9,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "step",
              "number": 10,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetUploadPredict",
          "full_name": "ReqGetUploadPredict",
          "fields": [
            {
              "name": "panorama_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetUploadPredict",
          "full_name": "ResGetUploadPredict",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "file_nums",
              "number": 3,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cloud_data_size",
              "number": 5,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "zip_data_size",
              "number": 6,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "app_zip_data_size",
              "number": 7,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanoramaUploadParam",
          "full_name": "PanoramaUploadParam",
          "fields": [
            {
              "name": "user_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "busi_no",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "panorama_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_files_num",
              "number": 5,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "compressed_files_num",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_size",
              "number": 7,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "uploaded_size",
              "number": 8,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "step",
              "number": 9,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCompressPanorama",
          "full_name": "ReqCompressPanorama",
          "fields": [
            {
              "name": "panorama_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopCompressPanorama",
          "full_name": "ReqStopCompressPanorama",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartPanoramaFraming",
          "full_name": "ReqStartPanoramaFraming",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqResetPanoramaFraming",
          "full_name": "ReqResetPanoramaFraming",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopPanoramaFraming",
          "full_name": "ReqStopPanoramaFraming",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopPanoramaFramingAndStartGrid",
          "full_name": "ReqStopPanoramaFramingAndStartGrid",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqUpdatePanoramaFramingRect",
          "full_name": "ReqUpdatePanoramaFramingRect",
          "fields": [
            {
              "name": "norm_x_tl",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_y_tl",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_x_br",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "norm_y_br",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqNotifyPanoramaFraming",
          "full_name": "ReqNotifyPanoramaFraming",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "param.proto",
      "package": "param",
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8719856,
      "offset_hex": "0x850df0",
      "encoded_size": 609,
      "sha256": "62b269868157850c3c34980c6f88d1001e42057e76dda8abd9220b5987cff77f",
      "messages": [
        {
          "name": "ReqSetExposure",
          "full_name": "param.ReqSetExposure",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGain",
          "full_name": "param.ReqSetGain",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetWb",
          "full_name": "param.ReqSetWb",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGeneralIntParam",
          "full_name": "param.ReqSetGeneralIntParam",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGeneralFloatParam",
          "full_name": "param.ReqSetGeneralFloatParam",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "float",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetGeneralBoolParams",
          "full_name": "param.ReqSetGeneralBoolParams",
          "fields": [
            {
              "name": "param_id",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "value",
              "number": 2,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetAutoParam",
          "full_name": "param.ReqSetAutoParam",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_tech",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "is_auto",
              "number": 3,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSetAutoParam",
          "full_name": "param.ResSetAutoParam",
          "fields": [
            {
              "name": "shooting_mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_tech",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "is_auto",
              "number": 4,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "update_all",
              "number": 5,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "shooting_schedule.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8720884,
      "offset_hex": "0x8511f4",
      "encoded_size": 2854,
      "sha256": "f790e987ceb58446ef84e0469b4c11714519d7dd88b9cb83821da9a4bc66551f",
      "messages": [
        {
          "name": "ShootingTaskMsg",
          "full_name": "ShootingTaskMsg",
          "fields": [
            {
              "name": "schedule_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "params",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 3,
              "label": "optional",
              "type": "enum",
              "type_name": ".ShootingTaskState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "created_time",
              "number": 5,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "updated_time",
              "number": 6,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_task_id",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param_mode",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param_version",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "create_from",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ShootingScheduleMsg",
          "full_name": "ShootingScheduleMsg",
          "fields": [
            {
              "name": "schedule_id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_name",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "device_id",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mac_address",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "start_time",
              "number": 5,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "end_time",
              "number": 6,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "result",
              "number": 7,
              "label": "optional",
              "type": "enum",
              "type_name": ".ShootingScheduleResult",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "created_time",
              "number": 8,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "updated_time",
              "number": 9,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 10,
              "label": "optional",
              "type": "enum",
              "type_name": ".ShootingScheduleState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lock",
              "number": 11,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 12,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_tasks",
              "number": 13,
              "label": "repeated",
              "type": "message",
              "type_name": ".ShootingTaskMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param_mode",
              "number": 14,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param_version",
              "number": 15,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "params",
              "number": 16,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_time",
              "number": 17,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sync_state",
              "number": 18,
              "label": "optional",
              "type": "enum",
              "type_name": ".ShootingScheduleSyncState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSyncShootingSchedule",
          "full_name": "ReqSyncShootingSchedule",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSyncShootingSchedule",
          "full_name": "ResSyncShootingSchedule",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "time_conflict_schedule_ids",
              "number": 2,
              "label": "repeated",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "can_replace",
              "number": 4,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqCancelShootingSchedule",
          "full_name": "ReqCancelShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResCancelShootingSchedule",
          "full_name": "ResCancelShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetAllShootingSchedule",
          "full_name": "ReqGetAllShootingSchedule",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetAllShootingSchedule",
          "full_name": "ResGetAllShootingSchedule",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetShootingScheduleById",
          "full_name": "ReqGetShootingScheduleById",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetShootingScheduleById",
          "full_name": "ResGetShootingScheduleById",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetShootingTaskById",
          "full_name": "ReqGetShootingTaskById",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetShootingTaskById",
          "full_name": "ResGetShootingTaskById",
          "fields": [
            {
              "name": "shooting_task",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingTaskMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqReplaceShootingSchedule",
          "full_name": "ReqReplaceShootingSchedule",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResReplaceShootingSchedule",
          "full_name": "ResReplaceShootingSchedule",
          "fields": [
            {
              "name": "shooting_schedule",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "replaced_shooting_schedule",
              "number": 2,
              "label": "repeated",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqUnlockShootingSchedule",
          "full_name": "ReqUnlockShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResUnlockShootingSchedule",
          "full_name": "ResUnlockShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqLockShootingSchedule",
          "full_name": "ReqLockShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResLockShootingSchedule",
          "full_name": "ResLockShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqDeleteShootingSchedule",
          "full_name": "ReqDeleteShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "password",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResDeleteShootingSchedule",
          "full_name": "ResDeleteShootingSchedule",
          "fields": [
            {
              "name": "id",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "ShootingScheduleState",
          "full_name": "ShootingScheduleState",
          "values": [
            {
              "name": "SHOOTING_SCHEDULE_STATE_INITIALIZED",
              "number": 0
            },
            {
              "name": "SHOOTING_SCHEDULE_STATE_PENDING_SHOOT",
              "number": 1
            },
            {
              "name": "SHOOTING_SCHEDULE_STATE_SHOOTING",
              "number": 2
            },
            {
              "name": "SHOOTING_SCHEDULE_STATE_COMPLETED",
              "number": 3
            },
            {
              "name": "SHOOTING_SCHEDULE_STATE_EXPIRED",
              "number": 4
            }
          ]
        },
        {
          "name": "ShootingScheduleSyncState",
          "full_name": "ShootingScheduleSyncState",
          "values": [
            {
              "name": "SHOOTING_SCHEDULE_SYNC_STATE_PENDING_SYNC",
              "number": 0
            },
            {
              "name": "SHOOTING_SCHEDULE_SYNC_STATE_SYNCED",
              "number": 1
            }
          ]
        },
        {
          "name": "ShootingScheduleResult",
          "full_name": "ShootingScheduleResult",
          "values": [
            {
              "name": "SHOOTING_SCHEDULE_RESULT_PENDING_START",
              "number": 0
            },
            {
              "name": "SHOOTING_SCHEDULE_RESULT_ALL_COMPLETED",
              "number": 1
            },
            {
              "name": "SHOOTING_SCHEDULE_RESULT_PARTIALLY_COMPLETED",
              "number": 2
            },
            {
              "name": "SHOOTING_SCHEDULE_RESULT_ALL_FAILED",
              "number": 3
            }
          ]
        },
        {
          "name": "ShootingTaskState",
          "full_name": "ShootingTaskState",
          "values": [
            {
              "name": "SHOOTING_TASK_STATUS_IDLE",
              "number": 0
            },
            {
              "name": "SHOOTING_TASK_STATUS_SHOOTING",
              "number": 1
            },
            {
              "name": "SHOOTING_TASK_STATUS_SUCCESS",
              "number": 2
            },
            {
              "name": "SHOOTING_TASK_STATUS_FAILED",
              "number": 3
            },
            {
              "name": "SHOOTING_TASK_STATUS_INTERRUPTED",
              "number": 4
            }
          ]
        },
        {
          "name": "ShootingScheduleMode",
          "full_name": "ShootingScheduleMode",
          "values": [
            {
              "name": "SHOOTING_SCHEDULE_MODE_ASTRO_DEEP_SKY",
              "number": 0
            }
          ]
        }
      ]
    },
    {
      "name": "system.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8724788,
      "offset_hex": "0x852134",
      "encoded_size": 421,
      "sha256": "eaaf353bb88901df7cf470b0ab1d4e1af5a96841a2811ff67219b77da1dc15ae",
      "messages": [
        {
          "name": "ReqSetTime",
          "full_name": "ReqSetTime",
          "fields": [
            {
              "name": "timestamp",
              "number": 1,
              "label": "optional",
              "type": "uint64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "timezone_offset",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetTimezone",
          "full_name": "ReqSetTimezone",
          "fields": [
            {
              "name": "timezone",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetMtpMode",
          "full_name": "ReqSetMtpMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetCpuMode",
          "full_name": "ReqSetCpuMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqsetMasterLock",
          "full_name": "ReqsetMasterLock",
          "fields": [
            {
              "name": "lock",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetLowTempProtectionMode",
          "full_name": "ReqSetLowTempProtectionMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSetLocation",
          "full_name": "ReqSetLocation",
          "fields": [
            {
              "name": "latitude",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "longitude",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "altitude",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "country_region",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "province",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "city",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "district",
              "number": 7,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "enable",
              "number": 8,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "task_center.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [
        "notify.proto",
        "panorama.proto",
        "astro.proto"
      ],
      "offset": 8725552,
      "offset_hex": "0x852430",
      "encoded_size": 5190,
      "sha256": "61d7019c14c588b05d98d3a94cc9d5b3424009b26257737f678fb63394e25a6c",
      "messages": [
        {
          "name": "TaskAttr",
          "full_name": "TaskAttr",
          "fields": [
            {
              "name": "exclusive_mask",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "priority",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TaskState",
          "full_name": "TaskState",
          "fields": [
            {
              "name": "base_state",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "astro_extended_state",
              "number": 2,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.AstroState",
              "oneof": "extendedState",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TaskParam",
          "full_name": "TaskParam",
          "fields": [
            {
              "name": "panorama_upload",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".PanoramaUploadParam",
              "oneof": "param",
              "proto3_optional": false
            },
            {
              "name": "make_fits_thumb_task_param",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".MakeFitsThumbTaskParam",
              "oneof": "param",
              "proto3_optional": false
            },
            {
              "name": "repostprocess_task_param",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".RepostprocessTaskParam",
              "oneof": "param",
              "proto3_optional": false
            },
            {
              "name": "capture_cali_frame_task_param",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".CaptureCaliFrameTaskParam",
              "oneof": "param",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResNotifyTaskState",
          "full_name": "ResNotifyTaskState",
          "fields": [
            {
              "name": "task_id",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".TaskId",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "task_attr",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".TaskAttr",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".TaskState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".TaskParam",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartTask",
          "full_name": "ReqStartTask",
          "fields": [
            {
              "name": "task_id",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".TaskId",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "req_make_fits_thumb_param",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqStartMakeFitsThumb",
              "oneof": "param",
              "proto3_optional": false
            },
            {
              "name": "req_repostprocess_param",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".ReqStartRepostprocess",
              "oneof": "param",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopTask",
          "full_name": "ReqStopTask",
          "fields": [
            {
              "name": "task_id",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".TaskId",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResTaskCenter",
          "full_name": "ResTaskCenter",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "task_id",
              "number": 2,
              "label": "optional",
              "type": "enum",
              "type_name": ".TaskId",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ClientParams",
          "full_name": "ClientParams",
          "fields": [
            {
              "name": "encode_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqEnterCamera",
          "full_name": "ReqEnterCamera",
          "fields": [
            {
              "name": "client_param",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".ClientParams",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResEnterCamera",
          "full_name": "ResEnterCamera",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode_id",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSwitchShootingMode",
          "full_name": "ReqSwitchShootingMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSwitchShootingMode",
          "full_name": "ResSwitchShootingMode",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode_id",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqSwitchShootingTech",
          "full_name": "ReqSwitchShootingTech",
          "fields": [
            {
              "name": "tech",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResSwitchShootingTech",
          "full_name": "ResSwitchShootingTech",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_tech_id",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqGetDeviceStateInfo",
          "full_name": "ReqGetDeviceStateInfo",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ExclusiveCameraState",
          "full_name": "ExclusiveCameraState",
          "fields": [
            {
              "name": "capture_raw_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CaptureRawState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "photo_state",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.PhotoState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "burst_state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.BurstState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "record_state",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.RecordState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "timelapse_state",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.TimeLapseState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "capture_cali_frame_state",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CaptureCaliFrameState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "panorama_state",
              "number": 7,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.PanoramaState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "sentry_state",
              "number": 8,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.SentryState",
              "oneof": "current_state",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "TeleCameraStateInfo",
          "full_name": "TeleCameraStateInfo",
          "fields": [
            {
              "name": "exclusive_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ExclusiveCameraState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stream_type",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.StreamType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "h_fov",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "v_fov",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_width",
              "number": 5,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_height",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cmos_temperature",
              "number": 7,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CmosTemperature",
              "oneof": "_cmos_temperature",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "WideCameraStateInfo",
          "full_name": "WideCameraStateInfo",
          "fields": [
            {
              "name": "exclusive_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ExclusiveCameraState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stream_type",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.StreamType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "h_fov",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "v_fov",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_width",
              "number": 5,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "resolution_height",
              "number": 6,
              "label": "optional",
              "type": "uint32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cmos_temperature",
              "number": 7,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CmosTemperature",
              "oneof": "_cmos_temperature",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ExclusiveFocusMotorState",
          "full_name": "ExclusiveFocusMotorState",
          "fields": [
            {
              "name": "astro_auto_focus_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroAutoFocusState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "normal_auto_focus_state",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.NormalAutoFocusState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_auto_focus_fast_state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroAutoFocusFastState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "area_auto_focus_state",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AreaAutoFocusState",
              "oneof": "current_state",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "FocusMotorStateInfo",
          "full_name": "FocusMotorStateInfo",
          "fields": [
            {
              "name": "exclusive_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ExclusiveFocusMotorState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "focus_position",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.FocusPosition",
              "oneof": "_focus_position",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ExclusiveMotionMotorState",
          "full_name": "ExclusiveMotionMotorState",
          "fields": [
            {
              "name": "astro_calibration_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroCalibrationState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_goto_state",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroGotoState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "astro_tracking_state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AstroTrackingState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "normal_track_state",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.NormalTrackState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "one_click_goto_state",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.OneClickGotoState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "eq_state",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.EqSolvingState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "sentry_state",
              "number": 7,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.SentryState",
              "oneof": "current_state",
              "proto3_optional": false
            },
            {
              "name": "sky_target_finder_state",
              "number": 8,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.SkyTargetFinderState",
              "oneof": "current_state",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "MotionMotorStateInfo",
          "full_name": "MotionMotorStateInfo",
          "fields": [
            {
              "name": "exclusive_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ExclusiveMotionMotorState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "sentry_auto_hand",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.SentryAutoHand",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "roll_level_calibration_angle",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.RollLevelCalibrationAngle",
              "oneof": "_roll_level_calibration_angle",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DeviceStateInfo",
          "full_name": "DeviceStateInfo",
          "fields": [
            {
              "name": "rgb_state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.RgbState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "power_ind_state",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.PowerIndState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "charging_state",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.ChargingState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "storage_info",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.StorageInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mtp_state",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.MTPState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cpu_mode",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CPUMode",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "temperature",
              "number": 7,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.Temperature",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "body_status",
              "number": 8,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.BodyStatus",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "battery_info",
              "number": 9,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.BatteryInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "calibration_result",
              "number": 10,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CalibrationResult",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "picture_matching",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.PictureMatching",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_shutdown",
              "number": 12,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AutoShutdown",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lens_defog",
              "number": 13,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.LensDefog",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_cooling",
              "number": 14,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.AutoCooling",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ConnectionStateInfo",
          "full_name": "ConnectionStateInfo",
          "fields": [
            {
              "name": "host_slave_mode",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.HostSlaveMode",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ShootingModeAndTech",
          "full_name": "ShootingModeAndTech",
          "fields": [
            {
              "name": "shooting_mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "parent_shooting_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_techs",
              "number": 3,
              "label": "repeated",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResGetDeviceStateInfo",
          "full_name": "ResGetDeviceStateInfo",
          "fields": [
            {
              "name": "shooting_mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "tele_camera_state_info",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".TeleCameraStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wide_camera_state_info",
              "number": 3,
              "label": "optional",
              "type": "message",
              "type_name": ".WideCameraStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "focus_motor_state_info",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".FocusMotorStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "motion_motor_state_info",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".MotionMotorStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "device_state_info",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".DeviceStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "code",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "connection_state_info",
              "number": 8,
              "label": "optional",
              "type": "message",
              "type_name": ".ConnectionStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode_and_techs",
              "number": 9,
              "label": "repeated",
              "type": "message",
              "type_name": ".ShootingModeAndTech",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "wide_focus_motor_state_info",
              "number": 10,
              "label": "optional",
              "type": "message",
              "type_name": ".FocusMotorStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "guide_focus_motor_state_info",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".FocusMotorStateInfo",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "TaskId",
          "full_name": "TaskId",
          "values": [
            {
              "name": "TASK_ID_IDLE",
              "number": 0
            },
            {
              "name": "TASK_ID_PANORAMA_UPLOAD",
              "number": 1
            },
            {
              "name": "TASK_ID_ASTRO_MULTI_STACK_THUMBNAIL_GENERATION",
              "number": 2
            },
            {
              "name": "TASK_ID_ASTRO_MULTI_STACK",
              "number": 3
            },
            {
              "name": "TASK_ID_CAPTURE_CALI_FRAME",
              "number": 4
            }
          ]
        },
        {
          "name": "ExclusiveTaskType",
          "full_name": "ExclusiveTaskType",
          "values": [
            {
              "name": "EXCLUSIVE_TYPE_NONE",
              "number": 0
            },
            {
              "name": "EXCLUSIVE_TYPE_CAMERA",
              "number": 1
            },
            {
              "name": "EXCLUSIVE_TYPE_MOTOR",
              "number": 2
            },
            {
              "name": "EXCLUSIVE_TYPE_FOCUS_MOTOR",
              "number": 4
            },
            {
              "name": "EXCLUSIVE_TYPE_SYSTEM_IO",
              "number": 8
            },
            {
              "name": "EXCLUSIVE_TYPE_SYSTEM_WIFI",
              "number": 16
            }
          ]
        }
      ]
    },
    {
      "name": "track.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [],
      "offset": 8732268,
      "offset_hex": "0x853e6c",
      "encoded_size": 304,
      "sha256": "8fee4fb5cc7783d32cd02678651567949c9fa027d380c2fbaf266453881ca46d",
      "messages": [
        {
          "name": "ReqStartTrack",
          "full_name": "ReqStartTrack",
          "fields": [
            {
              "name": "x",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "y",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "w",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "h",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cam_id",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopTrack",
          "full_name": "ReqStopTrack",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqPauseTrack",
          "full_name": "ReqPauseTrack",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqContinueTrack",
          "full_name": "ReqContinueTrack",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartSentryMode",
          "full_name": "ReqStartSentryMode",
          "fields": [
            {
              "name": "type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStopSentryMode",
          "full_name": "ReqStopSentryMode",
          "fields": [],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqUFOAutoHandMode",
          "full_name": "ReqUFOAutoHandMode",
          "fields": [
            {
              "name": "mode",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ReqStartTrackClick",
          "full_name": "ReqStartTrackClick",
          "fields": [
            {
              "name": "x",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "y",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "cam_id",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": []
    },
    {
      "name": "voice_assistant.proto",
      "package": null,
      "syntax": "proto3",
      "dependencies": [
        "base.proto",
        "astro.proto",
        "notify.proto",
        "panorama.proto",
        "task_center.proto",
        "shooting_schedule.proto"
      ],
      "offset": 8732936,
      "offset_hex": "0x854108",
      "encoded_size": 5599,
      "sha256": "39213efb39ee3d42bac8280e6dcdd8b92f3d1bd81aeef80bbdf1bddc512d00e3",
      "messages": [
        {
          "name": "ReqVoiceCommand",
          "full_name": "ReqVoiceCommand",
          "fields": [
            {
              "name": "command_type",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".VoiceCommandType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "photo_params",
              "number": 10,
              "label": "optional",
              "type": "message",
              "type_name": ".VoicePhotoParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "record_params",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceRecordParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "timelapse_params",
              "number": 12,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceTimelapseParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "burst_params",
              "number": 13,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceBurstParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "astro_params",
              "number": 14,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceAstroParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "sentry_params",
              "number": 15,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceSentryParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "move_params",
              "number": 16,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceMoveParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "goto_params",
              "number": 17,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceGotoParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "calibration_params",
              "number": 18,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceCalibrationParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "focus_params",
              "number": 19,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceFocusParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "track_params",
              "number": 20,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceTrackParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "schedule_params",
              "number": 21,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceScheduleParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "cancel_schedule_params",
              "number": 22,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceCancelScheduleParams",
              "oneof": "params",
              "proto3_optional": false
            },
            {
              "name": "panorama_params",
              "number": 23,
              "label": "optional",
              "type": "message",
              "type_name": ".VoicePanoramaParams",
              "oneof": "params",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoicePhotoParams",
          "full_name": "VoicePhotoParams",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_gain_mode",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_gain_mode",
              "proto3_optional": true
            },
            {
              "name": "exp_index",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_index",
              "proto3_optional": true
            },
            {
              "name": "gain_index",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_gain_index",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceRecordParams",
          "full_name": "VoiceRecordParams",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "duration_seconds",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "deep_sky",
              "number": 10,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "exp_gain_mode",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_gain_mode",
              "proto3_optional": true
            },
            {
              "name": "exp_index",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_index",
              "proto3_optional": true
            },
            {
              "name": "gain_index",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_gain_index",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceTimelapseParams",
          "full_name": "VoiceTimelapseParams",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "interval_seconds",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "duration_seconds",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "deep_sky",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 12,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "exp_gain_mode",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_gain_mode",
              "proto3_optional": true
            },
            {
              "name": "exp_index",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_index",
              "proto3_optional": true
            },
            {
              "name": "gain_index",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_gain_index",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceBurstParams",
          "full_name": "VoiceBurstParams",
          "fields": [
            {
              "name": "camera_type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "count",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "interval_seconds",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "deep_sky",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 12,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "exp_gain_mode",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_gain_mode",
              "proto3_optional": true
            },
            {
              "name": "exp_index",
              "number": 9,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_index",
              "proto3_optional": true
            },
            {
              "name": "gain_index",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_gain_index",
              "proto3_optional": true
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "DeepSkyTarget",
          "full_name": "DeepSkyTarget",
          "fields": [
            {
              "name": "ra",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "dec",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 3,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 4,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 5,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "ir_index",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "SolarSystemTarget",
          "full_name": "SolarSystemTarget",
          "fields": [
            {
              "name": "index",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lon",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 3,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "target_name",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceAstroParams",
          "full_name": "VoiceAstroParams",
          "fields": [
            {
              "name": "deep_sky",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "count",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_gain_mode",
              "number": 15,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": "_exp_gain_mode",
              "proto3_optional": true
            },
            {
              "name": "exp_index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "auto_goto",
              "number": 7,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "force_start",
              "number": 8,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "is_mosaic",
              "number": 9,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_h_scale",
              "number": 10,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_v_scale",
              "number": 11,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_rotation",
              "number": 12,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "startrail_total_time",
              "number": 13,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "startrail_video_mode",
              "number": 14,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceSentryParams",
          "full_name": "VoiceSentryParams",
          "fields": [
            {
              "name": "type",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceMoveParams",
          "full_name": "VoiceMoveParams",
          "fields": [
            {
              "name": "azimuth_angle",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "altitude_angle",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "speed",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceGotoParams",
          "full_name": "VoiceGotoParams",
          "fields": [
            {
              "name": "deep_sky",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "shooting_mode",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceTrackParams",
          "full_name": "VoiceTrackParams",
          "fields": [
            {
              "name": "deep_sky",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": "target",
              "proto3_optional": false
            },
            {
              "name": "solar_system",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".SolarSystemTarget",
              "oneof": "target",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceCalibrationParams",
          "full_name": "VoiceCalibrationParams",
          "fields": [
            {
              "name": "lon",
              "number": 1,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "lat",
              "number": 2,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceFocusParams",
          "full_name": "VoiceFocusParams",
          "fields": [
            {
              "name": "is_infinity",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "camera_type",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoicePanoramaParams",
          "full_name": "VoicePanoramaParams",
          "fields": [
            {
              "name": "rows",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "columns",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResVoiceCommand",
          "full_name": "ResVoiceCommand",
          "fields": [
            {
              "name": "code",
              "number": 1,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "message",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "command_type",
              "number": 3,
              "label": "optional",
              "type": "enum",
              "type_name": ".VoiceCommandType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "status_result",
              "number": 10,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceStatusResult",
              "oneof": "result",
              "proto3_optional": false
            },
            {
              "name": "operation_result",
              "number": 11,
              "label": "optional",
              "type": "message",
              "type_name": ".VoiceOperationResult",
              "oneof": "result",
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "AstroShootingProgress",
          "full_name": "AstroShootingProgress",
          "fields": [
            {
              "name": "target_name",
              "number": 1,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "captured_count",
              "number": 2,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "total_count",
              "number": 3,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "stacked_count",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "progress_percentage",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exposure",
              "number": 6,
              "label": "optional",
              "type": "double",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain",
              "number": 8,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "remaining_time",
              "number": 7,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "CaptureDarkStatusResult",
          "full_name": "CaptureDarkStatusResult",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.CaptureCaliFrameState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "MegaStackStatusResult",
          "full_name": "MegaStackStatusResult",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".TaskState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "param",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".RepostprocessTaskParam",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "PanStatusResult",
          "full_name": "PanStatusResult",
          "fields": [
            {
              "name": "state",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".notify.PanoramaCurrentUploadState",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceStatusResult",
          "full_name": "VoiceStatusResult",
          "fields": [
            {
              "name": "device_state_info",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".ResGetDeviceStateInfo",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "astro_progress",
              "number": 2,
              "label": "optional",
              "type": "message",
              "type_name": ".AstroShootingProgress",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "shooting_schedules",
              "number": 3,
              "label": "repeated",
              "type": "message",
              "type_name": ".ShootingScheduleMsg",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "capture_dark_result",
              "number": 4,
              "label": "optional",
              "type": "message",
              "type_name": ".CaptureDarkStatusResult",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mega_stack_result",
              "number": 5,
              "label": "optional",
              "type": "message",
              "type_name": ".MegaStackStatusResult",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "pan_result",
              "number": 6,
              "label": "optional",
              "type": "message",
              "type_name": ".PanStatusResult",
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceOperationResult",
          "full_name": "VoiceOperationResult",
          "fields": [
            {
              "name": "success",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "detail_message",
              "number": 2,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "ResNotifyVoiceAssistant",
          "full_name": "ResNotifyVoiceAssistant",
          "fields": [
            {
              "name": "command_type",
              "number": 1,
              "label": "optional",
              "type": "enum",
              "type_name": ".VoiceCommandType",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "state",
              "number": 2,
              "label": "optional",
              "type": "enum",
              "type_name": ".notify.OperationState",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "message",
              "number": 4,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceScheduleTask",
          "full_name": "VoiceScheduleTask",
          "fields": [
            {
              "name": "target",
              "number": 1,
              "label": "optional",
              "type": "message",
              "type_name": ".DeepSkyTarget",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "start_time",
              "number": 2,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "end_time",
              "number": 3,
              "label": "optional",
              "type": "int64",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "count",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_index",
              "number": 5,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_index",
              "number": 6,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "filter_index",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "exp_name",
              "number": 8,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "gain_name",
              "number": 9,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "filter_name",
              "number": 10,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "is_mosaic",
              "number": 12,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_h_scale",
              "number": 13,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_v_scale",
              "number": 14,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "mosaic_rotation",
              "number": 15,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceScheduleParams",
          "full_name": "VoiceScheduleParams",
          "fields": [
            {
              "name": "tasks",
              "number": 1,
              "label": "repeated",
              "type": "message",
              "type_name": ".VoiceScheduleTask",
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "focus_mode",
              "number": 4,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_id",
              "number": 5,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_name",
              "number": 6,
              "label": "optional",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "device_id",
              "number": 7,
              "label": "optional",
              "type": "int32",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        },
        {
          "name": "VoiceCancelScheduleParams",
          "full_name": "VoiceCancelScheduleParams",
          "fields": [
            {
              "name": "cancel_all",
              "number": 1,
              "label": "optional",
              "type": "bool",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            },
            {
              "name": "schedule_ids",
              "number": 2,
              "label": "repeated",
              "type": "string",
              "type_name": null,
              "oneof": null,
              "proto3_optional": false
            }
          ],
          "nested_messages": [],
          "nested_enums": []
        }
      ],
      "enums": [
        {
          "name": "VoiceCommandType",
          "full_name": "VoiceCommandType",
          "values": [
            {
              "name": "VOICE_CMD_UNKNOWN",
              "number": 0
            },
            {
              "name": "VOICE_CMD_GET_STATUS",
              "number": 1
            },
            {
              "name": "VOICE_CMD_TAKE_PHOTO",
              "number": 2
            },
            {
              "name": "VOICE_CMD_START_RECORD",
              "number": 3
            },
            {
              "name": "VOICE_CMD_STOP_RECORD",
              "number": 4
            },
            {
              "name": "VOICE_CMD_START_TIMELAPSE",
              "number": 5
            },
            {
              "name": "VOICE_CMD_STOP_TIMELAPSE",
              "number": 6
            },
            {
              "name": "VOICE_CMD_START_BURST",
              "number": 7
            },
            {
              "name": "VOICE_CMD_STOP_BURST",
              "number": 8
            },
            {
              "name": "VOICE_CMD_START_ASTRO",
              "number": 9
            },
            {
              "name": "VOICE_CMD_STOP_ASTRO",
              "number": 10
            },
            {
              "name": "VOICE_CMD_START_SENTRY",
              "number": 11
            },
            {
              "name": "VOICE_CMD_STOP_SENTRY",
              "number": 12
            },
            {
              "name": "VOICE_CMD_MOVE",
              "number": 13
            },
            {
              "name": "VOICE_CMD_GOTO_TARGET",
              "number": 14
            },
            {
              "name": "VOICE_CMD_STOP_GOTO",
              "number": 15
            },
            {
              "name": "VOICE_CMD_CALIBRATION",
              "number": 16
            },
            {
              "name": "VOICE_CMD_STOP_CALIBRATION",
              "number": 17
            },
            {
              "name": "VOICE_CMD_AUTO_FOCUS",
              "number": 18
            },
            {
              "name": "VOICE_CMD_STOP_FOCUS",
              "number": 19
            },
            {
              "name": "VOICE_CMD_STOP_ALL",
              "number": 20
            },
            {
              "name": "VOICE_CMD_START_TRACK",
              "number": 21
            },
            {
              "name": "VOICE_CMD_STOP_TRACK",
              "number": 22
            },
            {
              "name": "VOICE_CMD_ADD_SCHEDULE",
              "number": 23
            },
            {
              "name": "VOICE_CMD_CANCEL_SCHEDULE",
              "number": 24
            },
            {
              "name": "VOICE_CMD_END_CONVERSATION",
              "number": 25
            },
            {
              "name": "VOICE_CMD_START_PANORAMA",
              "number": 26
            },
            {
              "name": "VOICE_CMD_STOP_PANORAMA",
              "number": 27
            }
          ]
        }
      ]
    }
  ]
}
