# Tapo C200
Root password: `$1$U4SF7BzK$7efuCoMxdZ2czN5DhU/av1`, seems strong, I tried a bunch of wordlists but nothing.
EDIT: cracked, https://github.com/nervous-inhuman/tplink-tapo-c200-re/issues/1#issuecomment-742609974
User `root`, password `slprealtek`
Typing `slp` over and over while U-Boot is running will interrupt the boot.
---
Sometimes sends udp packets: cam:20002 phone:44028
## :8800 streaming
8800 TCP unencrypted, video streams from app happen here
Media decryption PoC code:
https://git.depau.eu/Depau/tapo-decrypt-poc
```bash
./gradlew fatJar
java -jar ./build/libs/tapo-decrypt-poc-fat-1.0-SNAPSHOT.jar \
--key-exchange "KEY_EXCHANGE_VALUE" --password "CLOUD_PASSWORD" > decrypted < encrypted
```
### Handshake
App sends an empty POST to ~~`:443/stream`~~ (EDIT: nevermind, it's 8800), cam replies with 401 Unauthorized but with a `WWW-Authenticate` header
```http
POST /stream HTTP/1.1
Content-Type: multipart/mixed; boundary=--client-stream-boundary--
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; ONEPLUS A3003 Build/PQ3A.190801.002)
Host: 192.168.3.237:8800
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 0
Response:
HTTP/1.0 401 Unauthorized
Server: Streamd
Date: Sun, 29 Nov 2020 23:52:27 UTC
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 0
WWW-Authenticate: Digest realm="TP-Link IP-Camera",algorithm="MD5",qop="auth",nonce="--------",opaque="-----------"
Connection: close
```
### Live streaming
Uses an HTTP-like protocol over port :8800, using the valued retrieved from the `WWW-Authenticate` on port :443 as the `Authorization` header
```http
POST /stream HTTP/1.1
Host: 192.168.3.237:8800
Content-Type: multipart/mixed; boundary=--client-stream-boundary--
Authorization: Digest username="admin",realm="TP-Link IP-Camera",uri="/stream",algorithm=MD5,nonce="----------------------------",nc=00000001,cnonce="a9h5b7i3j2y8c0a6",qop=auth,response="6a36396259101d6ce4e4a0e2dec9db57",opaque="64943214654649846565646421"
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; ONEPLUS A3003 Build/PQ3A.190801.002)
Connection: keep-alive
Content-Length: -1
HTTP/1.0 200 OK
Server: Streamd
Date: Wed, 30 Sep 2020 03:20:57 UTC
Content-Type: multipart/mixed;boundary=--device-stream-boundary--
Pragma: no-cache
Cache-Control: no-cache
Key-Exchange: cipher="AES_128_CBC" username="admin" padding="PKCS7_16" algorithm="MD5" nonce="---------------------------------------------"
Connection: keep-alive
----client-stream-boundary--
Content-Type: application/json
Content-Length: 120
{"type":"request","seq":1,"params":{"preview":{"channels":[0],"resolutions":["HD"],"audio":["default"]},"method":"get"}}
----device-stream-boundary--
Content-Type: application/json
Content-Length: 74
X-If-Encrypt: 0
{"type":"response", "seq":1, "params":{"error_code":0, "session_id":"10"}}
----device-stream-boundary--
Content-Type: application/json
Content-Length: 106
X-Session-Id: 10
X-If-Encrypt: 0
{"type":"notification", "params":{"event_type":"channel_motor_status", "channels":[0], "status":["idle"]}}
----device-stream-boundary--
Content-Type: application/json
Content-Length: 104
X-Session-Id: 10
X-If-Encrypt: 0
{"type":"notification", "params":{"event_type":"channel_lens_mask_info", "channels":0, "enabled":"off"}}
----device-stream-boundary--
Content-Type: video/mp2t
Content-Length: 384
X-Session-Id: 10
X-If-Encrypt: 1
[likely video data]
----device-stream-boundary--
Content-Type: video/mp2t
Content-Length: 384
X-Session-Id: 10
X-If-Encrypt: 1
[likely encrypted video]
```
### "Call" feature
```http
POST /stream HTTP/1.1
Host: 192.168.3.237:8800
Content-Type: multipart/mixed; boundary=--client-stream-boundary--
Authorization: Digest username="admin",realm="TP-Link IP-Camera",uri="/stream",algorithm=MD5,nonce="---------------------",nc=00000001,cnonce="a9h5b7i3j2y8c0a6",qop=auth,response="882d8fbad3de8912f9fd116abade612a",opaque="64943214654649846565646421"
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; ONEPLUS A3003 Build/PQ3A.190801.002)
Connection: keep-alive
Content-Length: -1
----client-stream-boundary--
Content-Type: application/json
Content-Length: 74
{"type":"request","seq":1,"params":{"talk":{"mode":"aec"},"method":"get"}}
----client-stream-boundary--
X-If-Encrypt: 1
X-Session-Id: 8
Content-Type: audio/mp2t
Content-Length: 1328
```
### Recording playback
Recorded video info is retrieved over :443:
Retrieves user ID for use in the `id` field later
```json
{
"method": "multipleRequest",
"params": {
"requests": [
{
"method": "getUserID",
"params": {
"system": {
"get_user_id": "null"
}
}
}
]
}
}
```
```json
{
"error_code": 0,
"result": {
"responses": [
{
"error_code": 0,
"method": "getUserID",
"result": {
"user_id": 15
}
}
]
}
}
```
Then it searches the playback memory, id is the user id:
```json
{
"method": "multipleRequest",
"params": {
"requests": [
{
"method": "searchVideoOfDay",
"params": {
"playback": {
"search_video_utility": {
"channel": 0,
"date": "20201130",
"end_index": 99,
"id": 15,
"start_index": 0
}
}
}
}
]
}
}
```
```json
{
"error_code": 0,
"result": {
"responses": [
{
"error_code": 0,
"method": "searchVideoOfDay",
"result": {
"playback": {
"search_video_results": [
{
"search_video_results_1": {
"endTime": 1606693987,
"startTime": 1606693925,
"vedio_type": "2"
}
},
{
"search_video_results_2": {
"endTime": 1606694021,
"startTime": 1606694004,
"vedio_type": "1"
}
}
]
}
}
}
]
}
}
```
Then the video is streamed over :8800
```http
POST /stream HTTP/1.1
Host: 192.168.3.237:8800
Content-Type: multipart/mixed; boundary=--client-stream-boundary--
Authorization: Digest username="admin",realm="TP-Link IP-Camera",uri="/stream",algorithm=MD5,nonce="----",nc=00000001,cnonce="a9h5b7i3j2y8c0a6",qop=auth,response="------",opaque="64943214654649846565646421"
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; ONEPLUS A3003 Build/PQ3A.190801.002)
Connection: keep-alive
Content-Length: -1
HTTP/1.0 200 OK
Server: Streamd
Date: Sun, 29 Nov 2020 23:54:59 UTC
Content-Type: multipart/mixed;boundary=--device-stream-boundary--
Pragma: no-cache
Cache-Control: no-cache
Key-Exchange: cipher="AES_128_CBC" username="admin" padding="PKCS7_16" algorithm="MD5" nonce="--------"
Connection: keep-alive
----client-stream-boundary--
X-Data-Window-Size: 50
Content-Type: application/json
Content-Length: 155
{"type":"request","seq":11,"params":{"playback":{"client_id":15,"channels":[0],"scale":"1/1","start_time":"1606694004","event_type":[1,2]},"method":"get"}}
----device-stream-boundary--
Content-Type: application/json
Content-Length: 74
X-If-Encrypt: 0
{"type":"response", "seq":11, "params":{"error_code":0, "session_id":"1"}}
----device-stream-boundary--
Content-Type: video/mp2t
Content-Length: 6032
X-Session-Id: 1
X-If-Encrypt: 1
X-Data-Sequence: 1
[data]
```
## Method mapping
As found in root filesystem:
```json
{
"getSdCardStatus": {"method":"get"},
"formatSdCard": {"method":"do"},
"getSdCardFormatStatus": {"method":"do"},
"getTimezone": {"method":"get"},
"setTimezone": {"method":"set"},
"getDeviceInfo": {"method":"get"},
"getDeviceAlias": {"method":"get"},
"setDeviceAlias": {"method":"set"},
"getLedStatus": {"method":"get"},
"setLedStatus": {"method":"set"},
"getClockStatus": {"method":"get"},
"getConnectionType": {"method":"do"},
"getUserID": {"method":"do"},
"getDeviceIpAddress": {"method":"get"},
"getReboot": {"method":"get"},
"setReboot": {"method":"set"},
"rebootDevice": {"method":"do"},
"reset": {"method":"do"},
"getLastAlarmInfo": {"method":"get"},
"getAlertConfig": {"method":"get"},
"setAlertConfig": {"method":"set"},
"getAlertPlan": {"method":"get"},
"setAlertPlan": {"method":"set"},
"getCloudConfig": {"method":"get"},
"unbindCloud": {"method":"do"},
"bindToCloud": {"method":"do"},
"getBindStatus": {"method":"get"},
"logout": {"method":"do"},
"checkFirmwareVersionByCloud": {"method":"do"},
"getFirmwareUpdateStatus": {"method":"get"},
"startFirmwareUpgrade": {"method":"do"},
"getDetectionConfig": {"method":"get"},
"setDetectionConfig": {"method":"set"},
"getDetectionRegion": {"method":"get"},
"addDetectionRegion": {"method":"do"},
"changeAdminPassword": {"method":"do"},
"getThirdAccount": {"method":"get"},
"changeThirdAccount": {"method":"do"},
"verifyThirdAccount": {"method":"do"},
"getP2PSharePassword": {"method":"do"},
"getAESEncryptKey": {"method":"do"},
"motorMove": {"method":"do"},
"addMotorPostion": {"method":"do"},
"motorMoveToPreset": {"method":"do"},
"relativeMove": {"method":"do"},
"singalMove": {"method":"do"},
"stopMove": {"method":"do"},
"manualCalibrate": {"method":"do"},
"cruiseMove": {"method":"do"},
"cruiseStop": {"method":"do"},
"getPresetConfig": {"method":"get"},
"deletePreset": {"method":"do"},
"getMediaEncrypt": {"method":"get"},
"setMediaEncrypt": {"method":"set"},
"getVideoQualities": {"method":"get"},
"getServerPort": {"method":"get"},
"getScaleList": {"method":"get"},
"searchVideoOfDay": {"method":"do"},
"searchDateWithVideo": {"method":"do"},
"getLensMaskConfig": {"method":"get"},
"setLensMaskConfig": {"method":"set"},
"getLightFrequencyInfo": {"method":"get"},
"setLightFrequencyInfo": {"method":"set"},
"getDayNightModeConfig": {"method":"get"},
"setDayNightModeConfig": {"method":"set"},
"getOsd": {"method":"get"},
"setOsd": {"method":"set"},
"getRecordPlan": {"method":"get"},
"setRecordPlan": {"method":"set"},
"getCircularRecordingConfig": {"method":"get"},
"setCircularRecordingConfig": {"method":"set"},
"getRotationStatus": {"method":"get"},
"setRotationStatus": {"method":"set"},
"getAudioConfig": {"method":"get"},
"setMicrophoneVolume": {"method":"set"},
"setSpeakerVolume": {"method":"set"},
"getAppComponentList": {"method":"get"},
"getDiagnoseMode": {"method":"get"},
"setDiagnoseMode": {"method":"set"},
"checkDiagnoseStatus": {"method":"do"},
"getLdc": {"method":"get"},
"setLdc": {"method":"set"},
"getCoverConfig": {"method":"get"},
"setCoverConfig": {"method":"set"},
"getCoverRegion": {"method":"get"},
"addCoverRegion": {"method":"do"},
"getTargetTrackConfig": {"method":"get"},
"setTargetTrackConfig": {"method":"set"},
"getFirmwareAFResult": {"method":"do"},
"getBCDConfig": {"method":"get"},
"setBCDConfig": {"method":"set"},
"getMsgPushConfig": {"method":"get"},
"setMsgPushConfig": {"method":"set"},
"getMsgPushPlan": {"method":"get"},
"setMsgPushPlan": {"method":"set"},
"NULL":"NULL"
}
```
### All command types
Format:
```json
["module", "section", "data class or collection type"]
```
```json
[
["DEVICE_INFO", "BASIC_INFO", "BasicInfo.class"],
["DEVICE_INFO", "INFO", "DetailInfo.class"],
["SYSTEM", "SYS", "SystemInfo.class"],
["SYSTEM", "BASIC", "Timezone.class"],
["SYSTEM", "USER_ID", "VodUserId.class"],
["ON_BOARDING", "SCAN", "WifiList.class"],
["ON_BOARDING", "CONNECT", "ConnectResult.class"],
["ON_BOARDING", "GET_CONNECT_STATUS", "ConnectStatus.class"],
["LED", "CONFIG", "LedStatus.class"],
["OSD", "OSD_LABEL_INFO", "<List<? extends Map<String, ? extends OsdElement>>>"],
["OSD", "OSD_DATE", "OsdElement.class"],
["OSD", "OSD_WEEK", "OsdElement.class"],
["OSD", "OSD_FONT", "OsdFont.class"],
["HARD_DISK_MANAGE", "HARD_DISK_LOOP", "HardDiskLoop.class"],
["HARD_DISK_MANAGE", "HARD_DISK_INFO", "List<? extends Map<String, ? extends HardDiskInfo>>"],
["WLAN", "WLAN_DEFAULT_AP", "DefaultAp.class"],
["MSG_ALARM", "MSG_ALARM_INFO", "AlarmInfo.class"],
["MSG_ALARM_PLAN", "MSG_ALARM_PLAN", "AlarmPlanInfo.class"],
["MSG_PUSH", "MSG_PUSH_INFO", "MsgPushInfo.class"],
["MSG_PUSH_PLAN", "MSG_PUSH_PLAN", "MsgPushPlanInfo.class"],
["CERT", "CERT_MEDIA_ENCRYPT", "MediaEncrypt.class"],
["CERT", "CERT_SERVER_PORT", "StreamService.class"],
["CLOUD_STATUS", "CLOUD_BIND", "BindStatus.class"],
["CLOUD_STATUS", "CLOUD_UNBIND", "BindStatus.class"],
["LENS_MASK", "LENS_MASK_INFO", "LensMaskInfo.class"],
["CLOUD_CONFIG", "UPGRADE_STATUS", "FirmwareUpdateStatus.class"],
["PLAYBACK", "PLAYBACK_MONTHLY", "List<? extends Map<String, ? extends YearlyPlaybackItem>>"],
["PLAYBACK", "PLAYBACK_DAILY", "List<? extends Map<String, ? extends DailyPlaybackItem>>"],
["IMAGE", "COMMON", "Light.class"],
["IMAGE", "IMAGE_SWITCH", "ImageFlip.class"],
["TIMING_REBOOT", "REBOOT", "RebootInfo.class"],
["NETWORK", "WAN", "Wan.class"],
["RECORD_PLAN", "CHN1_CHANNEL", "RecordPlanInfo.class"],
["CLOUD_CONFIG", "NEW_FIRMWARE", "NewFirmware.class"],
["MOTION_DETECTION", "MOTION_DET", "MotionDetectConfig.class"],
["MOTION_DETECTION", "REGION_INFO", "List<? extends Map<String, ? extends MotionDetectRegion>>"],
["MOTOR", "MOVE", "CloudTerraceMoveInfo.class"],
["PRESET", "SET_PRESET", "CloudTerracePoint.class"],
["PRESET", "GOTO_PRESET", "CloudTerraceResetInfo.class"],
["USER_MANAGEMENT", "THIRD_ACCOUNT", "AccountInfo.class"],
["VIDEO", "VIDEO_MAIN", "VideoQuality.class"],
["VIDEO", "VIDEO_MINOR", "VideoQuality.class"],
["VIDEO", "SET_RESOLUTION", "Resolution.class"],
["VIDEO_CAPABILITY", "VIDEO_MAIN", "VideoCapability.class"],
["VIDEO_CAPABILITY", "VIDEO_MINOR", "VideoCapability.class"],
["MOTOR", "MANUAL_CALI", "String.class"],
["PRESET", "PRESET", "MarkedPositionListInfo.class"],
["CLOUD_STATUS", "CLIENT_INFO", "FirmwareUpdateInfo.class"],
["AUDIO_CONFIG", "MICROPHONE", "MicroPhoneInfo.class"],
["AUDIO_CONFIG", "SPEAKER", "SpeakerInfo.class"],
["AUDIO_CONFIG", "RECORD_AUDIO", "RecordAudioInfo.class"],
["SYSTEM", "CLOCK_STATUS", "ClockStatus.class"],
["CLOUD_CONFIG", "UPGRADE_INFO", "LatestFirmwareInfo.class"],
["SYSTEM", "LAST_ALARM_INFO", "LastAlarmInfo.class"],
["MOTOR", "CRUISE_STOP", "String.class"],
["APP_COMPONENT", "APP_COMPONENT_LIST", "CameraComponent.class"],
["TAMPER_DETECTION", "TAMPER_DET", "TamperDetectConfig.class"],
["INTRUSION_DETECTION", "DETECTION", "DetectionInfo.class"],
["INTRUSION_DETECTION", "ARMING_SCHEDULE", "ArmScheduleInfo.class"],
["INTRUSION_DETECTION", "REGION_INFO", "List<? extends Map<String, ? extends IntrusionDetectionRegion>>"],
["LINE_CROSSING_DETECTION", "DETECTION", "DetectionInfo.class"],
["LINE_CROSSING_DETECTION", "ARMING_SCHEDULE", "ArmScheduleInfo.class"]
["LINE_CROSSING_DETECTION", "REGION_INFO", "List<? extends Map<String, ? extends LineCrossingDetectionRegion>>"]
]
```
### Modules
```json
{
"DATA": "data",
"ON_BOARDING": "onboarding",
"SYSTEM": "system",
"DEVICE_INFO": "device_info",
"LED": "led",
"OSD": "OSD",
"USER_MANAGEMENT": "user_management",
"HARD_DISK_MANAGE": "harddisk_manage",
"VIDEO": "video",
"VIDEO_CAPABILITY": "video_capability",
"WLAN": "wlan",
"NETWORK": "network",
"MSG_ALARM": "msg_alarm",
"MSG_ALARM_PLAN": "msg_alarm_plan",
"CERT": "cet",
"CLOUD_STATUS": "cloud_status",
"CLOUD_CONFIG": "cloud_config",
"PLAYBACK": "playback",
"LENS_MASK": "lens_mask",
"TIMING_REBOOT": "timing_reboot",
"IMAGE": "image",
"RECORD_PLAN": "record_plan",
"MOTION_DETECTION": "motion_detection",
"MOTOR": "motor",
"PRESET": "preset",
"AUDIO_CONFIG": "audio_config",
"LANGUAGE": "language",
"APP_COMPONENT": "app_component",
"EMPTY": "null",
"MSG_PUSH": "msg_push",
"MSG_PUSH_PLAN": "msg_push_plan",
"TAMPER_DETECTION": "tamper_detection",
"INTRUSION_DETECTION": "intrusion_detection",
"LINE_CROSSING_DETECTION": "linecrossing_detection"
}
```
### Sections
```json
{
"NAME": "name",
"TABLE": "table",
"SCAN": "scan",
"BASIC_INFO": "basic_info",
"INFO": "info",
"CONNECT": "connect",
"GET_CONNECT_STATUS": "get_connect_status",
"SYS": "sys",
"CLOCK_STATUS": "clock_status",
"BASIC": "basic",
"NTP": "ntp",
"OSD_INFO": "osd_info",
"CONFIG": "config",
"CHANGE_PASSWORD": "change_password",
"CHANGE_ADMIN_PASSWORD": "change_admin_password",
"OSD_LABEL_INFO": "label_info",
"OSD_LABEL_INFO_FIRST": "label_info_1",
"OSD_FONT": "font",
"OSD_DATE": "date",
"OSD_WEEK": "week",
"HARD_DISK_LOOP": "harddisk",
"HARD_DISK_INFO": "hd_info",
"HARD_DISK_FORMAT": "format_hd",
"HARD_DISK_FORMAT_STATUS": "get_format_status",
"VIDEO_MAIN": "main",
"VIDEO_MINOR": "minor",
"SET_RESOLUTION": "set_resolution",
"WLAN_DEFAULT_AP": "default_ap",
"GET_NETWORK_INFO": "get_connection_type",
"MSG_ALARM_INFO": "chn1_msg_alarm_info",
"MSG_ALARM_PLAN": "chn1_msg_alarm_plan",
"CERT_MEDIA_ENCRYPT": "media_encrypt",
"CERT_SERVER_PORT": "vhttpd",
"CLOUD_BIND": "bind",
"CLOUD_UNBIND": "unbind",
"CLOUD_DEVICE_STATUS": "device_status",
"LENS_MASK_INFO": "lens_mask_info",
"PLAYBACK_DATE_FILTER": "search_year_utility",
"PLAYBACK_TIME_FILTER": "search_video_utility",
"PLAYBACK_MONTHLY": "search_results",
"PLAYBACK_DAILY": "search_video_results",
"USER_ID": "get_user_id",
"REBOOT": "reboot",
"RESET": "reset",
"SOFT_RESET": "soft_reset",
"COMMON": "common",
"CHN1_CHANNEL": "chn1_channel",
"ALERT_INFO": "chn1_msg_alarm_info",
"UPGRADE_INFO": "upgrade_info",
"NEW_FIRMWARE": "new_firmware",
"MOTION_DET": "motion_det",
"MOTION_DETECTION_ADD_REGION": "add_md_regions",
"REGION_INFO": "region_info",
"MOVE": "move",
"MOVE_STEP": "movestep",
"CRUISE": "cruise",
"CRUISE_STOP": "cruise_stop",
"STOP": "stop",
"PRESET": "preset",
"SET_PRESET": "set_preset",
"GOTO_PRESET": "goto_preset",
"REMOVE_PRESET": "remove_preset",
"THIRD_ACCOUNT": "third_account",
"CHANGE_THIRD_ACCOUNT": "change_third_account",
"VERIFY_THIRD_ACCOUNT": "verify_third_account",
"IMAGE_SWITCH": "switch",
"MANUAL_CALI": "manual_cali",
"FIRMWARE_DOWNLOAD": "fw_download",
"FIRMWARE_NOTIFY": "check_fw_version",
"CLIENT_INFO": "client_info",
"SPEAKER": "speaker",
"MICROPHONE": "microphone",
"UPGRADE_STATUS": "upgrade_status",
"WAN": "wan",
"LAST_ALARM_INFO": "last_alarm_info",
"APP_COMPONENT_LIST": "app_component_list",
"SWITCH": "switch",
"CHECK_DIAGNOSE_STATUS": "check_diagnose_status",
"GET_P2P_SHARE_PWD": "get_p2p_sharepwd",
"GET_AES_KEY": "get_aes_key",
"EMPTY": "null",
"MSG_PUSH_INFO": "chn1_msg_push_info",
"MSG_PUSH_PLAN": "chn1_msg_push_plan",
"RECORD_AUDIO": "record_audio",
"TAMPER_DET": "tamper_det",
"DETECTION": "detection",
"ARMING_SCHEDULE": "arming_schedule",
"ADD_REGIONS": "add_regions"
}
```
### Methods
```json
{
"PASS_THROUGH": "passthrough",
"MULTIPLE_REQUEST": "multipleRequest",
"SCAN_WIFI_LIST": "scanApList",
"CHANGE_PASSWORD": "changePassword",
"GET_SD_CARD_STATUS": "getSdCardStatus",
"FORMAT_SD_CARD": "formatSdCard",
"GET_SD_CARD_FORMAT_STATUS": "getSdCardFormatStatus",
"GET_TIMEZONE": "getTimezone",
"SET_TIMEZONE": "setTimezone",
"GET_DEVICE_INFO": "getDeviceInfo",
"GET_DEVICE_ALIAS": "getDeviceAlias",
"SET_DEVICE_ALIAS": "setDeviceAlias",
"GET_CONNECTION_TYPE": "getConnectionType",
"GET_DEVICE_IP_ADDRESS": "getDeviceIpAddress",
"GET_REBOOT": "getReboot",
"SET_REBOOT": "setReboot",
"REBOOT_DEVICE": "rebootDevice",
"RESET": "reset",
"SOFT_RESET": "softReset",
"GET_LED_STATUS": "getLedStatus",
"SET_LED_STATUS": "setLedStatus",
"GET_CLOCK_STATUS": "getClockStatus",
"GET_USER_ID": "getUserID",
"GET_SCALE_LIST": "getScaleList",
"SEARCH_VIDEO_OF_DAY": "searchVideoOfDay",
"SEARCH_DATE_WITH_VIDEO": "searchDateWithVideo",
"GET_LAST_ALARM_INFO": "getLastAlarmInfo",
"GET_DETECTION_CONFIG": "getDetectionConfig",
"SET_DETECTION_CONFIG": "setDetectionConfig",
"GET_DETECTION_REGION": "getDetectionRegion",
"ADD_DETECTION_REGION": "addDetectionRegion",
"GET_ALERT_CONFIG": "getAlertConfig",
"SET_ALERT_CONFIG": "setAlertConfig",
"GET_ALERT_PLAN": "getAlertPlan",
"SET_ALERT_PLAN": "setAlertPlan",
"GET_MSG_PUSH_CONFIG": "getMsgPushConfig",
"SET_MSG_PUSH_CONFIG": "setMsgPushConfig",
"GET_MSG_PUSH_PLAN": "getMsgPushPlan",
"SET_MSG_PUSH_PLAN": "setMsgPushPlan",
"GET_CLOUD_CONFIG": "getCloudConfig",
"CHECK_FIRMWARE_VERSION_BY_CLOUD": "checkFirmwareVersionByCloud",
"GET_FIRMWARE_UPDATE_STATUS": "getFirmwareUpdateStatus",
"START_FIRMWARE_UPGRADE": "startFirmwareUpgrade",
"UNBIND_CLOUD": "unbindCloud",
"GET_BIND_STATUS": "getBindStatus",
"GET_THIRD_ACCOUNT": "getThirdAccount",
"CHANGE_THIRD_ACCOUNT": "changeThirdAccount",
"VERIFY_THIRD_ACCOUNT": "verifyThirdAccount",
"LOGIN": "login",
"LOGOUT": "logout",
"BIND_TO_CLOUD": "bindToCloud",
"CHANGE_ADMIN_PASSWORD": "changeAdminPassword",
"SET_MEDIA_ENCRYPT": "setMediaEncrypt",
"SET_LANGUAGE": "setLanguage",
"SCAN_AP_LIST": "scanApList",
"CONNECT_AP": "connectAp",
"GET_CONNECT_STATUS": "getConnectStatus",
"MOTOR_MOVE": "motorMove",
"ADD_MOTOR_POSITION": "addMotorPostion",
"MOTOR_MOVE_TO_PRESET": "motorMoveToPreset",
"RELATIVE_MOVE": "relativeMove",
"SIGNAL_MOVE": "singalMove",
"STOP_MOVE": "stopMove",
"MANUAL_CALIBRATE": "manualCalibrate",
"CRUISE_MOVE": "cruiseMove",
"CRUISE_STOP": "cruiseStop",
"GET_PRESET_CONFIG": "getPresetConfig",
"DELETE_PRESET": "deletePreset",
"GET_MEDIA_ENCRYPT": "getMediaEncrypt",
"GET_VIDEO_QUALITIES": "getVideoQualities",
"GET_SERVER_PORT": "getServerPort",
"SET_RESOLUTION": "setResolution",
"GET_VIDEO_CAPABILITY": "getVideoCapability",
"GET_LENS_MASK_CONFIG": "getLensMaskConfig",
"SET_LENS_MASK_CONFIG": "setLensMaskConfig",
"GET_LIGHT_FREQUENCY_INFO": "getLightFrequencyInfo",
"SET_LIGHT_FREQUENCY_INFO": "setLightFrequencyInfo",
"GET_DAY_NIGHT_MODE_CONFIG": "getDayNightModeConfig",
"SET_DAY_NIGHT_MODE_CONFIG": "setDayNightModeConfig",
"GET_OSD": "getOsd",
"SET_OSD": "setOsd",
"GET_RECORD_PLAN": "getRecordPlan",
"SET_RECORD_PLAN": "setRecordPlan",
"GET_CIRCULAR_RECORDING_CONFIG": "getCircularRecordingConfig",
"SET_CIRCULAR_RECORDING_CONFIG": "setCircularRecordingConfig",
"GET_ROTATION_STATUS": "getRotationStatus",
"SET_ROTATION_STATUS": "setRotationStatus",
"GET_AUDIO_CONFIG": "getAudioConfig",
"SET_RECORD_AUDIO": "setRecordAudio",
"SET_MICROPHONE_VOLUME": "setMicrophoneVolume",
"SET_SPEAKER_VOLUME": "setSpeakerVolume",
"GET_APP_COMPONENT_LIST": "getAppComponentList",
"GET_LDC": "getLdc",
"SET_LDC": "setLdc",
"CHECK_DIAGNOSE_STATUS": "checkDiagnoseStatus",
"GET_DIAGNOSE_MODE": "getDiagnoseMode",
"SET_DIAGNOSE_MODE": "setDiagnoseMode",
"GET_P2P_SHARE_PWD": "getP2PSharePassword",
"GET_AES_ENCRYPT_KEY": "getAESEncryptKey",
"GET_TAMPER_DETECTION_CONFIG": "getTamperDetectionConfig",
"SET_TAMPER_DETECTION_CONFIG": "setTamperDetectionConfig",
"GET_INTRUSION_DETECTION_CONFIG": "getIntrusionDetectionConfig",
"SET_INTRUSION_DETECTION_CONFIG": "setIntrusionDetectionConfig",
"SET_INTRUSION_DETECTION_SCHEDULE": "setIntrusionDetectionSchedule",
"GET_INTRUSION_DETECTION_REGION": "getIntrusionDetectionRegion",
"ADD_INTRUSION_DETECTION_REGION": "addIntrusionDetectionRegion",
"GET_LINE_CROSSING_DETECTION_CONFIG": "getLinecrossingDetectionConfig",
"SET_LINE_CROSSING_DETECTION_CONFIG": "setLinecrossingDetectionConfig",
"SET_LINE_CROSSING_DETECTION_SCHEDULE": "setLinecrossingDetectionSchedule",
"GET_LINE_CROSSING_DETECTION_REGION": "getLinecrossingDetectionRegion",
"ADD_LINE_CROSSING_DETECTION_REGION": "addLinecrossingDetectionRegion"
}
```
### All request generators
Java code which still needs to be REd, all fields from the model POJOs need to be extracted
```java
public class RequestGenerator {
/* renamed from: a */
private final SimpleDateFormat f21204a = new SimpleDateFormat("yyyyMMdd", Locale.US);
/* renamed from: a */
public Request<Account> mo37397a(Account account) {
if (!account.getHashed()) {
account = Model.passwordDigest(account);
}
return new Request<>(Constants.LOGIN, account);
}
/* renamed from: a */
private Request<MultipleRequest> m26435a(Request<Wrapper> request) {
return m26441b(new Request<>(request.getMethod(), new Wrappers(Collections.singletonList(request.getParams()))));
}
/* renamed from: b */
private Request<MultipleRequest> m26441b(Request<Wrappers> request) {
return mo37424a(Collections.singletonList(request));
}
/* renamed from: a */
public Request<MultipleRequest> mo37424a(List<Request<Wrappers>> list) {
return new Request<>(Constants.MULTIPLE_REQUEST, new MultipleRequest(list));
}
/* renamed from: a */
public Request<MultipleRequest> mo37422a(String str, String str2) {
return m26435a(new Request<>(Constants.CHANGE_ADMIN_PASSWORD, new Wrapper(Module.USER_MANAGEMENT, Section.CHANGE_ADMIN_PASSWORD, new AccountInfo(new Account("admin", C4901g.m26588a(str), false), str2))));
}
/* renamed from: a */
public Request<Wrapper> mo37394a() {
return new Request<>(Constants.SCAN_WIFI_LIST, new Wrapper(Module.ON_BOARDING, Section.SCAN, Collections.emptyMap()));
}
/* renamed from: b */
public Request<MultipleRequest> mo37430b() {
return m26435a(new Request<>(Constants.GET_DEVICE_INFO, new Wrapper(Module.DEVICE_INFO, Section.NAME, Arrays.asList(Section.BASIC_INFO.getValue(), Section.INFO.getValue()))));
}
/* renamed from: a */
public Request<Wrapper<Wifi>> mo37420a(Wifi wifi) {
return new Request<>(Constants.CONNECT_AP, new Wrapper(Module.ON_BOARDING, Section.CONNECT, wifi));
}
/* renamed from: c */
public Request<Wrapper> mo37439c() {
return new Request<>(Constants.GET_CONNECT_STATUS, new Wrapper(Module.ON_BOARDING, Section.GET_CONNECT_STATUS, Collections.emptyMap()));
}
/* renamed from: d */
public Request<MultipleRequest> mo37443d() {
List asList = Arrays.asList(Section.OSD_DATE.getValue(), Section.OSD_WEEK.getValue(), Section.OSD_FONT.getValue());
List singletonList = Collections.singletonList(Section.OSD_LABEL_INFO.getValue());
Wrapper wrapper = new Wrapper(Module.OSD, Section.NAME, asList);
Wrapper wrapper2 = new Wrapper(Module.OSD, Section.TABLE, singletonList);
return m26441b(new Request<>(Constants.GET_OSD, new Wrappers(Arrays.asList(wrapper, wrapper2))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37428a(boolean z, String str) {
String str2 = z ? "on" : "off";
OsdElement osdElement = new OsdElement("0", "0", null, str2);
OsdElement osdElement2 = new OsdElement("0", "0", null, "off");
OsdElement osdElement3 = new OsdElement("0", "500", str, str2);
OsdFont osdFont = new OsdFont();
Wrapper wrapper = new Wrapper(Module.OSD, Section.OSD_DATE, osdElement);
Wrapper wrapper2 = new Wrapper(Module.OSD, Section.OSD_WEEK, osdElement2);
Wrapper wrapper3 = new Wrapper(Module.OSD, Section.OSD_LABEL_INFO_FIRST, osdElement3);
return m26441b(new Request<>(Constants.SET_OSD, new Wrappers(Arrays.asList(wrapper, wrapper2, new Wrapper(Module.OSD, Section.OSD_FONT, osdFont), wrapper3))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37404a(CameraComponent cameraComponent) {
ArrayList arrayList = new ArrayList();
if (cameraComponent.hasComponent(ComponentType.SD_CARD)) {
Wrapper wrapper = new Wrapper(Module.HARD_DISK_MANAGE, Section.NAME, Collections.singletonList(Section.HARD_DISK_LOOP.getValue()));
Wrapper wrapper2 = new Wrapper(Module.HARD_DISK_MANAGE, Section.TABLE, Collections.singletonList(Section.HARD_DISK_INFO.getValue()));
arrayList.add(wrapper);
arrayList.add(wrapper2);
}
if (cameraComponent.hasComponent(ComponentType.ALERT)) {
arrayList.add(new Wrapper(Module.MSG_ALARM, Section.NAME, Collections.singletonList(Section.MSG_ALARM_INFO.getValue())));
}
if (cameraComponent.hasComponent(ComponentType.LED)) {
arrayList.add(new Wrapper(Module.LED, Section.NAME, Collections.singletonList(Section.CONFIG.getValue())));
}
if (cameraComponent.hasComponent(ComponentType.RECORD)) {
arrayList.add(new Wrapper(Module.RECORD_PLAN, Section.NAME, Collections.singletonList(Section.CHN1_CHANNEL.getValue())));
}
if (cameraComponent.hasComponent(ComponentType.TIME_ZONE)) {
arrayList.add(new Wrapper(Module.SYSTEM, Section.NAME, Collections.singletonList(Section.BASIC.getValue())));
}
if (cameraComponent.hasComponent(ComponentType.ACCOUNT)) {
arrayList.add(new Wrapper(Module.USER_MANAGEMENT, Section.NAME, Collections.singletonList(Section.THIRD_ACCOUNT.getValue())));
}
if (cameraComponent.isSupportMsgPush()) {
arrayList.add(new Wrapper(Module.MSG_PUSH, Section.NAME, Collections.singletonList(Section.MSG_PUSH_INFO.getValue())));
}
if (cameraComponent.hasComponent(ComponentType.SYSTEM)) {
Wrapper wrapper3 = new Wrapper(Module.WLAN, Section.NAME, Collections.singletonList(Section.WLAN_DEFAULT_AP.getValue()));
Wrapper wrapper4 = new Wrapper(Module.CERT, Section.NAME, Collections.singletonList(Section.CERT_MEDIA_ENCRYPT.getValue()));
Wrapper wrapper5 = new Wrapper(Module.IMAGE, Section.NAME, Collections.singletonList(Section.IMAGE_SWITCH.getValue()));
Wrapper wrapper6 = new Wrapper(Module.TIMING_REBOOT, Section.NAME, Collections.singletonList(Section.REBOOT.getValue()));
Wrapper wrapper7 = new Wrapper(Module.DEVICE_INFO, Section.NAME, Arrays.asList(Section.BASIC_INFO.getValue(), Section.INFO.getValue()));
Wrapper wrapper8 = new Wrapper(Module.NETWORK, Section.NAME, Collections.singletonList(Section.WAN.getValue()));
arrayList.add(wrapper3);
arrayList.add(wrapper4);
arrayList.add(wrapper5);
arrayList.add(wrapper6);
arrayList.add(wrapper7);
arrayList.add(wrapper8);
}
if (cameraComponent.hasComponent(ComponentType.VIDEO) && cameraComponent.getComponent(ComponentType.VIDEO) >= 2) {
arrayList.add(new Wrapper(Module.VIDEO, Section.NAME, Collections.singletonList(Section.VIDEO_MAIN.getValue())));
arrayList.add(new Wrapper(Module.VIDEO_CAPABILITY, Section.NAME, Collections.singletonList(Section.VIDEO_MAIN.getValue())));
}
return m26441b(new Request<>(Constants.GET_LED_STATUS, new Wrappers(arrayList)));
}
/* renamed from: e */
public Request<MultipleRequest> mo37447e() {
Wrapper wrapper = new Wrapper(Module.HARD_DISK_MANAGE, Section.TABLE, Collections.singletonList(Section.HARD_DISK_INFO.getValue()));
return m26441b(new Request<>(Constants.GET_SD_CARD_STATUS, new Wrappers(Arrays.asList(wrapper))));
}
/* renamed from: f */
public Request<MultipleRequest> mo37450f() {
ArrayList arrayList = new ArrayList();
Wrapper wrapper = new Wrapper(Module.HARD_DISK_MANAGE, Section.NAME, Collections.singletonList(Section.HARD_DISK_LOOP.getValue()));
Wrapper wrapper2 = new Wrapper(Module.HARD_DISK_MANAGE, Section.TABLE, Collections.singletonList(Section.HARD_DISK_INFO.getValue()));
arrayList.add(wrapper);
arrayList.add(wrapper2);
return m26441b(new Request<>(Constants.GET_SD_CARD_STATUS, new Wrappers(arrayList)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37399a(Account account, String str, String str2, String str3, RecordPlanInfo recordPlanInfo) {
return mo37424a(Arrays.asList(new Request(Constants.CHANGE_ADMIN_PASSWORD, m26437a(new Wrapper(Module.USER_MANAGEMENT, Section.CHANGE_ADMIN_PASSWORD, new AccountInfo(new Account("admin", C4901g.m26588a(str), false), account.copy(account.getUsername(), account.getPassword(), false).getPassword())))), new Request(Constants.SET_OSD, m26437a(new Wrapper(Module.CERT, Section.CERT_MEDIA_ENCRYPT, new MediaEncrypt("on")))), new Request(Constants.SET_TIMEZONE, m26437a(new Wrapper(Module.SYSTEM, Section.BASIC, new Timezone(str2, str3)))), new Request(Constants.SET_RECORD_PLAN, m26437a(new Wrapper(Module.RECORD_PLAN, Section.CHN1_CHANNEL, recordPlanInfo)))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37398a(Account account, String str, String str2, RecordPlanInfo recordPlanInfo) {
Account copy = account.copy(account.getUsername(), account.getPassword(), false);
return mo37424a(Arrays.asList(new Request(Constants.BIND_TO_CLOUD, new Wrappers(Collections.singletonList(new Wrapper(Module.CLOUD_CONFIG, Section.CLOUD_BIND, copy)))), new Request(Constants.CHANGE_ADMIN_PASSWORD, m26437a(new Wrapper(Module.USER_MANAGEMENT, Section.CHANGE_ADMIN_PASSWORD, new AccountInfo(new Account("admin", "admin", false), copy.getPassword())))), new Request(Constants.SET_OSD, m26437a(new Wrapper(Module.CERT, Section.CERT_MEDIA_ENCRYPT, new MediaEncrypt("on")))), new Request(Constants.SET_TIMEZONE, m26437a(new Wrapper(Module.SYSTEM, Section.BASIC, new Timezone(str, str2)))), new Request(Constants.SET_RECORD_PLAN, m26437a(new Wrapper(Module.RECORD_PLAN, Section.CHN1_CHANNEL, recordPlanInfo)))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37409a(LensMaskInfo lensMaskInfo) {
return mo37424a(Collections.singletonList(new Request(Constants.SET_LENS_MASK_CONFIG, m26437a(new Wrapper(Module.LENS_MASK, Section.LENS_MASK_INFO, lensMaskInfo)))));
}
/* renamed from: b */
public Request<MultipleRequest> mo37433b(LensMaskInfo lensMaskInfo) {
return mo37424a(Arrays.asList(new Request(Constants.SET_LENS_MASK_CONFIG, m26437a(new Wrapper(Module.LENS_MASK, Section.LENS_MASK_INFO, lensMaskInfo))), new Request(Constants.SET_LED_STATUS, m26437a(new Wrapper(Module.LED, Section.CONFIG, new LedStatus(lensMaskInfo.getEnabled().equals("on") ? "off" : "on"))))));
}
/* renamed from: g */
public Request<MultipleRequest> mo37452g() {
return m26435a(new Request<>(Constants.GET_LENS_MASK_CONFIG, new Wrapper(Module.LENS_MASK, Section.NAME, Collections.singletonList(Section.LENS_MASK_INFO.getValue()))));
}
/* renamed from: h */
public Request<MultipleRequest> mo37453h() {
return m26435a(new Request<>(Constants.GET_USER_ID, new Wrapper(Module.SYSTEM, Section.USER_ID, Section.EMPTY.getValue())));
}
/* renamed from: a */
public Request<MultipleRequest> mo37423a(Date date, Date date2) {
return m26435a(new Request<>(Constants.SEARCH_DATE_WITH_VIDEO, new Wrapper(Module.PLAYBACK, Section.PLAYBACK_DATE_FILTER, new YearlyPlaybackFilter(this.f21204a.format(date), this.f21204a.format(date2)))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37396a(int i, Date date, int i2, int i3) {
return m26435a(new Request<>(Constants.SEARCH_VIDEO_OF_DAY, new Wrapper(Module.PLAYBACK, Section.PLAYBACK_TIME_FILTER, new DailyPlaybackFilter(i, this.f21204a.format(date), i2, i3))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37421a(String str) {
return m26435a(new Request<>(Constants.SET_LED_STATUS, new Wrapper(Module.LED, Section.CONFIG, new LedStatus(str))));
}
/* renamed from: b */
public Request<MultipleRequest> mo37434b(String str) {
SystemInfo systemInfo = new SystemInfo();
systemInfo.setAlias(str);
return m26435a(new Request<>(Constants.SET_DEVICE_ALIAS, new Wrapper(Module.SYSTEM, Section.SYS, systemInfo)));
}
/* renamed from: b */
public Request<MultipleRequest> mo37435b(String str, String str2) {
return m26435a(new Request<>(Constants.SET_TIMEZONE, new Wrapper(Module.SYSTEM, Section.BASIC, new Timezone(str, str2))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37415a(RebootInfo rebootInfo) {
return m26435a(new Request<>(Constants.SET_REBOOT, new Wrapper(Module.TIMING_REBOOT, Section.REBOOT, rebootInfo)));
}
/* renamed from: i */
public Request<MultipleRequest> mo37454i() {
return m26435a(new Request<>(Constants.REBOOT_DEVICE, new Wrapper(Module.SYSTEM, Section.REBOOT, Collections.emptyMap())));
}
/* renamed from: j */
public Request<MultipleRequest> mo37455j() {
return m26435a(new Request<>(Constants.RESET, new Wrapper(Module.SYSTEM, Section.RESET, Collections.emptyMap())));
}
/* renamed from: k */
public Request<MultipleRequest> mo37456k() {
return m26435a(new Request<>(Constants.SOFT_RESET, new Wrapper(Module.SYSTEM, Section.SOFT_RESET, Collections.emptyMap())));
}
/* renamed from: l */
public Request<MultipleRequest> mo37457l() {
return m26435a(new Request<>(Constants.GET_REBOOT, new Wrapper(Module.TIMING_REBOOT, Section.NAME, Collections.singletonList(Section.REBOOT.getValue()))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37416a(RecordPlanInfo recordPlanInfo) {
return m26435a(new Request<>(Constants.SET_RECORD_PLAN, new Wrapper(Module.RECORD_PLAN, Section.CHN1_CHANNEL, recordPlanInfo)));
}
/* renamed from: m */
public Request<MultipleRequest> mo37458m() {
return m26435a(new Request<>(Constants.GET_RECORD_PLAN, new Wrapper(Module.RECORD_PLAN, Section.NAME, Collections.singletonList(Section.CHN1_CHANNEL.getValue()))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37400a(AlarmInfo alarmInfo) {
return m26435a(new Request<>(Constants.SET_ALERT_CONFIG, new Wrapper(Module.MSG_ALARM, Section.ALERT_INFO, alarmInfo)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37401a(AlarmPlanInfo alarmPlanInfo) {
return m26435a(new Request<>(Constants.SET_ALERT_PLAN, new Wrapper(Module.MSG_ALARM_PLAN, Section.MSG_ALARM_PLAN, alarmPlanInfo)));
}
/* renamed from: n */
public Request<MultipleRequest> mo37459n() {
return m26435a(new Request<>(Constants.GET_ALERT_CONFIG, new Wrapper(Module.MSG_ALARM, Section.NAME, Collections.singletonList(Section.MSG_ALARM_INFO.getValue()))));
}
/* renamed from: o */
public Request<MultipleRequest> mo37460o() {
return m26435a(new Request<>(Constants.GET_ALERT_PLAN, new Wrapper(Module.MSG_ALARM_PLAN, Section.NAME, Collections.singletonList(Section.MSG_ALARM_PLAN.getValue()))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37412a(MsgPushInfo msgPushInfo) {
return m26435a(new Request<>(Constants.SET_MSG_PUSH_CONFIG, new Wrapper(Module.MSG_PUSH, Section.MSG_PUSH_INFO, msgPushInfo)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37413a(MsgPushPlanInfo msgPushPlanInfo) {
return m26435a(new Request<>(Constants.SET_MSG_PUSH_PLAN, new Wrapper(Module.MSG_PUSH_PLAN, Section.MSG_PUSH_PLAN, msgPushPlanInfo)));
}
/* renamed from: p */
public Request<MultipleRequest> mo37461p() {
return m26435a(new Request<>(Constants.GET_MSG_PUSH_CONFIG, new Wrapper(Module.MSG_PUSH, Section.NAME, Collections.singletonList(Section.MSG_PUSH_INFO.getValue()))));
}
/* renamed from: q */
public Request<MultipleRequest> mo37462q() {
return m26435a(new Request<>(Constants.GET_MSG_PUSH_PLAN, new Wrapper(Module.MSG_PUSH_PLAN, Section.NAME, Collections.singletonList(Section.MSG_PUSH_PLAN.getValue()))));
}
/* renamed from: r */
public Request<MultipleRequest> mo37463r() {
Wrapper wrapper = new Wrapper(Module.MOTION_DETECTION, Section.NAME, Collections.singletonList(Section.MOTION_DET.getValue()));
Wrapper wrapper2 = new Wrapper(Module.MOTION_DETECTION, Section.TABLE, Collections.singletonList(Section.REGION_INFO.getValue()));
return m26441b(new Request<>(Constants.GET_DETECTION_CONFIG, new Wrappers(Arrays.asList(wrapper, wrapper2))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37405a(CloudTerraceMoveInfo cloudTerraceMoveInfo) {
return m26435a(new Request<>(Constants.MOTOR_MOVE, new Wrapper(Module.MOTOR, Section.MOVE, cloudTerraceMoveInfo)));
}
/* renamed from: c */
public Request<MultipleRequest> mo37440c(String str) {
return m26435a(new Request<>(Constants.SIGNAL_MOVE, new Wrapper(Module.MOTOR, Section.MOVE_STEP, new CloudTerraceMoveStepInfo(str))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37427a(boolean z) {
return m26435a(new Request<>(Constants.CRUISE_MOVE, new Wrapper(Module.MOTOR, Section.CRUISE, new CloudTerraceCruiseInfo(z ? "y" : "x"))));
}
/* renamed from: s */
public Request<MultipleRequest> mo37464s() {
return m26435a(new Request<>(Constants.CRUISE_STOP, new Wrapper(Module.MOTOR, Section.CRUISE_STOP, Section.EMPTY.getValue())));
}
/* renamed from: t */
public Request<MultipleRequest> mo37465t() {
return m26435a(new Request<>(Constants.MANUAL_CALIBRATE, new Wrapper(Module.MOTOR, Section.MANUAL_CALI, Section.EMPTY.getValue())));
}
/* renamed from: u */
public Request<MultipleRequest> mo37466u() {
return m26435a(new Request<>(Constants.GET_PRESET_CONFIG, new Wrapper(Module.PRESET, Section.NAME, new String[]{Section.PRESET.getValue()})));
}
/* renamed from: a */
public Request<MultipleRequest> mo37395a(int i) {
return m26435a(new Request<>(Constants.MOTOR_MOVE_TO_PRESET, new Wrapper(Module.PRESET, Section.GOTO_PRESET, new CloudTerraceId(String.valueOf(i)))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37406a(CloudTerracePoint cloudTerracePoint) {
return m26435a(new Request<>(Constants.ADD_MOTOR_POSITION, new Wrapper(Module.PRESET, Section.SET_PRESET, cloudTerracePoint)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37407a(CloudTerraceResetInfo cloudTerraceResetInfo) {
return m26435a(new Request<>(Constants.DELETE_PRESET, new Wrapper(Module.PRESET, Section.REMOVE_PRESET, cloudTerraceResetInfo)));
}
/* renamed from: c */
public Request<MultipleRequest> mo37441c(String str, String str2) {
return m26435a(new Request<>(Constants.CHANGE_THIRD_ACCOUNT, new Wrapper(Module.USER_MANAGEMENT, Section.CHANGE_THIRD_ACCOUNT, new AccountInfo(str, str2))));
}
/* renamed from: d */
public Request<MultipleRequest> mo37445d(String str, String str2) {
return m26435a(new Request<>(Constants.VERIFY_THIRD_ACCOUNT, new Wrapper(Module.USER_MANAGEMENT, Section.VERIFY_THIRD_ACCOUNT, new AccountInfo(str, str2))));
}
/* renamed from: b */
public Request<MultipleRequest> mo37438b(boolean z) {
return m26435a(new Request<>(Constants.SET_ROTATION_STATUS, new Wrapper(Module.IMAGE, Section.IMAGE_SWITCH, new ImageFlip(z))));
}
/* renamed from: v */
public Request<MultipleRequest> mo37467v() {
return m26435a(new Request<>(Constants.GET_INTRUSION_DETECTION_CONFIG, new Wrapper(Module.INTRUSION_DETECTION, Section.NAME, Arrays.asList(Section.DETECTION.getValue(), Section.ARMING_SCHEDULE.getValue()))));
}
/* renamed from: w */
public Request<MultipleRequest> mo37468w() {
return m26435a(new Request<>(Constants.GET_INTRUSION_DETECTION_REGION, new Wrapper(Module.INTRUSION_DETECTION, Section.TABLE, Collections.singletonList(Section.REGION_INFO.getValue()))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37408a(DetectionInfo detectionInfo) {
return m26435a(new Request<>(Constants.SET_INTRUSION_DETECTION_CONFIG, new Wrapper(Module.INTRUSION_DETECTION, Section.DETECTION, detectionInfo)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37403a(ArmScheduleInfo armScheduleInfo) {
return m26435a(new Request<>(Constants.SET_INTRUSION_DETECTION_SCHEDULE, new Wrapper(Module.INTRUSION_DETECTION, Section.ARMING_SCHEDULE, armScheduleInfo)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37426a(Map<String, List<IntrusionDetectionRegion>> map) {
return m26435a(new Request<>(Constants.ADD_INTRUSION_DETECTION_REGION, new Wrapper(Module.INTRUSION_DETECTION, Section.ADD_REGIONS, map)));
}
/* renamed from: x */
public Request<MultipleRequest> mo37469x() {
return m26435a(new Request<>(Constants.GET_LINE_CROSSING_DETECTION_CONFIG, new Wrapper(Module.LINE_CROSSING_DETECTION, Section.NAME, Arrays.asList(Section.DETECTION.getValue(), Section.ARMING_SCHEDULE.getValue()))));
}
/* renamed from: b */
public Request<MultipleRequest> mo37432b(DetectionInfo detectionInfo) {
return m26435a(new Request<>(Constants.SET_LINE_CROSSING_DETECTION_CONFIG, new Wrapper(Module.LINE_CROSSING_DETECTION, Section.DETECTION, detectionInfo)));
}
/* renamed from: b */
public Request<MultipleRequest> mo37431b(ArmScheduleInfo armScheduleInfo) {
return m26435a(new Request<>(Constants.SET_LINE_CROSSING_DETECTION_SCHEDULE, new Wrapper(Module.LINE_CROSSING_DETECTION, Section.ARMING_SCHEDULE, armScheduleInfo)));
}
/* renamed from: y */
public Request<MultipleRequest> mo37470y() {
return m26435a(new Request<>(Constants.GET_LINE_CROSSING_DETECTION_REGION, new Wrapper(Module.LINE_CROSSING_DETECTION, Section.TABLE, Collections.singletonList(Section.REGION_INFO.getValue()))));
}
/* renamed from: b */
public Request<MultipleRequest> mo37437b(Map<String, List<LineCrossingDetectionRegion>> map) {
return m26435a(new Request<>(Constants.ADD_LINE_CROSSING_DETECTION_REGION, new Wrapper(Module.LINE_CROSSING_DETECTION, Section.ADD_REGIONS, map)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37417a(ResolutionType resolutionType) {
return m26435a(new Request<>(Constants.SET_RESOLUTION, new Wrapper(Module.VIDEO, Section.SET_RESOLUTION, new Resolution(resolutionType))));
}
/* renamed from: z */
public Request<MultipleRequest> mo37471z() {
return m26435a(new Request<>(Constants.GET_CONNECTION_TYPE, new Wrapper(Module.NETWORK, Section.GET_NETWORK_INFO, Section.EMPTY.getValue())));
}
/* renamed from: b */
public Request<MultipleRequest> mo37436b(List<MotionDetectRegion> list) {
return m26435a(new Request<>(Constants.ADD_DETECTION_REGION, Model.wrapper(list, Module.MOTION_DETECTION, Section.MOTION_DETECTION_ADD_REGION, "region_info")));
}
/* renamed from: A */
public Request<MultipleRequest> mo37373A() {
return m26435a(new Request<>(Constants.GET_LIGHT_FREQUENCY_INFO, new Wrapper(Module.IMAGE, Section.NAME, Section.COMMON.getValue())));
}
/* renamed from: d */
public Request<MultipleRequest> mo37444d(String str) {
return m26435a(new Request<>(Constants.SET_LIGHT_FREQUENCY_INFO, new Wrapper(Module.IMAGE, Section.COMMON, new Light(str, null))));
}
/* renamed from: B */
public Request<MultipleRequest> mo37374B() {
return m26435a(new Request<>(Constants.FORMAT_SD_CARD, new Wrapper(Module.HARD_DISK_MANAGE, Section.HARD_DISK_FORMAT, "1")));
}
/* renamed from: C */
public Request<MultipleRequest> mo37375C() {
return m26435a(new Request<>(Constants.GET_SD_CARD_FORMAT_STATUS, new Wrapper(Module.HARD_DISK_MANAGE, Section.HARD_DISK_FORMAT_STATUS, DiskInfo.getSingletonDisk())));
}
/* renamed from: a */
public Request<MultipleRequest> mo37414a(NightMode nightMode) {
return m26435a(new Request<>(Constants.SET_DAY_NIGHT_MODE_CONFIG, new Wrapper(Module.IMAGE, Section.COMMON, new Light(null, nightMode.getRaw()))));
}
/* renamed from: D */
public Request<MultipleRequest> mo37376D() {
return m26435a(new Request<>(Constants.START_FIRMWARE_UPGRADE, new Wrapper(Module.CLOUD_CONFIG, Section.FIRMWARE_DOWNLOAD, Section.EMPTY.getValue())));
}
/* renamed from: E */
public Request<MultipleRequest> mo37377E() {
return m26435a(new Request<>(Constants.GET_FIRMWARE_UPDATE_STATUS, new Wrapper(Module.CLOUD_CONFIG, Section.NAME, Section.UPGRADE_STATUS.getValue())));
}
/* renamed from: F */
public Request<MultipleRequest> mo37378F() {
return m26435a(new Request<>(Constants.STOP_MOVE, new Wrapper(Module.MOTOR, Section.STOP, Section.EMPTY.getValue())));
}
/* renamed from: G */
public Request<MultipleRequest> mo37379G() {
return m26435a(new Request<>(Constants.GET_AUDIO_CONFIG, new Wrapper(Module.AUDIO_CONFIG, Section.NAME, new String[]{Section.SPEAKER.getValue(), Section.MICROPHONE.getValue()})));
}
/* renamed from: a */
public Request<MultipleRequest> mo37418a(SpeakerInfo speakerInfo) {
return m26435a(new Request<>(Constants.SET_SPEAKER_VOLUME, new Wrapper(Module.AUDIO_CONFIG, Section.SPEAKER, speakerInfo)));
}
/* renamed from: a */
public Request<MultipleRequest> mo37410a(MicroPhoneInfo microPhoneInfo) {
return m26435a(new Request<>(Constants.SET_MICROPHONE_VOLUME, new Wrapper(Module.AUDIO_CONFIG, Section.MICROPHONE, microPhoneInfo)));
}
/* renamed from: c */
public Request<MultipleRequest> mo37442c(boolean z) {
return m26435a(new Request<>(Constants.SET_RECORD_AUDIO, new Wrapper(Module.AUDIO_CONFIG, Section.RECORD_AUDIO, new RecordAudioInfo(z ? "on" : "off"))));
}
/* renamed from: H */
public Request<MultipleRequest> mo37380H() {
return m26435a(new Request<>(Constants.GET_AUDIO_CONFIG, new Wrapper(Module.AUDIO_CONFIG, Section.NAME, new String[]{Section.RECORD_AUDIO.getValue()})));
}
/* renamed from: d */
public Request<MultipleRequest> mo37446d(boolean z) {
return m26435a(new Request<>(Constants.SET_CIRCULAR_RECORDING_CONFIG, new Wrapper(Module.HARD_DISK_MANAGE, Section.HARD_DISK_LOOP, new HardDiskLoop(z ? "on" : "off"))));
}
/* renamed from: e */
public Request<Wrapper> mo37448e(String str) {
return new Request<>(Constants.SET_LANGUAGE, new Wrapper(Module.LANGUAGE, Section.EMPTY, str));
}
/* renamed from: I */
public Request<MultipleRequest> mo37381I() {
return m26435a(new Request<>(Constants.GET_CLOCK_STATUS, new Wrapper(Module.SYSTEM, Section.NAME, Section.CLOCK_STATUS.getValue())));
}
/* renamed from: J */
public Request<MultipleRequest> mo37382J() {
Wrapper wrapper = new Wrapper(Module.DEVICE_INFO, Section.NAME, Collections.singletonList(Section.BASIC_INFO.getValue()));
Wrapper wrapper2 = new Wrapper(Module.SYSTEM, Section.NAME, Collections.singletonList(Section.LAST_ALARM_INFO.getValue()));
return m26441b(new Request<>(Constants.GET_DEVICE_INFO, new Wrappers(Arrays.asList(wrapper, wrapper2))));
}
/* renamed from: K */
public Request<MultipleRequest> mo37383K() {
return m26435a(new Request<>(Constants.GET_APP_COMPONENT_LIST, new Wrapper(Module.APP_COMPONENT, Section.NAME, Section.APP_COMPONENT_LIST.getValue())));
}
/* renamed from: L */
public Request<MultipleRequest> mo37384L() {
Wrapper wrapper = new Wrapper(Module.DEVICE_INFO, Section.NAME, Collections.singletonList(Section.BASIC_INFO.getValue()));
Wrapper wrapper2 = new Wrapper(Module.SYSTEM, Section.NAME, Collections.singletonList(Section.LAST_ALARM_INFO.getValue()));
Wrapper wrapper3 = new Wrapper(Module.APP_COMPONENT, Section.NAME, Collections.singletonList(Section.APP_COMPONENT_LIST.getValue()));
return m26441b(new Request<>(Constants.GET_DEVICE_INFO, new Wrappers(Arrays.asList(wrapper, wrapper2, wrapper3))));
}
/* renamed from: M */
public Request<MultipleRequest> mo37385M() {
return m26435a(new Request<>(Constants.GET_LDC, new Wrapper(Module.IMAGE, Section.NAME, Section.SWITCH.getValue())));
}
/* renamed from: e */
public Request<MultipleRequest> mo37449e(boolean z) {
return m26435a(new Request<>(Constants.SET_LDC, new Wrapper(Module.IMAGE, Section.SWITCH, new ImageFlip(z ? "on" : "off"))));
}
/* renamed from: N */
public Request<MultipleRequest> mo37386N() {
return m26435a(new Request<>(Constants.CHECK_DIAGNOSE_STATUS, new Wrapper(Module.SYSTEM, Section.CHECK_DIAGNOSE_STATUS, "")));
}
/* renamed from: O */
public Request<MultipleRequest> mo37387O() {
return m26435a(new Request<>(Constants.GET_DIAGNOSE_MODE, new Wrapper(Module.SYSTEM, Section.NAME, Section.SYS.getValue())));
}
/* renamed from: f */
public Request<MultipleRequest> mo37451f(boolean z) {
SystemInfo systemInfo = new SystemInfo();
systemInfo.setDiagnoseMode(z ? "on" : "off");
return m26435a(new Request<>(Constants.SET_DIAGNOSE_MODE, new Wrapper(Module.SYSTEM, Section.SYS, systemInfo)));
}
/* renamed from: P */
public Request<MultipleRequest> mo37388P() {
return m26435a(new Request<>(Constants.GET_P2P_SHARE_PWD, new Wrapper(Module.USER_MANAGEMENT, Section.GET_P2P_SHARE_PWD, Collections.emptyMap())));
}
/* renamed from: Q */
public Request<MultipleRequest> mo37389Q() {
return m26435a(new Request<>(Constants.GET_AES_ENCRYPT_KEY, new Wrapper(Module.CERT, Section.GET_AES_KEY, Collections.emptyMap())));
}
/* renamed from: a */
private <T> Wrappers m26437a(Wrapper<T> wrapper) {
return new Wrappers(Collections.singletonList(wrapper));
}
/* renamed from: a */
private <T> Request<Wrappers> m26434a(Constants method, Module module, Section section, T t) {
return new Request<>(method, m26437a(new Wrapper<>(module, section, t)));
}
/* renamed from: b */
private Request<Wrappers> m26440b(MotionDetectConfig motionDetectConfig) {
return m26434a(Constants.SET_DETECTION_CONFIG, Module.MOTION_DETECTION, Section.MOTION_DET, motionDetectConfig);
}
/* renamed from: c */
private Request<Wrappers> m26442c(List<MotionDetectRegion> list) {
return new Request<>(Constants.ADD_DETECTION_REGION, m26437a(Model.wrapper(list, Module.MOTION_DETECTION, Section.MOTION_DETECTION_ADD_REGION, "region_info")));
}
/* renamed from: b */
private Request<Wrappers> m26438b(AlarmInfo alarmInfo) {
return m26434a(Constants.SET_ALERT_CONFIG, Module.MSG_ALARM, Section.ALERT_INFO, alarmInfo);
}
/* renamed from: b */
private Request<Wrappers> m26439b(AlarmPlanInfo alarmPlanInfo) {
return m26434a(Constants.SET_ALERT_PLAN, Module.MSG_ALARM_PLAN, Section.MSG_ALARM_PLAN, alarmPlanInfo);
}
/* renamed from: S */
public Request<Wrappers> mo37391S() {
return m26434a(Constants.GET_CLOUD_CONFIG, Module.CLOUD_CONFIG, Section.NAME, Collections.singletonList(Section.UPGRADE_INFO.getValue()));
}
/* renamed from: T */
public Request<Wrappers> mo37392T() {
return m26434a(Constants.CHECK_FIRMWARE_VERSION_BY_CLOUD, Module.CLOUD_CONFIG, Section.FIRMWARE_NOTIFY, Section.EMPTY.getValue());
}
/* renamed from: U */
public Request<MultipleRequest> mo37393U() {
return m26435a(new Request<>(Constants.GET_TAMPER_DETECTION_CONFIG, new Wrapper(Module.TAMPER_DETECTION, Section.NAME, Collections.singletonList(Section.TAMPER_DET.getValue()))));
}
/* renamed from: a */
public Request<MultipleRequest> mo37419a(TamperDetectConfig tamperDetectConfig) {
return m26435a(new Request<>(Constants.SET_TAMPER_DETECTION_CONFIG, new Wrapper(Module.TAMPER_DETECTION, Section.TAMPER_DET, tamperDetectConfig)));
}
/* renamed from: a */
public List<Request<Wrappers>> mo37429a(MotionDetectConfig motionDetectConfig, AlarmInfo alarmInfo, MsgPushInfo msgPushInfo, DetectionInfo detectionInfo, DetectionInfo detectionInfo2, TamperDetectConfig tamperDetectConfig) {
ArrayList arrayList = new ArrayList();
if (motionDetectConfig != null) {
arrayList.add(m26440b(motionDetectConfig));
}
if (alarmInfo != null) {
arrayList.add(m26438b(alarmInfo));
}
if (msgPushInfo != null) {
arrayList.add(m26434a(Constants.SET_MSG_PUSH_CONFIG, Module.MSG_PUSH, Section.MSG_PUSH_INFO, msgPushInfo));
}
if (detectionInfo != null) {
arrayList.add(m26434a(Constants.SET_INTRUSION_DETECTION_CONFIG, Module.INTRUSION_DETECTION, Section.DETECTION, detectionInfo));
}
if (detectionInfo2 != null) {
arrayList.add(m26434a(Constants.SET_LINE_CROSSING_DETECTION_CONFIG, Module.LINE_CROSSING_DETECTION, Section.DETECTION, detectionInfo2));
}
if (tamperDetectConfig != null) {
arrayList.add(m26434a(Constants.SET_TAMPER_DETECTION_CONFIG, Module.TAMPER_DETECTION, Section.TAMPER_DET, tamperDetectConfig));
}
return arrayList;
}
/* renamed from: a */
public Request<MultipleRequest> mo37402a(AlarmPlanInfo alarmPlanInfo, MsgPushPlanInfo msgPushPlanInfo, ArmScheduleInfo armScheduleInfo, ArmScheduleInfo armScheduleInfo2) {
ArrayList arrayList = new ArrayList();
if (alarmPlanInfo != null) {
arrayList.add(m26439b(alarmPlanInfo));
}
if (msgPushPlanInfo != null) {
arrayList.add(m26434a(Constants.SET_MSG_PUSH_PLAN, Module.MSG_PUSH_PLAN, Section.MSG_PUSH_PLAN, msgPushPlanInfo));
}
if (armScheduleInfo != null) {
arrayList.add(m26434a(Constants.SET_INTRUSION_DETECTION_SCHEDULE, Module.INTRUSION_DETECTION, Section.ARMING_SCHEDULE, armScheduleInfo));
}
if (armScheduleInfo2 != null) {
arrayList.add(m26434a(Constants.SET_LINE_CROSSING_DETECTION_SCHEDULE, Module.LINE_CROSSING_DETECTION, Section.ARMING_SCHEDULE, armScheduleInfo2));
}
return mo37424a(arrayList);
}
/* renamed from: a */
public Request<MultipleRequest> mo37425a(List<MotionDetectRegion> list, Map<String, List<IntrusionDetectionRegion>> map, HashMap<String, List<LineCrossingDetectionRegion>> hashMap) {
ArrayList arrayList = new ArrayList();
if (list != null) {
arrayList.add(m26442c(list));
}
if (map != null) {
arrayList.add(m26434a(Constants.ADD_INTRUSION_DETECTION_REGION, Module.INTRUSION_DETECTION, Section.ADD_REGIONS, map));
}
if (hashMap != null) {
arrayList.add(m26434a(Constants.ADD_LINE_CROSSING_DETECTION_REGION, Module.LINE_CROSSING_DETECTION, Section.ADD_REGIONS, hashMap));
}
return mo37424a(arrayList);
}
}
```
### POJOs that need field extraction
```json
[
"BasicInfo",
"DetailInfo",
"SystemInfo",
"Timezone",
"VodUserId",
"WifiList",
"ConnectResult",
"ConnectStatus",
"ComponentBean",
"LedStatus",
"OsdElement",
"OsdElement",
"OsdElement",
"OsdFont",
"HardDiskLoop",
"HardDiskInfo",
"DefaultAp",
"AlarmInfo",
"AlarmPlanInfo",
"MsgPushInfo",
"MsgPushPlanInfo",
"MediaEncrypt",
"StreamService",
"BindStatus",
"BindStatus",
"LensMaskInfo",
"FirmwareUpdateStatus",
"YearlyPlaybackItem",
"DailyPlaybackItem",
"Light",
"ImageFlip",
"RebootInfo",
"Wan",
"RecordPlanInfo",
"NewFirmware",
"MotionDetectConfig",
"MotionDetectRegion",
"CloudTerraceMoveInfo",
"CloudTerracePoint",
"CloudTerraceResetInfo",
"AccountInfo",
"VideoQuality",
"VideoQuality",
"Resolution",
"VideoCapability",
"VideoCapability",
"String",
"MarkedPositionListInfo",
"FirmwareUpdateInfo",
"MicroPhoneInfo",
"SpeakerInfo",
"RecordAudioInfo",
"ClockStatus",
"LatestFirmwareInfo",
"LastAlarmInfo",
"String",
"CameraComponent",
"TamperDetectConfig",
"DetectionInfo",
"ArmScheduleInfo",
"IntrusionDetectionRegion",
"DetectionInfo",
"ArmScheduleInfo",
"LineCrossingDetectionRegion"
]
```
### Extracted fields
```json
{
"AccountInfo": {
"secname": "String",
"passwd": "String",
"old_passwd": "String",
"ciphertext": "String",
"username": "String"
},
"AlarmInfo": {
"alarm_type": "String",
"enabled": "String",
"light_type": "String",
"alarm_mode": "List<String>"
},
"AlarmPlanInfo": {
"enabled": "String",
"alarm_plan_1": "String"
},
"ArmScheduleInfo": {
"friday": "String",
"monday": "String",
"saturday": "String",
"sunday": "String",
"thursday": "String",
"tuesday": "String",
"wednesday": "String"
},
"BasicInfo": {
"barcode": "String",
"device_alias": "String",
"dev_id": "String",
"features": "String",
"ffs": "boolean",
"hw_desc": "String",
"hw_version": "String",
"device_info": "String",
"mac": "String",
"device_model": "String",
"device_name": "String",
"oem_id": "String",
"sw_version": "String",
"device_type": "String"
},
"BindStatus": {
"err_code": "String",
"owner": "String",
"action_status": "String"
},
"CameraComponent": {
"app_component_list": "ArrayList<ComponentBean>"
},
"ClockStatus": {
"local_time": "String",
"seconds_from_1970": "long"
},
"CloudTerraceMoveInfo": {
"x_coord": "String",
"y_coord": "String"
},
"CloudTerracePoint": {
"name": "String",
"save_ptz": "String"
},
"CloudTerraceResetInfo": {
"id": "String[]"
},
"ComponentBean": {
"name": "String",
"version": "int"
},
"ConnectResult": {
"connect_time": "Integer",
"mac": "String",
"support_ap": "String"
},
"ConnectStatus": {
"status": "int"
},
"DailyPlaybackItem": {
"endTime": "long",
"startTime": "long",
"vedio_type": "String"
},
"DefaultAp": {
"ssid": "String",
"status": "String"
},
"DetailInfo": {
"device_info": "String",
"domain_name": "String",
"device_model": "String",
"device_name": "String",
"device_type": "String"
},
"DetectionInfo": {
"enabled": "String"
},
"FirmwareUpdateInfo": {
"connect_status": "int",
"disconnect_reason": "int",
"fw_download_progress": "int",
"fw_download_status": "int",
".name": "String",
"reconnect_time": "int",
".type": "String",
"fw_verify_status": "int"
},
"FirmwareUpdateStatus": {
"lastUpgradingSuccess": "boolean",
"state": "String"
},
"HardDiskInfo": {
"detect_status": "String",
"msg_push_free_space": "String",
"picture_free_space": "String",
"free_space": "String",
"video_free_space": "String",
"percent": "Float",
"record_duration": "String",
"record_free_duration": "String",
"record_start_time": "String",
"status": "String",
"msg_push_total_space": "String",
"picture_total_space": "String",
"total_space": "String",
"video_total_space": "String",
"type": "String"
},
"HardDiskLoop": {
"loop": "String"
},
"ImageFlip": {
"flip_type": "String",
"ldc": "String",
"rotate_type": "String",
"schedule_end_time": "Integer",
"schedule_start_time": "Integer",
"switch_mode": "String"
},
"IntrusionDetectionRegion": {
"pt3_x": "String",
"pt3_y": "String",
"pt1_x": "String",
"pt1_y": "String",
"percentage": "String",
"pt4_x": "String",
"pt4_y": "String",
"pt2_x": "String",
"pt2_y": "String",
"sensitivity": "String",
"threshold": "String"
},
"LastAlarmInfo": {
"last_alarm_time": "String",
"last_alarm_type": "String"
},
"LatestFirmwareInfo": {
"location": "String",
"release_date": "String",
"release_log": "String",
"type": "String",
"version": "String"
},
"LedStatus": {
"enabled": "String"
},
"LensMaskInfo": {
"enabled": "String"
},
"Light": {
"inf_type": "String",
"light_freq_mode": "String"
},
"LineCrossingDetectionRegion": {
"direction": "String",
"pt1_x": "String",
"pt1_y": "String",
"pt2_x": "String",
"pt2_y": "String",
"sensitivity": "String"
},
"MarkedPositionListInfo": {
"id": "Integer[]",
"name": "String[]",
"position_pan": "double[]",
"position_tilt": "double[]",
"read_only": "int[]"
},
"MediaEncrypt": {
"enabled": "String"
},
"MicroPhoneInfo": {
"bitrate": "String",
"channels": "String",
"encode_type": "String",
"sampling_rate": "String",
"volume": "String"
},
"MotionDetectConfig": {
"digital_sensitivity": "String",
"enabled": "String",
"sensitivity": "String"
},
"MotionDetectRegion": {
"height": "String",
"width": "String",
"x_coor": "String",
"y_coor": "String"
},
"MsgPushInfo": {
"notification_enabled": "String",
"rich_notification_enabled": "String"
},
"MsgPushPlanInfo": {
"enabled": "String",
"push_plan_1": "String"
},
"NewFirmware": {
"fw_new_notify": "String",
"fw_update_type": "String",
"not_show": "String"
},
"OsdElement": {
"enabled": "String",
"text": "String",
"x_coor": "String",
"y_coor": "String"
},
"OsdFont": {
"color": "String",
"color_type": "String",
"display": "String",
"size": "String"
},
"RebootInfo": {
"day": "String",
"enabled": "String",
"now": "String",
"random_range": "Integer",
"time": "String"
},
"RecordAudioInfo": {
"enabled": "String"
},
"RecordPlanInfo": {
"enabled": "String",
"friday": "String",
"monday": "String",
"saturday": "String",
"sunday": "String",
"thursday": "String",
"tuesday": "String",
"wednesday": "String"
},
"Resolution": {
"resolution": "String",
"secname": "String"
},
"SpeakerInfo": {
"volume": "String"
},
"StreamService": {
"port": "Integer"
},
"SystemInfo": {
"dev_alias": "String",
"append_dns": "String",
"diagnose_mode": "String",
"hostname": "String",
"is_factory": "String",
"makeroom_status": "String",
"alias": "String",
"network_type": "String"
},
"TamperDetectConfig": {
"digital_sensitivity": "String",
"enabled": "String",
"sensitivity": "String"
},
"Timezone": {
"timing_mode": "String",
"offset": "String",
"timezone": "String",
"zone_id": "String"
},
"VideoCapability": {
"bitrate_types": "List<String>",
"bitrates": "List<String>",
"encode_types": "List<String>",
"frame_rates": "List<String>",
"qualitys": "List<String>",
"resolutions": "List<String>"
},
"VideoQuality": {
"bitRate": "String",
"bitrate_type": "String",
"frame_rate": "String",
"quality": "String",
"resolution": "String",
"stream_type": "String"
},
"VodUserId": {
"user_id": "int"
},
"Wan": {
"ipaddr": "String"
},
"WifiList": {
"ap_list": "List<Wifi>"
},
"YearlyPlaybackItem": {
"date": "String"
}
}
```
#### Code used for extraction
```python
import os, re, json
pojos = [] # List from above
pojos = list(set(pojos))
pojos.sort()
pojo_fields = {}
serialized = None
for pojo in pojos:
with open(pojo + ".java") as f:
pojo_fields[pojo] = {}
for line in f.readlines():
line = line.strip()
if line.startswith("import"):
continue
if "SerializedName" in line:
try:
serialized = re.search(r'SerializedName[(].+ = (.+)[)]', line).group(1).replace('"', '')
except:
print(f"Line doesn't match regex: '{line}'")
raise
continue
if line.startswith("private") and line.endswith(";"):
type_, name = line.split(" ")[-2:]
if serialized:
name = serialized
serialized = None
name = name.replace(";", "")
pojo_fields[pojo][name] = type_
print(json.dumps(pojo_fields, indent=4))
```