pub struct LDReader<'a, S: Read + Seek> { /* private fields */ }
Implementations§
Source§impl<'a, S: Read + Seek> LDReader<'a, S>
impl<'a, S: Read + Seek> LDReader<'a, S>
Sourcepub fn new(source: &'a mut S) -> Self
pub fn new(source: &'a mut S) -> Self
Examples found in repository?
examples/read.rs (line 13)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn read_header(&mut self) -> I2Result<Header>
pub fn read_header(&mut self) -> I2Result<Header>
Examples found in repository?
examples/read.rs (line 15)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn read_event(&mut self) -> I2Result<Option<Event>>
pub fn read_event(&mut self) -> I2Result<Option<Event>>
Examples found in repository?
examples/read.rs (line 18)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn read_venue(&mut self) -> I2Result<Option<Venue>>
pub fn read_venue(&mut self) -> I2Result<Option<Venue>>
Examples found in repository?
examples/read.rs (line 21)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn read_vehicle(&mut self) -> I2Result<Option<Vehicle>>
pub fn read_vehicle(&mut self) -> I2Result<Option<Vehicle>>
Examples found in repository?
examples/read.rs (line 24)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn read_channels(&mut self) -> I2Result<Vec<ChannelMetadata>>
pub fn read_channels(&mut self) -> I2Result<Vec<ChannelMetadata>>
Read the channel meta data blocks inside the ld file
The channel metadata structs form a linked list with each metadata block pointing to the next block
Calls LDReader::read_header if it hasn’t been called before
Examples found in repository?
examples/read.rs (line 27)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Sourcepub fn channel_data(
&mut self,
channel: &ChannelMetadata,
) -> I2Result<Vec<Sample>>
pub fn channel_data( &mut self, channel: &ChannelMetadata, ) -> I2Result<Vec<Sample>>
Returns a iterator over the channel data
Examples found in repository?
examples/read.rs (line 37)
5fn main() -> I2Result<()> {
6 let path = env::args()
7 .skip(1)
8 .next()
9 .unwrap_or("./samples/Sample1.ld".into());
10 println!("Reading file: {}", path);
11
12 let mut file = File::open(path).expect("Failed to open file!");
13 let mut reader = LDReader::new(&mut file);
14
15 let header = reader.read_header()?;
16 println!("Header: {:#?}", header);
17
18 let event = reader.read_event()?;
19 println!("Event: {:#?}", event);
20
21 let venue = reader.read_venue()?;
22 println!("Venue: {:#?}", venue);
23
24 let vehicle = reader.read_vehicle()?;
25 println!("Vehicle: {:#?}", vehicle);
26
27 let channels = reader.read_channels()?;
28 println!("File has {} channels", channels.len());
29
30 let channel = &channels[0];
31 println!(
32 "Reading channel 0: {} ({} samples at {} Hz)",
33 channel.name, channel.data_count, channel.sample_rate
34 );
35 println!("Channle: {:#?}", channel);
36
37 let data = reader.channel_data(channel)?;
38 for i in 0..6 {
39 let sample = &data[i];
40 let value = sample.decode_f64(channel);
41 println!("[{}]: {:.1} - (Raw Sample: {:?})", i, value, sample);
42 }
43
44 Ok(())
45}
Trait Implementations§
Auto Trait Implementations§
impl<'a, S> Freeze for LDReader<'a, S>
impl<'a, S> RefUnwindSafe for LDReader<'a, S>where
S: RefUnwindSafe,
impl<'a, S> Send for LDReader<'a, S>where
S: Send,
impl<'a, S> Sync for LDReader<'a, S>where
S: Sync,
impl<'a, S> Unpin for LDReader<'a, S>
impl<'a, S> !UnwindSafe for LDReader<'a, S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more