added own main

This commit is contained in:
lkoester 2022-12-21 18:44:33 +01:00
parent 6b7c3dda97
commit 154e4ef4ce
3 changed files with 62 additions and 6 deletions

33
src/can.rs Normal file
View 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
}

View File

@ -1,6 +1,11 @@
#![allow(dead_code)]
mod ccsds;
mod pus;
mod tmtc;
#[cfg(target_os = "unix")]
mod can;
use crate::tmtc::{core_tmtc_task, CoreTmtcArgs, TmStore, PUS_APID};
use satrs_core::event_man::{
@ -20,7 +25,8 @@ use satrs_core::pus::{EcssTmError, EcssTmSender};
use satrs_core::seq_count::SimpleSeqCountProvider;
use satrs_core::tmtc::CcsdsError;
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 std::net::{IpAddr, SocketAddr};
use std::sync::mpsc::channel;
@ -105,6 +111,8 @@ fn main() {
let core_args = CoreTmtcArgs {
tm_store: tm_store_helper.clone(),
tm_sender: tm_funnel_tx.clone(),
// can_tm_sender: tm_funnel_tx.clone(),
// can_tm_store: tm_store_helper.clone(),
event_sender,
event_request_tx,
};
@ -134,7 +142,7 @@ fn main() {
let jh2 = thread::spawn(move || {
let mut timestamp: [u8; 7] = [0; 7];
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]| {
reporter1
.completion_success(event_req.token, timestamp)
@ -168,12 +176,13 @@ fn main() {
}
});
own_main();
jh0.join().expect("Joining UDP TMTC server thread failed");
jh1.join().expect("Joining TM Funnel 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
.update_from_now()
.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)
.expect("Writing timestamp failed");
}
fn own_main() {
}

View File

@ -10,7 +10,8 @@ use satrs_core::tmtc::tm_helper::PusTmWithCdsShortHelper;
use satrs_core::tmtc::PusServiceProvider;
use spacepackets::ecss::{EcssEnumU16, PusPacket};
use spacepackets::tc::PusTc;
use spacepackets::time::{CdsShortTimeProvider, TimeWriter};
use spacepackets::time::cds::TimeProvider;
use spacepackets::time::TimeWriter;
use spacepackets::SpHeader;
use std::sync::mpsc;
@ -20,7 +21,7 @@ pub struct PusReceiver {
pub tm_store: TmStore,
pub verif_reporter: StdVerifReporterWithSender,
event_request_tx: mpsc::Sender<EventRequestWithToken>,
stamper: CdsShortTimeProvider,
stamper: TimeProvider,
time_stamp: [u8; 7],
}
@ -38,7 +39,7 @@ impl PusReceiver {
tm_store,
verif_reporter,
event_request_tx,
stamper: CdsShortTimeProvider::default(),
stamper: TimeProvider::default(),
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 {
fn handle_test_service(&mut self, pus_tc: &PusTc, token: VerificationToken<TcStateAccepted>) {
if pus_tc.subservice() == 1 {