All RSIS apps/models should use this library as the means to integrate into the RSIS framework.
This crate exposes a single trait meant for both the RSIS scheduler implementation, and as for what any RSIS app should expect to be able to interact with.
pub trait Framework : Send {
fn get_simtick(&self) -> i64;
fn get_simtime(&self) -> f64;
fn request_rx(&mut self, id : i64) -> Option<Box<dyn ChannelRx>>;
fn request_tx(&mut self, id : i64) -> Box<dyn ChannelTx>;
}
get_simtick
will return a 0-based integer referring to the actual tick of time of the scheduler.
get_simtime
will return a floating value representing the simulation time. This does not have to correspond to the value of get_simtick
multiplied by the time delta.
request_rx
and request_tx
are meant to be called in the initialization step for an app. They return structures that allow for apps to interact with the dynamic messaging system built on top of rust's mspc
toolkit.