forked from ROMEO/obsw
working on thread safety, preparing for static RTOS
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
#![no_std]
|
||||
|
||||
//TODO look into using core::ffi (some types do not seem to work)
|
||||
//TODO os errors in API calls
|
||||
//TODO look into a pattern for late initialized stuff, currently using Option (can we make it compile time safe?)
|
||||
|
||||
@ -60,7 +59,7 @@ impl datasets::HasTypeId for HandlerData {}
|
||||
|
||||
struct Handler {
|
||||
id: objectmanager::ObjectId,
|
||||
command_queue: queues::MessageQueue,
|
||||
command_queue: queues::MessageQueue<10>,
|
||||
data: datasets::OwnedDataset<HandlerData>
|
||||
}
|
||||
|
||||
@ -94,8 +93,8 @@ impl tasks::ExecutableObjectIF for Handler {
|
||||
sifln!("Handler {} performs", self.id);
|
||||
let result = self.command_queue.receive();
|
||||
match result {
|
||||
Ok(message) => self.handle_message(message),
|
||||
Err(_) => {
|
||||
Some(message) => self.handle_message(message),
|
||||
None => {
|
||||
sifln!("Handler {} got nothing", self.id);
|
||||
}
|
||||
}
|
||||
@ -149,8 +148,9 @@ impl DatapoolOwnerIF for HandlerSender {}
|
||||
|
||||
impl SystemObjectIF for HandlerSender {
|
||||
fn get_command_queue(&self) -> crate::fsrc::queues::MessageQueueSender {
|
||||
queues::MessageQueueSender::new()
|
||||
queues::MessageQueueSender::new() //TODO
|
||||
}
|
||||
|
||||
fn get_id(&self) -> objectmanager::ObjectId {
|
||||
self.id
|
||||
}
|
||||
@ -173,7 +173,7 @@ fn mission() {
|
||||
|
||||
let mut h1 = Handler {
|
||||
id: 1,
|
||||
command_queue: queues::MessageQueue::new(5),
|
||||
command_queue: queues::MessageQueue::new(),
|
||||
data: datasets::OwnedDataset::new()
|
||||
};
|
||||
let mut h2 = HandlerSender {
|
||||
|
Reference in New Issue
Block a user