reolink_api/api/record/
get_recording.rs

1use serde::{Deserialize, Serialize};
2use crate::api::JsonEndpoint;
3
4impl JsonEndpoint for GetRecordingRequest {
5    const CMD: &'static str = "GetRec";
6    type Response = GetRecordingResponse;
7    type Initial = GetRecordingResponse;
8    type Range = GetRecordingRange;
9}
10
11#[derive(Debug, Clone, Serialize)]
12pub struct GetRecordingRequest {
13    pub channel: usize,
14}
15
16//----- Result & Initial
17
18#[derive(Debug, Clone, Deserialize)]
19pub struct GetRecordingResponse {
20    #[serde(rename = "Rec")]
21    pub rec: RecordingConfig,
22}
23
24#[derive(Debug, Clone, Deserialize)]
25pub struct RecordingConfig {
26    pub channel: usize,
27    pub overwrite: usize,
28    #[serde(rename = "packTime")]
29    pub pack_time: String, // NVR
30    #[serde(rename = "postRec")]
31    pub post_rec: String,
32    #[serde(rename = "preRec")]
33    pub pre_rec: usize,
34    pub schedule: RecordingSchedule,
35}
36
37#[derive(Debug, Clone, Deserialize)]
38pub struct RecordingSchedule {
39    pub enable: usize,
40    pub table: String,
41}
42
43//----- Range
44
45#[derive(Debug, Clone, Deserialize)]
46pub struct GetRecordingRange {
47    pub rec: RecordingRange,
48}
49
50#[derive(Debug, Clone, Deserialize)]
51pub struct RecordingRange {
52    pub channel: usize,
53    pub overwrite: String, // "boolean"
54    #[serde(rename = "packTime")]
55    pub pack_time: Vec<String>, // NVR
56    #[serde(rename = "postRec")]
57    pub post_rec: Vec<String>,
58    #[serde(rename = "preRec")]
59    pub pre_rec: String, // "boolean",
60    #[serde(rename = "schedule")]
61    pub schedule: ScheduleRange,
62}
63
64#[derive(Debug, Clone, Deserialize)]
65pub struct ScheduleRange {
66    pub enable: usize,
67    pub table: String,
68}