SensorAggregator
This service is experimental and may change in the future.
Aggregate data from multiple sensors into a single stream (often used as input to machine learning models on the same device, see model runner service).
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
Registers
inputs
Set automatic input collection. These settings are stored in flash.
type:
Register<any[]>(packing formatu16 u16 u32 r: b[8] u32 u8 u8 u8 i8)track incoming values
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
sensorAggregator.inputs.subscribe(async (value) => {
...
})
write and read will block until a server is bound to the client.
numSamples
Number of input samples collected so far.
type:
Register<number>(packing formatu32)read only
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
const value = await sensorAggregator.numSamples.read()
- track incoming values
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
sensorAggregator.numSamples.subscribe(async (value) => {
...
})
write and read will block until a server is bound to the client.
sampleSize
Size of a single sample.
type:
Register<number>(packing formatu8)read only
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
const value = await sensorAggregator.sampleSize.read()
- track incoming values
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
sensorAggregator.sampleSize.subscribe(async (value) => {
...
})
write and read will block until a server is bound to the client.
streamingSamples
When set to N, will stream N samples as current_sample reading.
type:
Register<number>(packing formatu32)read and write
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
const value = await sensorAggregator.streamingSamples.read()
await sensorAggregator.streamingSamples.write(value)
- track incoming values
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
sensorAggregator.streamingSamples.subscribe(async (value) => {
...
})
write and read will block until a server is bound to the client.
reading
Last collected sample.
type:
Register<Buffer>(packing formatb)track incoming values
import { SensorAggregator } from "@devicescript/core"
const sensorAggregator = new SensorAggregator()
// ...
sensorAggregator.reading.subscribe(async (value) => {
...
})
write and read will block until a server is bound to the client.