file_read_write/
file_read_write.rs1use std::env;
2use std::fs::OpenOptions;
3use std::io::SeekFrom;
4use std::io::prelude::*;
5
6extern crate robust_arduino_serial;
7use robust_arduino_serial::*;
8
9
10fn main() {
11 let args: Vec<String> = env::args().skip(1).collect();
12 if args.len() < 1
13 {
14 panic!("Please provide a filename as argument");
15 }
16 let filename = &args[0];
17 let mut file = match OpenOptions::new().read(true).write(true).create(true).open(filename)
19 {
20 Err(why) => panic!("Could not open file {}: {}", filename, why),
21 Ok(file) => file
22 };
23
24 write_order(&mut file, Order::HELLO).unwrap();
26
27 let motor_order = Order::MOTOR as i8;
28 let motor_speed: i16 = -56;
29 write_i8(&mut file, motor_order).unwrap();
30 write_i16(&mut file, motor_speed).unwrap();
31 write_i32(&mut file, 131072).unwrap();
32
33 file.seek(SeekFrom::Start(0)).unwrap();
35
36 for _ in 0..2 {
37 let order = read_i8(&mut file).unwrap();
39 println!("Ordered received: {:?}", order);
40
41 if let Some(received_order) = Order::from_i8(order)
42 {
43 println!("Known order: {:?}", received_order);
44 match received_order
45 {
46 Order::MOTOR => {
47 let motor_speed = read_i16(&mut file).unwrap();
48 println!("Motor Speed = {}", motor_speed);
49 let test = read_i32(&mut file).unwrap();
50 println!("test = {}", test);
51 },
52 _ => ()
53 }
54 }
55 else
56 {
57 println!("Unknown order: {:?}", order);
58 }
59 }
60}