diff --git a/examples/nfct_test.rs b/examples/nfct_test.rs deleted file mode 100644 index 42176cd..0000000 --- a/examples/nfct_test.rs +++ /dev/null @@ -1,69 +0,0 @@ -#![no_std] - -extern crate alloc; -extern crate lang_items; - -use core::fmt::Write; -use libtock_drivers::console::Console; -use libtock_drivers::nfc::NfcTag; - -#[allow(dead_code)] -/// Helper function to write a slice into a fixed -/// length transmission buffer. -fn write_tx_buffer(buf: &mut [u8], slice: &[u8]) { - for (i, &byte) in slice.iter().enumerate() { - buf[i] = byte; - } -} - -fn main() { - let mut console = Console::new(); - - writeln!(console, "****************************************").unwrap(); - writeln!(console, "nfct_test application is installed").unwrap(); - - // 1. Configure Type 4 tag - if NfcTag::configure(4) { - writeln!(console, " -- TAG CONFIGURED").unwrap(); - } - // 2. Subscribe to a SELECTED CALLBACK - if NfcTag::selected() { - writeln!(console, " -- TAG SELECTED").unwrap(); - // 0xfffff results in 1048575 / 13.56e6 = 77ms - NfcTag::set_framedelaymax(0xfffff); - } - /* - [_.] TODO: Enable Tag emulation (currently the tag is always activated) - needs field detection support in the driver level. - */ - let mut rx_buf = [0; 64]; - let mut unknown_cmd_cntr = 0; - loop { - NfcTag::receive(&mut rx_buf); - match rx_buf[0] { - 0xe0 /* RATS */=> { - let mut answer_to_select = [0x05, 0x78, 0x80, 0xB1, 0x00]; - let amount = answer_to_select.len(); - NfcTag::transmit(&mut answer_to_select, amount); - } - 0xc2 /* DESELECT */ => { - // Ignore the request - let mut command_error = [0x6A, 0x81]; - let amount = command_error.len(); - NfcTag::transmit(&mut command_error, amount); - } - 0x02 | 0x03 /* APDU Prefix */ => { - let mut reply = [rx_buf[0], 0x90, 0x00]; - let amount = reply.len(); - NfcTag::transmit(&mut reply, amount); - } - _ => { - unknown_cmd_cntr += 1; - } - } - if unknown_cmd_cntr > 50 { - break; - } - } - writeln!(console, "****************************************").unwrap(); -}