1use motec_i2::{ChannelMetadata, Datatype, Header, I2Result, LDWriter, Sample};
2use std::fs::File;
3
4fn main() -> I2Result<()> {
5 let filename = "test_write.ld";
6 println!("Writing file: {}", filename);
7
8 let mut file = File::create(filename).expect("Failed to open file!");
9
10 let header = Header {
11 channel_meta_ptr: 13384,
12 channel_data_ptr: 23056,
13 event_ptr: 1762,
14 device_serial: 12007,
15 device_type: "ADL".to_string(),
16 device_version: 420,
17 num_channels: 1,
18 date_string: "23/11/2005".to_string(),
19 time_string: "09:53:00".to_string(),
20 driver: "".to_string(),
21 vehicleid: "11A".to_string(),
22 venue: "Calder".to_string(),
23 session: "2".to_string(),
24 short_comment: "second warmup".to_string(),
25 };
26
27 let channel0_meta = ChannelMetadata {
28 prev_addr: 0,
29 next_addr: 0,
30 data_addr: 0,
31 data_count: 0,
32 datatype: Datatype::I16,
33 sample_rate: 2,
34 offset: 0,
35 mul: 1,
36 scale: 1,
37 dec_places: 1,
38 name: "Air Temp Inlet".to_string(),
39 short_name: "Air Tem".to_string(),
40 unit: "C".to_string(),
41 };
42 let channel0_samples = vec![
43 Sample::I16(190),
44 Sample::I16(190),
45 Sample::I16(190),
46 Sample::I16(190),
47 Sample::I16(200),
48 Sample::I16(200),
49 Sample::I16(200),
50 Sample::I16(200),
51 Sample::I16(200),
52 Sample::I16(200),
53 Sample::I16(200),
54 Sample::I16(200),
55 Sample::I16(200),
56 Sample::I16(190),
57 Sample::I16(190),
58 Sample::I16(190),
59 ];
60
61 let gps_lat_meta = ChannelMetadata {
62 prev_addr: 0,
63 next_addr: 0,
64 data_addr: 0,
65 data_count: 0,
66 datatype: Datatype::I32,
67 sample_rate: 2,
68 offset: 0,
69 mul: 1,
70 scale: 1,
71 dec_places: 7,
72 name: "GPS Latitude".to_string(),
73 short_name: "GPS Lat".to_string(),
74 unit: "deg".to_string(),
75 };
76 let gps_lat_samples = vec![
77 Sample::I32(387867788),
78 Sample::I32(387867788),
79 Sample::I32(387867788),
80 Sample::I32(387867788),
81 Sample::I32(387867788),
82 Sample::I32(387867788),
83 Sample::I32(387867788),
84 Sample::I32(387867788),
85 Sample::I32(387867777),
86 Sample::I32(387867788),
87 Sample::I32(387867788),
88 Sample::I32(387867788),
89 Sample::I32(387867788),
90 Sample::I32(387867788),
91 Sample::I32(387867788),
92 Sample::I32(387867788),
93 ];
94
95 LDWriter::new(&mut file, header)
96 .with_channel(channel0_meta, channel0_samples)
97 .with_channel(gps_lat_meta, gps_lat_samples)
98 .write()?;
99
100 Ok(())
101}