30 lines
1.1 KiB
Text
30 lines
1.1 KiB
Text
include "../sensor.lt";
|
||
|
||
type native.SensorStatus = SensorStatus ~ {
|
||
online_since : TimePoint ~ <TimeSince UnixEpoch> ~ Milliseconds ~ ℤ ~ native.UInt64 ;
|
||
battery_charge : Energy ~ mAh ~ native.UInt32 ;
|
||
battery_capacity : Energy ~ mAh ~ native.UInt32 ;
|
||
min_sampling_period : Duration ~ Milliseconds ~ native.UInt32 ;
|
||
cur_sampling_period : Duration ~ Milliseconds ~ native.UInt32 ;
|
||
max_chunk_size : ℤ ~ native.UInt32 ;
|
||
cur_chunk_size : ℤ ~ native.UInt32 ;
|
||
n_chunk_capacity : ℤ ~ native.UInt32 ;
|
||
n_full_data_chunks : ℤ ~ native.UInt32 ;
|
||
n_empty_data_chunks : ℤ ~ native.UInt32 ;
|
||
} ;
|
||
|
||
type native.DataChunk = DataChunk ~ {
|
||
begin : TimePoint ~ <TimeSince UnixEpoch> ~ Milliseconds ~ native.UInt64 ;
|
||
data : [~<LengthPrefix x86.UInt32>
|
||
Temperature
|
||
~ Celsius
|
||
~ ℝ
|
||
~ native.Float64
|
||
] ;
|
||
} ;
|
||
|
||
type native.Sensor = Sensor ~ {
|
||
get_status : {} -> InternSensorStatus ;
|
||
set_sampling_period : Duration~Milliseconds~UInt32 -> (Ok | OutOfRange)~Byte ;
|
||
pop_data_chunk : {} -> InternDataChunk ;
|
||
} ;
|