Beispiel #1
0
    public bool FeliCaLibNfcPollAndStartDevAccess(UInt32 timeout, out DEVICE_DATA_NFC_14443A_18092_106K deviceInfo)
    {
        IntPtr info = IntPtr.Zero;
        bool   res  = felicalib_nfc_poll_and_start_dev_access(DEVICE_TYPE_NFC_14443A_18092_106K, timeout, ref info);

        if (res)
        {
            IntPtr pDevInfo = info;
            IntPtr pDeviceData_A;
            if (IntPtr.Size == 8)
            {
                pDeviceData_A = (IntPtr)((Int64)pDevInfo
                                         + (Int64)Marshal.OffsetOf(typeof(DEVICE_INFO), "dev_info"));
            }
            else
            {
                pDeviceData_A = (IntPtr)((Int32)pDevInfo
                                         + (Int32)Marshal.OffsetOf(typeof(DEVICE_INFO), "dev_info"));
            }

            DEVICE_DATA_NFC_14443A_18092_106K deviceA =
                (DEVICE_DATA_NFC_14443A_18092_106K)
                Marshal.PtrToStructure(pDeviceData_A,
                                       typeof(DEVICE_DATA_NFC_14443A_18092_106K));
            deviceInfo = deviceA;
            return(true);
        }
        else
        {
            deviceInfo = new DEVICE_DATA_NFC_14443A_18092_106K();
            return(false);
        }
    }
Beispiel #2
0
        private void DispatchNfcAEvent(IntPtr pDeviceData)
        {
            DEVICE_DATA_NFC_14443A_18092_106K deviceData_A =
                (DEVICE_DATA_NFC_14443A_18092_106K)Marshal.PtrToStructure(pDeviceData,
                                                                          typeof(DEVICE_DATA_NFC_14443A_18092_106K));

            FeliCaNfcDllWrapperClass.FeliCaLibNfcStartDevAccess(deviceData_A.target_number);
            DiscoverNfcATag(this, new NfcAEventArgs(deviceData_A));
        }
Beispiel #3
0
            /// <summary>
            /// ポーリング結果がNFC-Aだった場合
            /// </summary>
            /// <param name="pDeviceData">DEVICE_INFO.dev_infoへのポインタ</param>
            private void detectNfcA(IntPtr pDeviceData)
            {
                DEVICE_DATA_NFC_14443A_18092_106K DeviceData_A =
                    (DEVICE_DATA_NFC_14443A_18092_106K)Marshal.PtrToStructure(pDeviceData,
                                                                              typeof(DEVICE_DATA_NFC_14443A_18092_106K));

                mTargetNumber = DeviceData_A.target_number;
                mResult       = mFeliCaNfcDllWrapperClass.FeliCaLibNfcStartDevAccess(mTargetNumber);
                if (mResult == false)
                {
                    ErrorRoutine();
                    return;
                }
                mNfcId = new byte[DeviceData_A.NFCID1_size];
                Buffer.BlockCopy(DeviceData_A.NFCID1, 0, mNfcId, 0, DeviceData_A.NFCID1_size);
                mRD            = new byte[1];
                mRD[RD_SELRES] = DeviceData_A.sel_res;
            }
Beispiel #4
0
        public void messageHandlerFunc(object sender, MessageReceivedEventArgs e)
        {
            bRet = false;
            if (e.Message.Msg == card_find_message)
            {
                IntPtr pDevInfo = e.Message.LParam;
                IntPtr pDeviceData_A;
                if (IntPtr.Size == 8)
                {
                    pDeviceData_A = (IntPtr)((Int64)pDevInfo
                                             + (Int64)Marshal.OffsetOf(typeof(DEVICE_INFO), "dev_info"));
                }
                else
                {
                    pDeviceData_A = (IntPtr)((Int32)pDevInfo
                                             + (Int32)Marshal.OffsetOf(typeof(DEVICE_INFO), "dev_info"));
                }

                DEVICE_DATA_NFC_14443A_18092_106K DeviceData_A =
                    (DEVICE_DATA_NFC_14443A_18092_106K)
                    Marshal.PtrToStructure(pDeviceData_A,
                                           typeof(DEVICE_DATA_NFC_14443A_18092_106K));

                target_number = DeviceData_A.target_number;
                bRet          = FeliCaNfcDllWrapperClass.FeliCaLibNfcStartDevAccess(target_number);
                if (bRet == false)
                {
                    Console.Write("Failed: FeliCaLibNfcStartDevAccess\n");
                    Application.Exit();
                    return;
                }
            }
            else if (e.Message.Msg == card_enable_message)
            {
                bRet = true;
                Application.Exit();
                return;
            }
            return;
        }
 public NfcAEventArgs(DEVICE_DATA_NFC_14443A_18092_106K deviceDataA)
 {
     _deviceDataA = deviceDataA;
 }
 public NfcAEventArgs(DEVICE_DATA_NFC_14443A_18092_106K deviceDataA)
 {
     _deviceDataA = deviceDataA;
 }