87 lines
1.8 KiB
Rust
87 lines
1.8 KiB
Rust
|
|
use serde::{Deserialize, Serialize};
|
|
use serde_with::serde_as;
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
pub struct RetStruct {
|
|
/// 0x00 json 0x01 string 0x02 data binary
|
|
pub datatype: u8,
|
|
pub content: String,
|
|
pub data: IS11DataStruct,
|
|
}
|
|
|
|
#[serde_as]
|
|
#[derive(Serialize, Deserialize)]
|
|
#[repr(C)]
|
|
pub struct IS11DataStruct {
|
|
pub datatype: u8, // Using r# to allow the use of the keyword 'type'
|
|
pub direction: u8,
|
|
pub tuigan_stat: u8,
|
|
pub year:u8,
|
|
pub month:u8,
|
|
pub day:u8,
|
|
pub hour:u8,
|
|
pub minute:u8,
|
|
pub second:u8,
|
|
pub nca:u8,
|
|
pub ncb:u8,
|
|
pub ncc:u8,
|
|
pub shutter_time: u32,
|
|
pub index: u64,
|
|
pub temprature: [f32; 8],
|
|
#[serde_as(as = "[_; 2048]")]
|
|
pub data: [f32; 2048],
|
|
}
|
|
|
|
|
|
impl Default for IS11DataStruct {
|
|
fn default() -> Self {
|
|
IS11DataStruct {
|
|
datatype: 0,
|
|
direction: 10,
|
|
tuigan_stat: 0,
|
|
year:24,
|
|
month:1,
|
|
day:1,
|
|
hour:0,
|
|
minute:0,
|
|
second:0,
|
|
nca:0,
|
|
ncb:0,
|
|
ncc:0,
|
|
shutter_time: 0,
|
|
index: 0,
|
|
temprature: [0.0; 8],
|
|
data: [0.0; 2048],
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
impl IS11DataStruct {
|
|
pub fn clone(&self) -> IS11DataStruct {
|
|
IS11DataStruct {
|
|
datatype: self.datatype,
|
|
direction: self.direction,
|
|
tuigan_stat: self.tuigan_stat,
|
|
year: self.year,
|
|
month: self.month,
|
|
day: self.day,
|
|
hour: self.hour,
|
|
minute: self.minute,
|
|
second: self.second,
|
|
nca:self.nca,
|
|
ncb:self.ncb,
|
|
ncc:self.ncc,
|
|
|
|
shutter_time: self.shutter_time,
|
|
index: self.index,
|
|
temprature: self.temprature,
|
|
data: self.data,
|
|
}
|
|
}
|
|
|
|
}
|