added own main
This commit is contained in:
parent
6b7c3dda97
commit
154e4ef4ce
33
src/can.rs
Normal file
33
src/can.rs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
use std::sync::Receiver;
|
||||||
|
use std::sync::Sender;
|
||||||
|
use satrs_core::pool::StoreAddr;
|
||||||
|
#[cfg(feature = "can")]
|
||||||
|
use socketcan;
|
||||||
|
use crate::tmtc::TmStore;
|
||||||
|
|
||||||
|
struct CanThreadArgs {
|
||||||
|
rx_can_request: Receiver<HkRequest>,
|
||||||
|
tm_sender: Sender<StoreAddr>,
|
||||||
|
tm_store: TmStore,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub type CollInterval = u32;
|
||||||
|
pub enum HkIds {
|
||||||
|
AcsHk = 0
|
||||||
|
}
|
||||||
|
pub enum HkRequest {
|
||||||
|
OneShot(HkIds),
|
||||||
|
Enable(HkIds, CollInterval), // periodic
|
||||||
|
Disable(HkIds, CollInterval)
|
||||||
|
}
|
||||||
|
|
||||||
|
// impl CanThreadArgs {
|
||||||
|
// fn operation(&self) {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
fn can_thread(canthreadargs: CanThreadArgs) {
|
||||||
|
// handle tc requests
|
||||||
|
// request from devices
|
||||||
|
// send tms
|
||||||
|
}
|
19
src/main.rs
19
src/main.rs
@ -1,6 +1,11 @@
|
|||||||
|
#![allow(dead_code)]
|
||||||
mod ccsds;
|
mod ccsds;
|
||||||
mod pus;
|
mod pus;
|
||||||
mod tmtc;
|
mod tmtc;
|
||||||
|
#[cfg(target_os = "unix")]
|
||||||
|
mod can;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use crate::tmtc::{core_tmtc_task, CoreTmtcArgs, TmStore, PUS_APID};
|
use crate::tmtc::{core_tmtc_task, CoreTmtcArgs, TmStore, PUS_APID};
|
||||||
use satrs_core::event_man::{
|
use satrs_core::event_man::{
|
||||||
@ -20,7 +25,8 @@ use satrs_core::pus::{EcssTmError, EcssTmSender};
|
|||||||
use satrs_core::seq_count::SimpleSeqCountProvider;
|
use satrs_core::seq_count::SimpleSeqCountProvider;
|
||||||
use satrs_core::tmtc::CcsdsError;
|
use satrs_core::tmtc::CcsdsError;
|
||||||
use eurosim_obsw::{OBSW_SERVER_ADDR, SERVER_PORT};
|
use eurosim_obsw::{OBSW_SERVER_ADDR, SERVER_PORT};
|
||||||
use spacepackets::time::{CdsShortTimeProvider, TimeWriter};
|
use spacepackets::time::cds::TimeProvider;
|
||||||
|
use spacepackets::time::TimeWriter;
|
||||||
use spacepackets::tm::PusTm;
|
use spacepackets::tm::PusTm;
|
||||||
use std::net::{IpAddr, SocketAddr};
|
use std::net::{IpAddr, SocketAddr};
|
||||||
use std::sync::mpsc::channel;
|
use std::sync::mpsc::channel;
|
||||||
@ -105,6 +111,8 @@ fn main() {
|
|||||||
let core_args = CoreTmtcArgs {
|
let core_args = CoreTmtcArgs {
|
||||||
tm_store: tm_store_helper.clone(),
|
tm_store: tm_store_helper.clone(),
|
||||||
tm_sender: tm_funnel_tx.clone(),
|
tm_sender: tm_funnel_tx.clone(),
|
||||||
|
// can_tm_sender: tm_funnel_tx.clone(),
|
||||||
|
// can_tm_store: tm_store_helper.clone(),
|
||||||
event_sender,
|
event_sender,
|
||||||
event_request_tx,
|
event_request_tx,
|
||||||
};
|
};
|
||||||
@ -134,7 +142,7 @@ fn main() {
|
|||||||
let jh2 = thread::spawn(move || {
|
let jh2 = thread::spawn(move || {
|
||||||
let mut timestamp: [u8; 7] = [0; 7];
|
let mut timestamp: [u8; 7] = [0; 7];
|
||||||
let mut sender = EventTmSender::new(tm_store_helper, tm_funnel_tx);
|
let mut sender = EventTmSender::new(tm_store_helper, tm_funnel_tx);
|
||||||
let mut time_provider = CdsShortTimeProvider::new(0, 0);
|
let mut time_provider = TimeProvider::new_with_u16_days(0, 0);
|
||||||
let mut report_completion = |event_req: EventRequestWithToken, timestamp: &[u8]| {
|
let mut report_completion = |event_req: EventRequestWithToken, timestamp: &[u8]| {
|
||||||
reporter1
|
reporter1
|
||||||
.completion_success(event_req.token, timestamp)
|
.completion_success(event_req.token, timestamp)
|
||||||
@ -168,12 +176,13 @@ fn main() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
own_main();
|
||||||
jh0.join().expect("Joining UDP TMTC server thread failed");
|
jh0.join().expect("Joining UDP TMTC server thread failed");
|
||||||
jh1.join().expect("Joining TM Funnel thread failed");
|
jh1.join().expect("Joining TM Funnel thread failed");
|
||||||
jh2.join().expect("Joining Event Manager thread failed");
|
jh2.join().expect("Joining Event Manager thread failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_time(time_provider: &mut CdsShortTimeProvider, timestamp: &mut [u8]) {
|
pub fn update_time(time_provider: &mut TimeProvider, timestamp: &mut [u8]) {
|
||||||
time_provider
|
time_provider
|
||||||
.update_from_now()
|
.update_from_now()
|
||||||
.expect("Could not get current time");
|
.expect("Could not get current time");
|
||||||
@ -181,3 +190,7 @@ pub fn update_time(time_provider: &mut CdsShortTimeProvider, timestamp: &mut [u8
|
|||||||
.write_to_bytes(timestamp)
|
.write_to_bytes(timestamp)
|
||||||
.expect("Writing timestamp failed");
|
.expect("Writing timestamp failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn own_main() {
|
||||||
|
|
||||||
|
}
|
||||||
|
16
src/pus.rs
16
src/pus.rs
@ -10,7 +10,8 @@ use satrs_core::tmtc::tm_helper::PusTmWithCdsShortHelper;
|
|||||||
use satrs_core::tmtc::PusServiceProvider;
|
use satrs_core::tmtc::PusServiceProvider;
|
||||||
use spacepackets::ecss::{EcssEnumU16, PusPacket};
|
use spacepackets::ecss::{EcssEnumU16, PusPacket};
|
||||||
use spacepackets::tc::PusTc;
|
use spacepackets::tc::PusTc;
|
||||||
use spacepackets::time::{CdsShortTimeProvider, TimeWriter};
|
use spacepackets::time::cds::TimeProvider;
|
||||||
|
use spacepackets::time::TimeWriter;
|
||||||
use spacepackets::SpHeader;
|
use spacepackets::SpHeader;
|
||||||
use std::sync::mpsc;
|
use std::sync::mpsc;
|
||||||
|
|
||||||
@ -20,7 +21,7 @@ pub struct PusReceiver {
|
|||||||
pub tm_store: TmStore,
|
pub tm_store: TmStore,
|
||||||
pub verif_reporter: StdVerifReporterWithSender,
|
pub verif_reporter: StdVerifReporterWithSender,
|
||||||
event_request_tx: mpsc::Sender<EventRequestWithToken>,
|
event_request_tx: mpsc::Sender<EventRequestWithToken>,
|
||||||
stamper: CdsShortTimeProvider,
|
stamper: TimeProvider,
|
||||||
time_stamp: [u8; 7],
|
time_stamp: [u8; 7],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ impl PusReceiver {
|
|||||||
tm_store,
|
tm_store,
|
||||||
verif_reporter,
|
verif_reporter,
|
||||||
event_request_tx,
|
event_request_tx,
|
||||||
stamper: CdsShortTimeProvider::default(),
|
stamper: TimeProvider::default(),
|
||||||
time_stamp: [0; 7],
|
time_stamp: [0; 7],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -71,6 +72,15 @@ impl PusServiceProvider for PusReceiver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub type CollInterval = u32;
|
||||||
|
pub enum HkIds {
|
||||||
|
AcsHk = 0
|
||||||
|
}
|
||||||
|
pub enum HkRequest {
|
||||||
|
OneShot(HkIds),
|
||||||
|
Enable(HkIds, CollInterval), // periodic
|
||||||
|
Disable(HkIds, CollInterval)
|
||||||
|
}
|
||||||
impl PusReceiver {
|
impl PusReceiver {
|
||||||
fn handle_test_service(&mut self, pus_tc: &PusTc, token: VerificationToken<TcStateAccepted>) {
|
fn handle_test_service(&mut self, pus_tc: &PusTc, token: VerificationToken<TcStateAccepted>) {
|
||||||
if pus_tc.subservice() == 1 {
|
if pus_tc.subservice() == 1 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user