public byte[] PerformRawCommand(byte[] command) { ushort length = (ushort)command.Length; byte[] response = new byte[ushort.MaxValue]; ushort responseLength = 0; bool result = FeliCaNfcDllWrapperClass.FeliCaLibNfcThru(command, length, response, ref responseLength); if (!result) { throw new FeliCaException(); } Array.Resize <byte>(ref response, responseLength); return(response); }
/// <summary> /// NFCコマンドの送受信 /// </summary> /// <param name="data">コマンドパケット</param> /// <param name="length">データ長</param> /// <param name="outLen">受信データ長</param> private void NfcCommand(byte[] data, ushort length, out UInt16 outLen) { outLen = 0; bool bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcThru( data, length, res, ref outLen); if (bRet == false) { StopAccess(); Debug.Write("Failed: FeliCaLibNfcThru\n"); throw GetMfException(); } Debug.Write("Success: FeliCaLibNfcThru\n"); }
static Int32 Main(string[] args) { bool bRet = false; String msg_str_of_find = "find"; String msg_str_of_enable = "enable"; ListenerWindow lw = new ListenerWindow(); UInt32 card_find_message = RegisterWindowMessage(msg_str_of_find); if (card_find_message == 0) { Console.Write("Failed: RegisterWindowMessage\n"); return(EXIT_FAILED); } UInt32 card_enable_message = RegisterWindowMessage(msg_str_of_enable); if (card_enable_message == 0) { Console.Write("Failed: RegisterWindowMessage\n"); return(EXIT_FAILED); } bRet = lw.WatchMessage(card_find_message); if (bRet == false) { Console.Write("Failed: WatchMessage\n"); return(EXIT_FAILED); } bRet = lw.WatchMessage(card_enable_message); if (bRet == false) { Console.Write("Failed: WatchMessage\n"); return(EXIT_FAILED); } MessageHandler messageHandler = new MessageHandler(card_find_message, card_enable_message); lw.handler += new MessageReceivedEventHandler(messageHandler.messageHandlerFunc); bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcInitialize(); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcInitialize\n"); ErrorRoutine(); return(EXIT_FAILED); } StringBuilder port_name = new StringBuilder("USB0"); bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcOpen(port_name); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcOpen\n"); ErrorRoutine(); return(EXIT_FAILED); } bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcSetPollCallbackParameters( lw.Handle, msg_str_of_find, msg_str_of_enable); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcSetPollCallbackParameters\n"); ErrorRoutine(); return(EXIT_FAILED); } const Int32 DEVICE_TYPE_NFC_14443A_18092_106K = 0x00000001; UInt32 target_device = DEVICE_TYPE_NFC_14443A_18092_106K; bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcStartPollMode(target_device); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcStartPollMode\n"); ErrorRoutine(); return(EXIT_FAILED); } Application.Run(lw); if (messageHandler.bRet == false) { ErrorRoutine(); return(EXIT_FAILED); } byte[] command_packet_data = new byte[2] { 0x30, 0x00 }; // Command for Mifare ultralight, &H30: 16byte Reading command, &H0: Start address UInt16 command_packet_data_length = 2; byte[] response_packet_data = new byte[BUFSIZ]; UInt16 response_packet_data_length = 0x00; bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcThru( command_packet_data, command_packet_data_length, response_packet_data, ref response_packet_data_length); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcThru\n"); ErrorRoutine(); return(EXIT_FAILED); } for (Int32 idx = 0; idx < 16; idx++) { Console.Write("response_packet_data[{0}]: 0x{1:X2}\n", idx, response_packet_data[idx]); } UInt32 RE_NOTIFICATION_SAME_DEVICE = 0x00; UInt32 stop_mode = RE_NOTIFICATION_SAME_DEVICE; bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcStopDevAccess(stop_mode); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcStopDevAccess\n"); ErrorRoutine(); return(EXIT_FAILED); } bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcStopPollMode(); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcStopPollMode\n"); ErrorRoutine(); return(EXIT_FAILED); } bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcClose(); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcClose\n"); ErrorRoutine(); return(EXIT_FAILED); } bRet = FeliCaNfcDllWrapperClass.FeliCaLibNfcUninitialize(); if (bRet == false) { Console.Write("Failed: FeliCaLibNfcUninitialize\n"); ErrorRoutine(); return(EXIT_FAILED); } Console.Write("Succeed\n"); return(EXIT_SUCCEED); }