pub struct CRFrame {
pub index: HashMap<String, (u64, CRFrameObjectType)>,
pub bytestorage: Vec<u8>,
pub tof_paddles: Arc<HashMap<u8, TofPaddle>>,
pub trk_strips: Arc<HashMap<u32, TrackerStrip>>,
pub trk_masks: Arc<HashMap<u32, TrackerStripMask>>,
pub trk_ped: Arc<HashMap<u32, TrackerStripPedestal>>,
pub trk_tf: Arc<HashMap<u32, TrackerStripTransferFunction>>,
pub trk_cmn: Arc<HashMap<u32, TrackerStripCmnNoise>>,
pub do_trk_calib: bool,
pub subtract_trk_cmn: bool,
pub timestamp: Option<f64>,
}Expand description
The central data container of the caraspace suite.
A CRFrame can hold multiple CRFrameObjects and is basically a little sclerite of the entire skeleton.
Fields§
§index: HashMap<String, (u64, CRFrameObjectType)>§bytestorage: Vec<u8>§tof_paddles: Arc<HashMap<u8, TofPaddle>>§trk_strips: Arc<HashMap<u32, TrackerStrip>>§trk_masks: Arc<HashMap<u32, TrackerStripMask>>§trk_ped: Arc<HashMap<u32, TrackerStripPedestal>>§trk_tf: Arc<HashMap<u32, TrackerStripTransferFunction>>§trk_cmn: Arc<HashMap<u32, TrackerStripCmnNoise>>§do_trk_calib: boolTRK calibration - convert to energy
subtract_trk_cmn: boolTRK subtract CMN
timestamp: Option<f64>Implementations§
Source§impl CRFrame
impl CRFrame
pub fn new() -> Self
Sourcepub fn get_tracker_hitseries(
&self,
source: TrackerHitSource,
name: Option<String>,
) -> Result<Vec<TrackerHit>, SerializationError>
pub fn get_tracker_hitseries( &self, source: TrackerHitSource, name: Option<String>, ) -> Result<Vec<TrackerHit>, SerializationError>
Extract trackerhits across the frame.
Sources for tracker hits can either be the regular TelemetryEvents, or all the different TrackerHits.
pub fn get_telemetrypacket_gcutime_range(&self) -> Option<(f64, f64, f64)>
pub fn serialize_index(&self) -> Vec<u8> ⓘ
pub fn string_to_bytes(value: String) -> Vec<u8> ⓘ
pub fn parse_index( stream: &Vec<u8>, pos: &mut usize, ) -> HashMap<String, (u64, CRFrameObjectType)>
Sourcepub fn put<T: Serialization + Frameable>(&mut self, object: T, name: &str)
pub fn put<T: Serialization + Frameable>(&mut self, object: T, name: &str)
Store any eligible object in the frame
Eligible object must implement the “Frameable” trait
Sourcepub fn has(&self, name: &str) -> bool
pub fn has(&self, name: &str) -> bool
Check if the frame contains an object with the given name
§Arguments:
- name : The name of the object as it appears in the index
Sourcepub fn get_telemetry_event_names(&self) -> Vec<&str>
pub fn get_telemetry_event_names(&self) -> Vec<&str>
A list of TelemetryEvents (fka MergedEvent) in the frame
pub fn get_fobject( &self, name: &str, ) -> Result<CRFrameObject, SerializationError>
Sourcepub fn get_first_gcutime(&self) -> Option<f64>
pub fn get_first_gcutime(&self) -> Option<f64>
A check if the frame contains anything which is a telemetrypacket. This can be used to check if we can get the time of the telemetrypacket directly
pub fn get<T: Serialization + Frameable>( &self, name: &str, ) -> Result<T, SerializationError>
Sourcepub fn show_frame(&self) -> String
pub fn show_frame(&self) -> String
A verbose display of the frame content
Trait Implementations§
Source§impl DataReader<CRFrame> for CRReader
impl DataReader<CRFrame> for CRReader
Source§fn prime_next_file(&mut self) -> Option<usize>
fn prime_next_file(&mut self) -> Option<usize>
Get the next file ready
fn get_header0(&self) -> u8
fn get_header1(&self) -> u8
Source§fn get_file_idx(&self) -> usize
fn get_file_idx(&self) -> usize
Source§fn set_file_idx(&mut self, file_idx: usize)
fn set_file_idx(&mut self, file_idx: usize)
Source§fn get_filenames(&self) -> &Vec<String>
fn get_filenames(&self) -> &Vec<String>
Source§fn set_cursor(&mut self, pos: usize)
fn set_cursor(&mut self, pos: usize)
Source§fn set_file_reader(&mut self, reader: BufReader<File>)
fn set_file_reader(&mut self, reader: BufReader<File>)
Source§fn read_next(&mut self) -> Option<CRFrame>
fn read_next(&mut self) -> Option<CRFrame>
Source§fn get_current_filename(&self) -> Option<&str>
fn get_current_filename(&self) -> Option<&str>
Source§fn first(&mut self) -> Option<T>
fn first(&mut self) -> Option<T>
Source§impl Serialization for CRFrame
impl Serialization for CRFrame
Source§fn from_bytestream(
stream: &Vec<u8>,
pos: &mut usize,
) -> Result<Self, SerializationError>
fn from_bytestream( stream: &Vec<u8>, pos: &mut usize, ) -> Result<Self, SerializationError>
Decode a serializable from a bytestream
Source§const SIZE: usize = 0
const SIZE: usize = 0
Source§fn guess_size(
stream: &Vec<u8>,
pos: usize,
offset: usize,
) -> Result<(usize, usize, usize), SerializationError>
fn guess_size( stream: &Vec<u8>, pos: usize, offset: usize, ) -> Result<(usize, usize, usize), SerializationError>
Source§fn verify_fixed(
stream: &Vec<u8>,
pos: &mut usize,
) -> Result<(), SerializationError>
fn verify_fixed( stream: &Vec<u8>, pos: &mut usize, ) -> Result<(), SerializationError>
Source§fn from_bytestream_alt(
bytestream: &Vec<u8>,
pos: &mut usize,
) -> Result<Self, SerializationError>where
Self: Sized,
fn from_bytestream_alt(
bytestream: &Vec<u8>,
pos: &mut usize,
) -> Result<Self, SerializationError>where
Self: Sized,
Auto Trait Implementations§
impl Freeze for CRFrame
impl RefUnwindSafe for CRFrame
impl Send for CRFrame
impl Sync for CRFrame
impl Unpin for CRFrame
impl UnsafeUnpin for CRFrame
impl UnwindSafe for CRFrame
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Source§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self to an expression for Diesel’s query builder. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.