The `/osc/state` API returns `state` attributes of the camera. The difference
between this and the `info` API is that `state` contains mutable values
representing camera status (`batteryLevel`, for example), while the `info`
contains only static attributes of the camera (for example, `manufacturer` or
attributes that don't change often like `firmwareVersion)`.

## Input

- This command takes no input.

## Output

| **Name** | **Type** | **Description** |
|---|---|---|
| `fingerprint` | String | Fingerprint (unique identifier) of the current camera state. |
| `state` | Object | A JSON object containing the status of various the camera states. See the next table. |

**Note:** Manufacturers define the fingerprinting algorithm, which must change the fingerprint value when a tracked camera state changes. Possible implementations include:

- Hash of the current state.
- Monotonically incremented number on every state change.
- Timestamp / timecounter of the last state change.

### `state` object

This JSON object provides the status of various camera states. Manufacturers can
provide new, custom states, which should be prefixed with an underscore ( _ )
to prevent namespace collisions.

| **Name** | **Type** | **Description** |
|---|---|---|
| `sessionId` | String | ID of the current session. **This field was deprecated in API level 2.** |
| `batteryLevel` | Number | Expressed as a floating point value of the battery remaining, e.g. 0.5 |
| `storageChanged` | Boolean | True if a new type of storage (e.g. a SD card or a USB drive) is inserted/removed. **This field was deprecated in API level 2.** |
| `storageUri` | String | A unique identifier to distinguish different storages. It is used to tell if the storage has changed or not. **This field was added in API level 2.** |
| `_vendorSpecific` | \[type\](optional) | Vendor specific additional state about the camera. Prefix with an underscore ( _ ) to prevent namespace collisions. |

## Error

- This command returns no errors.

| ## Example ||
|---|---|
| **Request** | ``` POST /osc/state HTTP/1.1 Host: [camera ip address]:[httpPort] Accept: application/json X-XSRF-Protected: 1 ``` |
| **Response** | ``` HTTP/1.1 200 OK Content-Type: application/json;charset=utf-8 Content-Length: {CONTENT_LENGTH} X-Content-Type-Options: nosniff { "fingerprint": "12EGA33", "state": { "sessionId": "12ABC3", "batteryLevel": 0.5, "storageChanged": false } } ``` |