implement card model
This commit is contained in:
+30
-7
@@ -1,5 +1,7 @@
|
||||
use alloc::string::{String, ToString};
|
||||
use core::fmt::Display;
|
||||
|
||||
use crate::card::model::NfcPayload;
|
||||
use alloc::string::{String, ToString};
|
||||
|
||||
pub fn split_nfc_hex(payload: &[u8]) -> Option<NfcPayload<'_>> {
|
||||
if payload.len() < 0x35A {
|
||||
@@ -18,13 +20,34 @@ pub fn split_nfc_hex(payload: &[u8]) -> Option<NfcPayload<'_>> {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn decode_known_event(event_encoding: &[u8]) -> Option<&'static str> {
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Events {
|
||||
CCC39,
|
||||
CCC40,
|
||||
GPN24,
|
||||
GPN25,
|
||||
Unknown,
|
||||
}
|
||||
|
||||
impl Display for Events {
|
||||
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||
match *self {
|
||||
Events::CCC39 => write!(f, "39C3"),
|
||||
Events::CCC40 => write!(f, "40C3"),
|
||||
Events::GPN24 => write!(f, "GPN24"),
|
||||
Events::GPN25 => write!(f, "GPN25"),
|
||||
Events::Unknown => write!(f, "Unknown"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn decode_known_event(event_encoding: &[u8]) -> Events {
|
||||
match event_encoding {
|
||||
[0x39, 0xC3] => Some("39C3"),
|
||||
[0x40, 0xC3] => Some("40C3"), // future proofing :)
|
||||
[0xE9, 0x24] => Some("GPN 24"),
|
||||
[0xE9, 0x25] => Some("GPN 25"), // future proofing :)
|
||||
_ => None,
|
||||
[0x39, 0xC3] => Events::CCC39,
|
||||
[0x40, 0xC3] => Events::CCC40, // future proofing :)
|
||||
[0xE9, 0x24] => Events::GPN24,
|
||||
[0xE9, 0x25] => Events::GPN25, // future proofing :)
|
||||
_ => Events::Unknown,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user