elevator drivers
parent
29b2f93243
commit
b4796c1566
@ -0,0 +1,6 @@
|
||||
|
||||
int elevator1_poll_floor_request()
|
||||
{
|
||||
//real implementation would interface with hardware here
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
|
||||
int elevator1_poll_floor_request()
|
||||
{
|
||||
//real implementation would interface with hardware here
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
|
||||
int elevator1_poll_floor_request()
|
||||
{
|
||||
//real implementation would interface with hardware here
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
use libc::c_int;
|
||||
|
||||
#[link(name = "elevator1")]
|
||||
extern {
|
||||
pub fn elevator1_poll_floor_request() -> c_int;
|
||||
}
|
||||
|
||||
#[link(name = "elevator2")]
|
||||
extern {
|
||||
pub fn elevator2_poll_floor_request() -> c_int;
|
||||
}
|
||||
|
||||
#[link(name = "elevator3")]
|
||||
extern {
|
||||
pub fn elevator3_poll_floor_request() -> c_int;
|
||||
}
|
||||
|
||||
pub trait ElevatorDriver
|
||||
{
|
||||
fn poll_floor_request(&self) -> Option<u64>;
|
||||
}
|
||||
|
||||
pub struct ElevatorDriver1;
|
||||
impl ElevatorDriver for ElevatorDriver1
|
||||
{
|
||||
fn poll_floor_request(&self) -> Option<u64>
|
||||
{
|
||||
unsafe {
|
||||
let req = elevator1_poll_floor_request();
|
||||
if req > 0 {
|
||||
Some(req as u64)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ElevatorDriver2;
|
||||
impl ElevatorDriver for ElevatorDriver2
|
||||
{
|
||||
fn poll_floor_request(&self) -> Option<u64>
|
||||
{
|
||||
unsafe {
|
||||
let req = elevator2_poll_floor_request();
|
||||
if req > 0 {
|
||||
Some(req as u64)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ElevatorDriver3;
|
||||
impl ElevatorDriver for ElevatorDriver3
|
||||
{
|
||||
fn poll_floor_request(&self) -> Option<u64>
|
||||
{
|
||||
unsafe {
|
||||
let req = elevator3_poll_floor_request();
|
||||
if req > 0 {
|
||||
Some(req as u64)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue