start-disk-test
Added at V2.2 Use the interface to test whether the write speed meets the requirements for recording. You can call the stop-disk-test to cancel the request during testing.
Prerequisites are as follows.
- firmware update is not in progress
- reset and reboot is not in progress
- recording is not in progress
- disk format is not in progress
- disk performance test is not in progress
- disk is valid to work
- disk has more than 200M free space
- disk is writable
Obtain the mask of device status and disk status using get-status.
"cur-status": 65552                    // device running status mask
"usb": {
  "disk-status": 1,                    // disk status mask
  "total-size": 61638148096,
  "used-size": 97058816,
  ...
}
The output of cur-status & Device Status Mask are as follows.
| Device status | Condition | 
|---|---|
| Firmware update is not in progress | cur-status & statusUpgrade != statusUpgrade | 
| Reset all settings is not in progress | cur-status & statusReset != statusReset | 
| Reboot is not in progress | cur-status & statusReboot != statusReboot | 
| Recording is not in progress | cur-status & statusRecord != statusRecord | 
| Disk format is not in progress | cur-status & statusFormatDisk != statusFormatDisk | 
| Disk performance test is not in progress | cur-status & statusDiskTest != statusDiskTest | 
The output of disk-status & disk Status are as follows.
| Device status | Condition | 
|---|---|
| Disk is valid to work | disk-status & DiskValid = DiskValid | 
| Disk has more then 200 M free space | disk-status & LowSpace != LowSpace | 
| Disk is writable | disk-status & NotWrite != NotWrite | 
HTTP Request
GET http://ip/usapi?method=start-disk-test&disk-type
| Parameter | Description | 
|---|---|
| method | start-disk-test | 
| disk-type | 0: USB flash drive, 1: SD card | 
Response Body
{
  "result": 0
}
| Item | Description | 
|---|---|
| result | Returned status. 0 indicates that the formatting begins. 1 indicates repeat request -5 indicates disk error. -9 indicates system busy. -16 indicates there is not enough free space. Refer to API Status Codes to find specific description for other values. | 
The Lowest Required Write Speed (requirSpeed)
Obtain the recording configurations using get-settings.
"rec-stream": 0,
"main-stream": {
  "kbps": 4096,
  ...
},
"sub-stream": {
  "kbps": 1024,
  ...
}
"audio": {
  "kbps": 128
  ...
}
rec-stream indicates the recording stream type. 0 indicates main-stream, 1 indicates sub-stream.
The current recording requirSpeed can be calculated with the above information.
requirSpeed = main-stream.kbps + audio.kbps 
            = (4096 Kbps + 128 Kbps)
            = 4224 Kbps / 1024 * 8
            ≈ 0.52 MB/S
Performance Test Status
Obtain the disk-test information using get-status.
"disk-test": {
  "read-bps": 0,
  "write-bps": 14833071,    // 14833071 bps / 1024 * 1024 ≈ 14.15 MB/S
  "percent": 3,
  "result": 2,
  "client-id": "web-session-32435088"
}
| Item | Description | 
|---|---|
| result | Returned status. 27 indicates that the device is in initial status. 5 indicates the request is canceled. 2 indicates the test is in progress. Returned status. 0 indicates that the request was accepted successfully. Refer to API Status Codes to find specific description for other values. | 
| percent | Indicates the percentage of test. | 
| read-bps | Indicates current read speed. | 
| write-bps | Indicates current write speed, if it is greater than requirSpeed, then the performance of the USB flash drive is up to standard. | 
| client-id | Reserved | 
Call the clear-disk-test to reset the device to the initial status (retInit=27) after the performance test is completed.