31 lines
1.1 KiB
Text
31 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 ;
|
|||
|
} ;
|