Mercurial > templog
annotate rust/src/config.rs @ 597:a440eafa84a9 rust
progress for debug
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 07 Jan 2017 00:56:39 +0800 |
parents | ca8102feaca6 |
children | d4fbfb5c46ff |
rev | line source |
---|---|
595 | 1 extern crate toml; |
2 | |
3 use serde::Serialize; | |
4 | |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
5 #[derive(Deserialize,Serialize,Debug,Clone)] |
595 | 6 #[allow(non_snake_case)] |
7 pub struct Config { | |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
8 pub SENSOR_SLEEP: u64, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
9 pub UPLOAD_SLEEP: u64, |
595 | 10 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
11 pub FRIDGE_DELAY: u64, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
12 pub FRIDGE_WORT_INVALID_TIME: u64, |
595 | 13 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
14 pub MAX_READINGS: u32, |
595 | 15 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
16 pub PARAMS_FILE: String, |
595 | 17 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
18 pub SENSOR_BASE_DIR: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
19 pub FRIDGE_GPIO_PIN: u32, |
595 | 20 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
21 pub AMBIENT_NAME: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
22 pub FRIDGE_NAME: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
23 pub WORT_NAME: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
24 pub INTERNAL_TEMPERATURE: String, |
595 | 25 |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
26 pub HMAC_KEY: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
27 pub SERVER_URL: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
28 pub UPDATE_URL: String, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
29 pub SETTINGS_URL: String, |
595 | 30 } |
31 | |
32 impl Config { | |
33 | |
34 pub fn new() -> Self { | |
35 Config { | |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
36 SENSOR_SLEEP: 5, |
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
37 UPLOAD_SLEEP: 83, |
595 | 38 |
39 FRIDGE_DELAY: 600, // 10 mins, to avoid fridge damage from frequent cycling off/on | |
40 FRIDGE_WORT_INVALID_TIME: 300, // 5 mins | |
41 | |
42 // 12 hours of "offline" readings stored | |
43 MAX_READINGS: 12*60*60 / 15, // 15 is SENSOR_SLEEP | |
44 | |
45 //PARAMS_FILE: os.path.join(os.path.dirname(__file__), "tempserver.conf") | |
46 PARAMS_FILE: "tempserver.conf".to_string(), | |
47 | |
48 SENSOR_BASE_DIR: "/sys/devices/w1_bus_master2".to_string(), | |
49 FRIDGE_GPIO_PIN: 17, | |
50 //WORT_NAME: "28-0000042cf4dd".to_string(), | |
51 //FRIDGE_NAME: "28-0000042cccc4".to_string(), | |
52 //AMBIENT_NAME: "28-0000042c6dbb".to_string(), | |
53 AMBIENT_NAME: "missingambient".to_string(), | |
54 FRIDGE_NAME: "28-0000042c6dbb".to_string(), | |
55 WORT_NAME: "28-0000042cccc4".to_string(), // was fridge | |
56 INTERNAL_TEMPERATURE: "/sys/class/thermal/thermal_zone0/temp".to_string(), | |
57 | |
58 HMAC_KEY: "a key".to_string(), | |
59 SERVER_URL: "https://evil.ucc.asn.au/~matt/templog".to_string(), | |
60 UPDATE_URL: "https://evil.ucc.asn.au/~matt/templog/update".to_string(), | |
61 SETTINGS_URL: "https://evil.ucc.asn.au/~matt/templog/get_settings".to_string(), | |
62 } | |
63 } | |
64 | |
596
ca8102feaca6
sensor takes config parameter
Matt Johnston <matt@ucc.asn.au>
parents:
595
diff
changeset
|
65 pub fn to_toml_string(&self) -> String { |
595 | 66 let mut e = toml::Encoder::new(); |
67 self.serialize(&mut e).unwrap(); | |
68 toml::Value::Table(e.toml).to_string() | |
69 } | |
597 | 70 |
71 /* | |
72 pub fn parse(&mut self, s: &str) { | |
73 let filename = "tempserver.conf"; | |
74 | |
75 let f = File::open(filename) | |
76 .map_err(|e| e.to_string()) | |
77 .and_then(|mut f| { | |
78 let mut s = String::new(); | |
79 f.read_to_string(&mut s) | |
80 .map_err(|e| e.to_string()) | |
81 .map(|_| s) | |
82 }) | |
83 .and_then(|s| { | |
84 | |
85 .map_err(|e| e.to_string()) | |
86 }); | |
87 | |
88 match f { | |
89 Ok() => { | |
90 | |
91 }, | |
92 Err(e) => { | |
93 debug!("Error loading config file {}: {}", | |
94 filename, e); | |
95 | |
96 } | |
97 } | |
98 | |
99 } | |
100 */ | |
595 | 101 } |