pico-streaming

Streams gap-less data from Pico Technology oscilloscope drivers.

This is a sub crate that you probably don't want to use directly. Try the top level pico-sdk crate which exposes everything from here.

Once streaming is started, a PicoStreamingDevice returns StreamingEvents. The possible events and Connected, Disconnected and Data. The Data event contains raw Vec<i16> samples for each enabled channel that can easily be scaled to the channel units (ie. Volts, Amps, etc).

Example

```rust

// Get a streaming device from a configured PicoDevice let streamdevice = device.tostreaming_device();

// Subscribe to streaming events on a background thread let streamsubscription = streamdevice .events .subscribeonthread(Box::new(move |event| { // Handle the data event if let StreamingEvent::Data { length, samplespersecond, channels } = event { // iterate though the channels for (ch, rawblock) in channels.iter() { // Scale all the raw samples let scaledsamples: Vec = rawblock.scale_samples(); } } }));

// Start streaming with a sample rate of 1k streamdevice.start(1000)?; ```

License: MIT