foxmark3 0.1.1

Send/receive Proxmark 3 commands
Documentation
//! An example which attempts to read an ISO/IEC 14443 type A card from atop the HF antenna

use foxmark3::commands::iso14443a::CardSelectError;

fn main() {
    tracing_subscriber::fmt()
        .with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
        .init();

    let path = {
        let mut args = std::env::args();
        args.next();

        match (args.next(), args.next()) {
            (None, _) | (_, Some(_)) => {
                eprintln!("Usage: iso14443a [PATH]");
                return;
            }
            (Some(path), None) => path,
        }
    };

    let mut pm3 = foxmark3::new(path).expect("connecting to device");
    match pm3.read_iso14443a() {
        Ok(x) => println!("{x}"),
        Err(CardSelectError::Proxmark(e)) => panic!("{e}: iso14443a card selection"),
        Err(e) => eprintln!("{e}"),
    }
}