+int usage_hf_14b_info(void){
+ PrintAndLog("Usage: hf 14b info [h] [s]");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog(" s silently");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b info");
+ return 0;
+}
+int usage_hf_14b_reader(void){
+ PrintAndLog("Usage: hf 14b reader [h] [s]");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog(" s silently");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b reader");
+ return 0;
+}
+int usage_hf_14b_raw(void){
+ PrintAndLog("Usage: hf 14b raw [-h] [-r] [-c] [-p] [-s || -ss] <0A 0B 0C ... hex>");
+ PrintAndLog("Options:");
+ PrintAndLog(" -h this help");
+ PrintAndLog(" -r do not read response");
+ PrintAndLog(" -c calculate and append CRC");
+ PrintAndLog(" -p leave the field on after receive");
+ PrintAndLog(" -s active signal field ON with select");
+ PrintAndLog(" -ss active signal field ON with select for SRx ST Microelectronics tags");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b raw -s -c -p 0200a40400");
+ return 0;
+}
+int usage_hf_14b_snoop(void){
+ PrintAndLog("It get data from the field and saves it into command buffer.");
+ PrintAndLog("Buffer accessible from command 'hf list 14b'");
+ PrintAndLog("Usage: hf 14b snoop [h]");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b snoop");
+ return 0;
+}
+int usage_hf_14b_sim(void){
+ PrintAndLog("Emulating ISO/IEC 14443 type B tag with 4 UID / PUPI");
+ PrintAndLog("Usage: hf 14b sim [h] u <uid>");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog(" u 4byte UID/PUPI");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b sim");
+ PrintAndLog(" hf 14b sim u 11223344");
+ return 0;
+}
+int usage_hf_14b_read_srx(void){
+ PrintAndLog("Usage: hf 14b read [h] <1|2>");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog(" <1|2> 1 = SRIX4K , 2 = SRI512");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b read 1");
+ PrintAndLog(" hf 14b read 2");
+ return 0;
+}
+int usage_hf_14b_write_srx(void){
+ PrintAndLog("Usage: hf 14b [h] write <1|2> <BLOCK> <DATA>");
+ PrintAndLog("Options:");
+ PrintAndLog(" h this help");
+ PrintAndLog(" <1|2> 1 = SRIX4K , 2 = SRI512");
+ PrintAndLog(" <block> BLOCK number depends on tag, special block == FF");
+ PrintAndLog(" <data> hex bytes of data to be written");
+ PrintAndLog("sample:");
+ PrintAndLog(" hf 14b write 1 7F 11223344");
+ PrintAndLog(" hf 14b write 1 FF 11223344");
+ PrintAndLog(" hf 14b write 2 15 11223344");
+ PrintAndLog(" hf 14b write 2 FF 11223344");
+ return 0;
+}
+
+static void switch_on_field_14b(void) {
+ UsbCommand c = {CMD_ISO_14443B_COMMAND, {ISO14B_CONNECT, 0, 0}};
+ clearCommandBuffer();
+ SendCommand(&c);
+}