diff options
| author | Yuval Adam <_@yuv.al> | 2018-07-29 17:27:27 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-07-29 17:27:27 +0300 |
| commit | 59e2ae68353648364ba128ca6079157794eae1fc (patch) | |
| tree | fff5326a2e567aad5a1e8bba2bc85d1d2640bb1f /src/devices | |
| parent | e3f2a44ed678bc8de6748fc0af3540f881871e1f (diff) | |
Refactor DeviceInfo struct and impls
Diffstat (limited to 'src/devices')
| -rw-r--r-- | src/devices/fc0013.rs | 23 | ||||
| -rw-r--r-- | src/devices/mod.rs | 6 | ||||
| -rw-r--r-- | src/devices/r820t.rs | 23 |
3 files changed, 47 insertions, 5 deletions
diff --git a/src/devices/fc0013.rs b/src/devices/fc0013.rs index 6482eee..2af58fb 100644 --- a/src/devices/fc0013.rs +++ b/src/devices/fc0013.rs @@ -1,8 +1,27 @@ -use super::Device; +use super::{DeviceInfo, Actions}; -pub const FC0013: Device = Device { +pub struct FC0013 { + device: DeviceInfo +} + +pub const DEVICE_INFO: DeviceInfo = DeviceInfo { + id: "fc0013", name: "Fitipower FC0013", i2c_addr: 0xc6, check_addr: 0x00, check_val: 0xa3 }; + +impl FC0013 { + fn new() -> FC0013 { + FC0013 { + device: DEVICE_INFO + } + } +} + +impl Actions for FC0013 { + fn init(&self) { + println!("Init {}", self.device.name); + } +} diff --git a/src/devices/mod.rs b/src/devices/mod.rs index 3290f72..450957d 100644 --- a/src/devices/mod.rs +++ b/src/devices/mod.rs @@ -1,10 +1,14 @@ pub mod fc0013; pub mod r820t; -pub struct Device { +pub struct DeviceInfo { + pub id: &'static str, pub name: &'static str, pub i2c_addr: u8, pub check_addr: u8, pub check_val: u8 } +pub trait Actions { + fn init(&self); +} diff --git a/src/devices/r820t.rs b/src/devices/r820t.rs index 70fad38..ffea7a0 100644 --- a/src/devices/r820t.rs +++ b/src/devices/r820t.rs @@ -1,8 +1,27 @@ -use super::Device; +use super::{DeviceInfo, Actions}; -pub const R820T: Device = Device { +pub struct R820T { + device: DeviceInfo +} + +pub const DEVICE_INFO: DeviceInfo = DeviceInfo { + id: "r820t", name: "Rafael Micro R820T", i2c_addr: 0x34, check_addr: 0x00, check_val: 0x69 }; + +impl R820T { + fn new() -> R820T { + R820T { + device: DEVICE_INFO + } + } +} + +impl Actions for R820T { + fn init(&self) { + println!("Init {}", self.device.name); + } +} |
