Ejemplo n.º 1
0
 public static extern int felicaDtu(int h, ushort srcAddr, ushort targetAddr, ref FELICA_DTU pDtu, Byte[] pTxFrame, Byte[] pRxFrame);
Ejemplo n.º 2
0
        private void buttonDtu_Click(object sender, EventArgs e)
        {
            if (serialDevice < 0)
            {
                MessageBox.Show("请先打开串口");
                return;
            }
            clearOpResult();

            ushort[] addrArray = new ushort[2];
            Byte[]   rxLen     = new Byte[1];

            FELICA_DTU pDtu = new FELICA_DTU();

            pDtu.txFrame = new Byte[hfReaderDll.HFREADER_BUFFER_MAX];
            pDtu.rxFrame = new Byte[hfReaderDll.HFREADER_BUFFER_MAX];

            Byte[] sendBuffer = new Byte[1024];
            Byte[] rcvBuffer  = new Byte[1024];

            if (!GetDeviceAddr(addrArray))
            {
                return;
            }

            if (GetHexInput(this.textBoxDtuRxLen.Text, rxLen, 1) <= 0)
            {
                return;
            }
            pDtu.rxLen = rxLen[0];

            pDtu.txLen = (uint)(GetHexInput(this.textBoxDtuTx.Text, pDtu.txFrame));

            pDtu.timeout = Convert.ToUInt32(this.textBoxDtuTime.Text, 10);

            while (bOperatingSerial)
            {
                ;
            }
            bOperatingSerial = true;
            int rlt = hfReaderDll.felicaDtu(serialDevice, addrArray[0], addrArray[1], ref pDtu, sendBuffer, rcvBuffer);

            bOperatingSerial = false;

            if (rlt > 0)
            {
                if (pDtu.result.flag == 0)
                {
                    string s = "";
                    for (uint i = 0; i < pDtu.rxLen; i++)
                    {
                        s += pDtu.rxFrame[i].ToString("X").PadLeft(2, '0');
                    }
                    this.textBoxDtuRx.Text    = s;
                    this.textBoxDtuRxLen.Text = pDtu.rxLen.ToString("X").PadLeft(2, '0');
                }
                DisplayOpResult(ref pDtu.result);
            }
            DisplayRcvInf(rcvBuffer, "透传返回:");
            DisplaySendInf(sendBuffer, "透传:");
        }