Exemple #1
0
        private void buttonGetBuffLength_Click(object sender, EventArgs e)
        {
            byte SaveLen = 0;

            try
            {
                ErrorsCatcher.errorName = RWDev.GetSaveLen(ref RWDev.comAddress, ref SaveLen, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName == 0)
                {
                    if (SaveLen == 0)
                    {
                        radioButton128bitBuff.Checked = true;
                    }
                    else
                    {
                        radioButton496bitBuff.Checked = true;
                    }
                    string strLog = "Get buffer EPC/TID length success " + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
                else
                {
                    string strLog = "Get buffer EPC/TID length failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Get buffer EPC/TID length failed!" + Environment.NewLine);
            }
        }
        public bool CloseConnection()
        {
            var result = false;

            try
            {
                if (_readerProfile.ConnectionType == ConnectionType.Serial)
                {
                    fCmdRet = RWDev.CloseSpecComPort(frmcomportindex);
                    result  = true;
                }
                else
                {
                    fCmdRet = RWDev.CloseNetPort(FrmPortIndex);
                    result  = true;
                }

                _readerConnected = false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(result);
        }
Exemple #3
0
        private void buttonSetBaudRate_Click(object sender, EventArgs e)
        {
            byte fBaud = (byte)comboBoxBaud.SelectedIndex;

            if (fBaud > 2)
            {
                fBaud = (byte)(fBaud + 2);
            }
            try
            {
                ErrorsCatcher.errorName = RWDev.SetBaudRate(ref RWDev.comAddress, fBaud, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set baud rate failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Set baud rate success" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set baud rate failed" + Environment.NewLine);
            }
        }
Exemple #4
0
        private void buttonSetGPIO_Click(object sender, EventArgs e)
        {
            byte OutputPin = 0;

            if (checkBoxOUT1.Checked)
            {
                OutputPin = Convert.ToByte(OutputPin | 0x01);
            }
            if (checkBoxOUT2.Checked)
            {
                OutputPin = Convert.ToByte(OutputPin | 0x02);
            }
            try
            {
                ErrorsCatcher.errorName = RWDev.SetGPIO(ref RWDev.comAddress, OutputPin, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set GPIO failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Set GPIO success" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set GPIO failed!" + Environment.NewLine);
            }
        }
        public bool UpdateSettings(ReaderProfile readerProfile)
        {
            _readerProfile = readerProfile;

            Session = Convert.ToByte((int)_readerProfile.InventorySearchMode);

            if (_readerConnected)
            {
                RWDev.SetRfPower(ref fComAdr, Convert.ToByte(_readerProfile.PowerDbm), frmcomportindex);

                setWorkMode();
            }

            //   byte dminfre = 0, dmaxfre = 0;
            //   int band = 2;
            //   band = 4;
            //  /// dminfre = Convert.ToByte(((band & 3) << 6) | (ComboBox_dminfre.SelectedIndex & 0x3F));
            ////   dmaxfre = Convert.ToByte(((band & 0x0c) << 4) | (ComboBox_dmaxfre.SelectedIndex & 0x3F));
            //   fCmdRet = RWDev.SetRegion(ref fComAdr, dmaxfre, dminfre, frmcomportindex);
            //   if (fCmdRet != 0)
            //   {
            //       string strLog = "Set region failed: " + GetReturnCodeDesc(fCmdRet);
            //       logger.Log(LogLevel.Error,  strLog);
            //       return false;
            //   }
            //   else
            //   {
            //       string strLog = "Set region success ";
            //       return true;

            //   }
            return(true);
        }
Exemple #6
0
        private void buttonGetGPIO_Click(object sender, EventArgs e)
        {
            byte OutputPin = 0;

            try
            {
                ErrorsCatcher.errorName = RWDev.GetGPIOStatus(ref RWDev.comAddress, ref OutputPin, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Get GPIO status failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    if ((OutputPin & 0x10) == 0x10)
                    {
                        checkBoxOUT1.Checked = true;
                    }
                    else
                    {
                        checkBoxOUT1.Checked = false;
                    }

                    if ((OutputPin & 0x20) == 0x20)
                    {
                        checkBoxOUT2.Checked = true;
                    }
                    else
                    {
                        checkBoxOUT2.Checked = false;
                    }

                    if ((OutputPin & 0x01) == 1)
                    {
                        checkBoxINT1.Checked = true;
                    }
                    else
                    {
                        checkBoxINT1.Checked = false;
                    }

                    if ((OutputPin & 0x02) == 2)
                    {
                        checkBoxINT2.Checked = true;
                    }
                    else
                    {
                        checkBoxINT2.Checked = false;
                    }

                    string strLog = "Get GPIO status success " + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Get GPIO failed!" + Environment.NewLine);
            }
        }
Exemple #7
0
        private void buttonBeepSet_Click(object sender, EventArgs e)
        {
            byte BeepEn = 0;

            if (radioButtonBeepOpen.Checked)
            {
                BeepEn = 1;
            }
            else
            {
                BeepEn = 0;
            }
            try
            {
                ErrorsCatcher.errorName = RWDev.SetBeepNotification(ref RWDev.comAddress, BeepEn, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set beep failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Set beep success" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set beep failed!" + Environment.NewLine);
            }
        }
        private void InventoryBufferData()
        {
            Session = Convert.ToByte((int)_readerProfile.InventorySearchMode);
            Qvalue  = Convert.ToByte(4);
            int  TagNum      = 0;
            int  BufferCount = 0;
            byte MaskMem     = 0;

            byte[] MaskAdr = new byte[2];
            byte   MaskLen = 0;

            byte[] MaskData = new byte[100];
            byte   MaskFlag = 0;
            byte   AdrTID   = 0;
            byte   LenTID   = 0;

            AdrTID   = 0;
            LenTID   = 6;
            MaskFlag = 0;
            int cbtime = System.Environment.TickCount;

            TagNum      = 0;
            BufferCount = 0;
            Target      = 0;
            Scantime    = 0x14;
            Qvalue      = 6;
            if (TIDFlag == 0)
            {
                Session = 255;
            }
            else
            {
                Session = 0;
            }
            FastFlag = 1;

            //            fCmdRet = RWDev.Inventory_G2(ref fComAdr, Qvalue, Session, MaskMem, MaskAdr, MaskLen, MaskData, MaskFlag, AdrTID, LenTID, TIDFlag, Target, InAnt, Scantime, FastFlag, EPC, ref Ant, ref Totallen, ref CardNum, frmcomportindex);
            fCmdRet = RWDev.InventoryBuffer_G2(ref fComAdr, Qvalue, Session, MaskMem, MaskAdr, MaskLen, MaskData, MaskFlag, AdrTID, LenTID, TIDFlag, Target, InAnt, Scantime, FastFlag, ref BufferCount, ref TagNum, frmcomportindex);
            int    x_time = System.Environment.TickCount - cbtime;//命令时间
            string strLog = "InventoryBuffer error: " + GetReturnCodeDesc(fCmdRet);

            //WriteLog(lrtxtLog, strLog, 0);
            ///////////设置网络断线重连
            if (fCmdRet == 0)//代表已查找结束,
            {
                IntPtr ptrWnd = IntPtr.Zero;

                total_tagnum = total_tagnum + TagNum;
                int    tagrate = (TagNum * 1000) / x_time;//速度等于张数/时间
                string para    = BufferCount.ToString() + "," + x_time.ToString() + "," + tagrate.ToString() + "," + total_tagnum.ToString();
                // SendMessage(ptrWnd, WM_SENDBUFF, IntPtr.Zero, para);
            }

            else
            {
                MessageBox.Show(strLog);
            }
        }
Exemple #9
0
        public override void ListenReader()
        {
            Task.Factory.StartNew(() =>
            {
                while (shouldListenReader)
                {
                    byte fComAdr = 0;
                    // Multiply query parameters.
                    byte Qvalue  = 4;
                    byte Session = 255;

                    byte MaskMem    = 0;
                    byte[] MaskAdr  = new byte[2];
                    byte MaskLen    = 0;
                    byte[] MaskData = new byte[100];
                    byte MaskFlag   = 0;
                    byte AdrTID     = 0;
                    byte LenTID     = 6;
                    byte TIDFlag    = 0;
                    byte Target     = 0;
                    byte InAnt      = 0x80;
                    byte Scantime   = 20;
                    byte FastFlag   = 0;
                    byte[] EPC      = new byte[50000];
                    byte Ant        = 0;
                    int Totallen    = 0;
                    int TagNum      = 0;

                    int frmcomportindex = 1;

                    int fCmdRet = RWDev.Inventory_G2(
                        ref fComAdr,
                        Qvalue,
                        Session,
                        MaskMem,
                        MaskAdr,
                        MaskLen,
                        MaskData,
                        MaskFlag,
                        AdrTID,
                        LenTID,
                        TIDFlag,
                        Target,
                        InAnt,
                        Scantime,
                        FastFlag,
                        EPC,
                        ref Ant,
                        ref Totallen,
                        ref TagNum,
                        frmcomportindex
                        );

                    Thread.Sleep(5);
                }
            });
        }
Exemple #10
0
        private void buttonDisconnect_Click(object sender, EventArgs e)
        {
            if (RWDev.frmComPortIndex > 0)
            {
                RWDev.CloseSpecComPort(RWDev.frmComPortIndex);
            }
            string strLog = "Dissconected" + Environment.NewLine;

            richTextBoxLogs.AppendText(strLog);
            buttonConnect.Enabled    = true;
            buttonDisconnect.Enabled = false;
            DisabledForm();
        }
        private void setWorkMode()
        {
            byte ReadMode = 0;

            if (_readerProfile.InventoryMode == InventoryMode.Answer || _readerProfile.InventoryMode == InventoryMode.Buffer)
            {
                ReadMode = 0;
            }
            else
            {
                ReadMode = 6;
            }
            fCmdRet = RWDev.SetWorkMode(ref fComAdr, ReadMode, frmcomportindex);
        }
 private void ClearBufferData()
 {
     fCmdRet = RWDev.ClearBuffer_G2(ref fComAdr, frmcomportindex);
     if (fCmdRet == 0)
     {
         string strLog = "Clear buffer success ";
         //   WriteLog(lrtxtLog, strLog, 0);
     }
     else
     {
         string strLog = "Clear buffer failed";
         //  WriteLog(lrtxtLog, strLog, 0);
     }
 }
Exemple #13
0
        private void buttonSetRegion_Click(object sender, EventArgs e)
        {
            byte dminfre, dmaxfre;
            int  band = 2;

            if (radioButtonChineeseBand2.Checked)
            {
                band = 1;
            }
            if (radioButtonUSBand.Checked)
            {
                band = 2;
            }
            if (radioButtonChineeseBand.Checked)
            {
                band = 3;
            }
            if (radioButtonUEBand.Checked)
            {
                band = 4;
            }
            dminfre = Convert.ToByte(((band & 3) << 6) | (comboBoxDminfre.SelectedIndex & 0x3F));
            dmaxfre = Convert.ToByte(((band & 0x0c) << 4) | (comboBoxDmaxfre.SelectedIndex & 0x3F));
            try
            {
                ErrorsCatcher.errorName = RWDev.SetRegion(ref RWDev.comAddress, dmaxfre, dminfre, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set region failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Set region success" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set region dailed" + Environment.NewLine);
            }
        }
Exemple #14
0
        private bool Connect()
        {
            string ipAddress    = IPAddress.Parse(Ip.ToString()).ToString();
            int    nPort        = 27011;
            byte   fComAdr      = 255;
            int    frmPortIndex = 0;
            var    fCmdRet      = (ErrorCode)RWDev.OpenNetPort(nPort, ipAddress, ref fComAdr, ref frmPortIndex);

            if (fCmdRet == ErrorCode.Success)
            {
                _delegateRFIDCallBack = new RFIDCallBack(RFIDTagCallback);
                RWDev.InitRFIDCallBack(_delegateRFIDCallBack, true, frmPortIndex);
                return(true);
            }
            else
            {
                Console.Write(fCmdRet.GetDescription());
                return(false);
            }
        }
        private bool OpenSerial()
        {
            try
            {
                int portNum = (int)_readerProfile.ComPort;
                FrmPortIndex = 0;
                string strException = string.Empty;
                fBaud = Convert.ToByte(3);
                if (fBaud > 2)
                {
                    fBaud = Convert.ToByte(fBaud + 2);
                }
                fComAdr = 255; //Broadcast address to open the device
                fCmdRet = RWDev.OpenComPort(portNum, ref fComAdr, fBaud, ref FrmPortIndex);
                if (fCmdRet != 0)
                {
                    string strLog = "Connect reader failed: " + GetReturnCodeDesc(fCmdRet);
                    // WriteLog(lrtxtLog, strLog, 1);
                    return(false);
                }
                else
                {
                    frmcomportindex = FrmPortIndex;

                    fCmdRet = RWDev.SetRfPower(ref fComAdr, Convert.ToByte(_readerProfile.PowerDbm), frmcomportindex);

                    string strLog = "Connect: "; // + ComboBox_COM.Text + "@" + ComboBox_baud2.Text;
                    //  WriteLog(lrtxtLog, strLog, 0);
                    _readerConnected = true;
                    return(true);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                MessageBox.Show("Serial Communication Error or Occupied - exception message " + e.Message);
            }

            return(false);
        }
        private bool OpenEthernet()
        {
            string strException = string.Empty;
            string ipAddress    = _readerProfile.IpAddress;
            int    nPort        = Convert.ToInt32("27011");

            fComAdr      = 255;
            FrmPortIndex = 0;
            fCmdRet      = RWDev.OpenNetPort(nPort, ipAddress, ref fComAdr, ref FrmPortIndex);
            if (fCmdRet != 0)
            {
                string strLog = "Connect reader failed: " + GetReturnCodeDesc(fCmdRet);
                MessageBox.Show(strLog);
                return(false);
            }
            else
            {
                frmcomportindex = FrmPortIndex;
                string strLog = "Connect: " + ipAddress + "@" + nPort.ToString();
                _readerConnected = true;
                return(true);
            }
        }
Exemple #17
0
        private void buttonConnect_Click(object sender, EventArgs e)
        {
            int portNum = comboBoxCOM.SelectedIndex + 1;

            byte baudRate = Convert.ToByte(comboBoxBaud.SelectedIndex);

            if (baudRate > 2)
            {
                baudRate = Convert.ToByte(baudRate + 2);
            }
            int portHandle = 0;

            try
            {
                ErrorsCatcher.errorName = RWDev.OpenComPort(portNum, ref RWDev.comAddress, baudRate, ref portHandle);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Connection failed: " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    richTextBoxLogs.ScrollToCaret();
                    return;
                }
                else
                {
                    RWDev.frmComPortIndex = portHandle;
                    string strLog = "Connected  " + comboBoxCOM.Text + "@" + comboBoxBaud.Text + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
                EnabledForm();
                buttonConnect.Enabled    = false;
                buttonDisconnect.Enabled = true;
            }
            catch
            {
                richTextBoxLogs.AppendText("Connected failed!" + Environment.NewLine);
            }
        }
 /// <summary>
 /// Calls Inventory_G2 with own parameters and the number of the port of the reader.
 /// </summary>
 /// <param name="portNum"></param>
 /// <returns>
 /// Returns fCmdRet that represents information about the process
 /// </returns>
 public int DoInventory(int portNum)
 {
     return(RWDev.Inventory_G2(
                ComAdr: ref FComAddress,
                QValue: QValue,
                Session: Session,
                MaskMem: MaskMem,
                MaskAdr: MaskAdr,
                MaskLen: MaskLen,
                MaskData: MaskData,
                MaskFlag: MaskFlag,
                AdrTID: AdrTID,
                LenTID: LenTID,
                TIDFlag: TIDFlag,
                Target: Target,
                InAnt: InAnt,
                Scantime: Scantime,
                FastFlag: FastFlag,
                pEPCList: EPC,
                Ant: ref Ant,
                Totallen: ref Totallen,
                CardNum: ref CardNum,
                frmComPortindex: portNum));
 }
Exemple #19
0
        private void buttonSetReaderAddress_Click(object sender, EventArgs e)
        {
            byte aNewComAdr = Convert.ToByte(textBoxReaderAddress.Text, 16);

            try
            {
                ErrorsCatcher.errorName = RWDev.SetAddress(ref RWDev.comAddress, aNewComAdr, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set address failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Address " + textBoxReaderAddress.Text + " set" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set address failed!" + Environment.NewLine);
            }
        }
Exemple #20
0
 private void buttonReadSerial_Click(object sender, EventArgs e)
 {
     byte[] SeriaNo = new byte[4];
     textBoxReaderSerialNumber.Text = "";
     try
     {
         ErrorsCatcher.errorName = RWDev.GetSeriaNo(ref RWDev.comAddress, SeriaNo, RWDev.frmComPortIndex);
         if (ErrorsCatcher.errorName != 0)
         {
             string strLog = "Read serial number failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
             richTextBoxLogs.AppendText(strLog);
             return;
         }
         else
         {
             string strLog = "Read serial number success" + Environment.NewLine;
             richTextBoxLogs.AppendText(strLog);
         }
     }
     catch
     {
         richTextBoxLogs.AppendText("Read serial number failed!" + Environment.NewLine);
     }
 }
Exemple #21
0
        private void buttonSetPower_Click(object sender, EventArgs e)
        {
            byte powerDbm = (byte)comboBoxPower.SelectedIndex;

            try
            {
                ErrorsCatcher.errorName = RWDev.SetRfPower(ref RWDev.comAddress, powerDbm, RWDev.frmComPortIndex);
                if (ErrorsCatcher.errorName != 0)
                {
                    string strLog = "Set power failed " + ErrorsCatcher.GetReturnCodeDesc(ErrorsCatcher.errorName) + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                    return;
                }
                else
                {
                    string strLog = "Set address success" + Environment.NewLine;
                    richTextBoxLogs.AppendText(strLog);
                }
            }
            catch
            {
                richTextBoxLogs.AppendText("Set power failed!" + Environment.NewLine);
            }
        }
Exemple #22
0
        private void inventory()
        {
            byte Ant = 0;
            int  CardNum = 0;
            int  Totallen = 0;
            int  EPClen, m;

            byte[] EPC = new byte[50000];
            int    CardIndex;
            string temps, temp;

            temp = "";
            string sEPC;
            byte   MaskMem = 0;

            byte[] MaskAdr = new byte[2];
            byte   MaskLen = 0;

            byte[]          MaskData = new byte[100];
            byte            MaskFlag = 0;
            byte            AdrTID   = 0;
            byte            LenTID   = 0;
            DataGridViewRow rows     = new DataGridViewRow();


            ErrorsCatcher.errorName = RWDev.Inventory_G2(ref RWDev.comAddress, RWDev.QValue, RWDev.session, MaskMem, MaskAdr, MaskLen, MaskData,
                                                         MaskFlag, AdrTID, LenTID, RWDev.TIDFlag, RWDev.target, RWDev.inAnt, scantime, RWDev.fastFlag,
                                                         EPC, ref Ant, ref Totallen, ref CardNum, RWDev.frmComPortIndex);


            resultTime = DateTime.Now;

            if ((ErrorsCatcher.errorName == 1) | (ErrorsCatcher.errorName == 2) | (ErrorsCatcher.errorName == 3) | (ErrorsCatcher.errorName == 4))
            {
                byte[] daw = new byte[Totallen];
                Array.Copy(EPC, daw, Totallen);
                temps = ConverterTo.ByteArrayToHexString(daw);
                m     = 0;
                if (CardNum == 0)
                {
                    return;
                }

                for (CardIndex = 0; CardIndex < CardNum; CardIndex++)
                {
                    EPClen = daw[m] + 1;
                    temp   = temps.Substring(m * 2 + 2, EPClen * 2);
                    sEPC   = temp.Substring(0, temp.Length - 2);
                    string RSSI = Convert.ToInt32(temp.Substring(temp.Length - 2, 2), 16).ToString();
                    m = m + EPClen + 1;
                    if (sEPC.Length != (EPClen - 1) * 2)
                    {
                        return;
                    }

                    if (!scanData.ContainsKey(sEPC))
                    {
                        scanData.Add(sEPC, resultTime);
                        richTextBoxLogs.AppendText(resultTime.ToString() + " goods with RFID " + sEPC + " scaned." + Environment.NewLine);
                        Task sendToServer = Task.Run(() => {
                            try {
                                Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
                                var client      = new ScannerServer.ScannerServerClient(channel);
                                var reply       = client.SendDataToServer(new SendRequest {
                                    GoodsInfo = { RFID = sEPC, Time = resultTime.ToString() }
                                });
                            }
                            catch
                            {
                                richTextBoxLogs.AppendText("Send data to server failed!" + Environment.NewLine);
                            }
                        });
                    }
                }
            }
        }
        private void ReadBufferData()
        {
            int Totallen = 0;
            int CardNum  = 0;

            byte[] pEPCList = new byte[30000];
            //lxLed_BNum.Text = "0";
            //lxLed_Bcmdsud.Text = "0";
            //lxLed_Btoltag.Text = "0";
            //lxLed_Btoltime.Text = "0";
            //lxLed_cmdTime.Text = "0";
            string temp = "";

            fCmdRet = RWDev.ReadBuffer_G2(ref fComAdr, ref Totallen, ref CardNum, pEPCList, frmcomportindex);
            if (fCmdRet == 1)
            {
                int    m   = 0;
                byte[] daw = new byte[Totallen];
                Array.Copy(pEPCList, daw, Totallen);
                for (int i = 0; i < CardNum; i++)
                {
                    string ant = Convert.ToString(daw[m], 2).PadLeft(4, '0');
                    int    len = daw[m + 1];
                    byte[] EPC = new byte[len];
                    Array.Copy(daw, m + 2, EPC, 0, len);
                    string sEPC   = ByteArrayToHexString(EPC);
                    int    RSSI   = daw[m + 2 + len];
                    string sCount = daw[m + 3 + len].ToString();
                    m = m + 4 + len;

                    var readTime = DateTime.Now;

                    var tag = new Split
                    {
                        DateTimeOfDay       = readTime,
                        TimeOfDay           = readTime.ToString("hh.mm.ss.ff"),
                        Epc                 = sEPC,
                        Rssi                = RSSI,
                        SplitName           = _readerProfile.Name,
                        SplitDeviceId       = _readerProfile.Id,
                        InventorySearchMode = _readerProfile.InventorySearchMode,
                        Antenna             = ant
                    };

                    if (_readerProfile.ReadingMode == ReadingMode.Desktop)
                    {
                        onAssignTag(tag);
                        continue;
                    }

                    onRecordTag(tag);
                }

                string strLog = "Read buffer success ";
                //  WriteLog(lrtxtLog, strLog, 0);
            }
            else
            {
                string strLog = "Read buffer failed!: " + GetReturnCodeDesc(fCmdRet);

                MessageBox.Show(strLog);
            }
        }
        private void GetRealtiemeData()
        {
            byte[] ScanModeData = new byte[40960];
            int    nLen, NumLen;
            string temp1      = "";
            string binarystr1 = "";
            string binarystr2 = "";
            string RSSI       = "";
            string AntStr     = "";
            string lenstr     = "";
            string EPCStr     = "";
            int    ValidDatalength;
            string temp;

            ValidDatalength = 0;
            DataGridViewRow rows  = new DataGridViewRow();
            int             xtime = System.Environment.TickCount;

            fCmdRet = RWDev.ReadActiveModeData(ScanModeData, ref ValidDatalength, frmcomportindex);
            if (fCmdRet == 0)
            {
                try
                {
                    byte[] daw = new byte[ValidDatalength];
                    Array.Copy(ScanModeData, 0, daw, 0, ValidDatalength);
                    temp = ByteArrayToHexString(daw);
                    fInventory_EPC_List = fInventory_EPC_List + temp;//把字符串存进列表
                    nLen = fInventory_EPC_List.Length;
                    while (fInventory_EPC_List.Length > 18)
                    {
                        string FlagStr = Convert.ToString(fComAdr, 16).PadLeft(2, '0') + "EE00";//查找头位置标志字符串
                        int    nindex  = fInventory_EPC_List.IndexOf(FlagStr);
                        if (nindex > 1)
                        {
                            fInventory_EPC_List = fInventory_EPC_List.Substring(nindex - 2);
                        }
                        else
                        {
                            fInventory_EPC_List = fInventory_EPC_List.Substring(2);
                            continue;
                        }
                        NumLen = Convert.ToInt32(fInventory_EPC_List.Substring(0, 2), 16) * 2 + 2;//取第一个帧的长度
                        if (fInventory_EPC_List.Length < NumLen)
                        {
                            break;
                        }
                        temp1 = fInventory_EPC_List.Substring(0, NumLen);
                        fInventory_EPC_List = fInventory_EPC_List.Substring(NumLen);
                        if (!CheckCRC(temp1))
                        {
                            continue;
                        }
                        AntStr = Convert.ToString(Convert.ToInt32(temp1.Substring(8, 2), 16), 2).PadLeft(4, '0');
                        lenstr = Convert.ToString(Convert.ToInt32(temp1.Substring(10, 2), 16), 10);
                        EPCStr = temp1.Substring(12, temp1.Length - 18);
                        RSSI   = temp1.Substring(temp1.Length - 6, 2);

                        var readTime = DateTime.Now;

                        var tag = new Split
                        {
                            DateTimeOfDay       = readTime,
                            TimeOfDay           = readTime.ToString("hh.mm.ss.ff"),
                            Epc                 = EPCStr,
                            Rssi                = int.Parse(RSSI),
                            SplitName           = _readerProfile.Name,
                            SplitDeviceId       = _readerProfile.Id,
                            InventorySearchMode = _readerProfile.InventorySearchMode,
                            Antenna             = AntStr
                        };

                        if (_readerProfile.ReadingMode == ReadingMode.Desktop)
                        {
                            onAssignTag(tag);
                            continue;
                        }

                        onRecordTag(tag);
                    }
                }
                catch (System.Exception ex)
                {
                    ex.ToString();
                }
            }
        }
        private void flash_G2()
        {
            Session = Convert.ToByte((int)_readerProfile.InventorySearchMode);
            Qvalue  = Convert.ToByte(4);
            byte Ant = 0x80;
            int  CardNum = 0;
            int  Totallen = 0;
            int  EPClen, m;

            byte[] EPC = new byte[50000];
            int    CardIndex;
            string temps, temp;

            temp = "";
            string sEPC;
            byte   MaskMem = 0;

            byte[] MaskAdr = new byte[2];
            byte   MaskLen = 0;

            byte[] MaskData = new byte[100];
            byte   MaskFlag = 0;
            byte   AdrTID   = 0;
            byte   LenTID   = 0;

            AdrTID   = 0;
            LenTID   = 6;
            MaskFlag = 0;
            int cbtime = System.Environment.TickCount;

            CardNum = 0;
            fCmdRet = RWDev.Inventory_G2(ref fComAdr, Qvalue, Session, MaskMem, MaskAdr, MaskLen, MaskData, MaskFlag, AdrTID, LenTID, TIDFlag, Target, InAnt, Scantime, FastFlag, EPC, ref Ant, ref Totallen, ref CardNum, frmcomportindex);
            int cmdTime = System.Environment.TickCount - cbtime;//命令时间

            if ((fCmdRet == 0x30) || (fCmdRet == 0x37))
            {
                if (_readerProfile.ConnectionType == ConnectionType.Ethernet)
                {
                    if (frmcomportindex > 1023)
                    {
                        fCmdRet = RWDev.CloseNetPort(frmcomportindex);
                        if (fCmdRet == 0)
                        {
                            frmcomportindex = -1;
                        }
                        Thread.Sleep(1000);
                    }
                    fComAdr = 255;
                    string ipAddress = _readerProfile.IpAddress;
                    int    nPort     = Convert.ToInt32("27011");
                    fCmdRet = RWDev.OpenNetPort(nPort, ipAddress, ref fComAdr, ref frmcomportindex);
                }
            }
            if (CardNum == 0)
            {
                if (Session > 1)
                {
                    AA_times = AA_times + 1;//没有得到标签只更新状态栏
                }
                IntPtr ptrWnd = IntPtr.Zero;
                // ptrWnd = FindWindow(null, "UHFReader288 Demo V1.16");
                if (ptrWnd != IntPtr.Zero)         // 检查当前统计窗口是否打开
                {
                    string para = fCmdRet.ToString();
                    //  SendMessage(ptrWnd, WM_SENDSTATU, IntPtr.Zero, para);
                }
                return;
            }
            AA_times = 0;

            if ((fCmdRet == 1) || (fCmdRet == 2) || (fCmdRet == 0x26)) //代表已查找结束,
            {
                byte[] daw = new byte[Totallen];
                Array.Copy(EPC, daw, Totallen);
                temps = ByteArrayToHexString(daw);
                if (fCmdRet == 0x26)
                {
                    string SDCMD = temps.Substring(0, 12);
                    temps = temps.Substring(12);
                    daw   = HexStringToByteArray(temps);
                    byte[] datas = new byte[6];
                    datas = HexStringToByteArray(SDCMD);
                    int tagrate = datas[0] * 256 + datas[1];
                    int tagnum  = datas[2] * 256 * 256 * 256 + datas[3] * 256 * 256 + datas[4] * 256 + datas[5];
                    total_tagnum = total_tagnum + tagnum;
                    IntPtr ptrWnd = IntPtr.Zero;
                    // ptrWnd = FindWindow(null, "UHFReader288 Demo V1.16");
                    if (ptrWnd != IntPtr.Zero) // 检查当前统计窗口是否打开
                    {
                        string para = tagrate.ToString() + "," + total_tagnum.ToString() + "," + cmdTime.ToString();
                        //   SendMessage(ptrWnd, WM_SENDTAGSTAT, IntPtr.Zero, para);
                    }
                }
                m = 0;


                List <string> epsList = new List <string>();
                for (CardIndex = 0; CardIndex < CardNum; CardIndex++)
                {
                    EPClen = daw[m] + 1;
                    temp   = temps.Substring(m * 2 + 2, EPClen * 2);
                    sEPC   = temp.Substring(0, temp.Length - 2);
                    int RSSI = Convert.ToInt32(temp.Substring(temp.Length - 2, 2), 16);
                    m = m + EPClen + 1;
                    if (sEPC.Length != (EPClen - 1) * 2)
                    {
                        return;
                    }


                    if (epsList.Contains(sEPC))
                    {
                        continue;
                    }
                    epsList.Add(sEPC);

                    IntPtr ptrWnd = IntPtr.Zero;
                    //  ptrWnd = FindWindow(null, "UHFReader288 Demo V1.16");
                    if (ptrWnd != IntPtr.Zero) // 检查当前统计窗口是否打开
                    {
                        string para = sEPC + "," + RSSI.ToString() + " ";
                        //   SendMessage(ptrWnd, WM_SENDTAG, IntPtr.Zero, para);
                    }
                    var readTime = DateTime.Now;

                    var tag = new Split
                    {
                        DateTimeOfDay       = readTime,
                        TimeOfDay           = readTime.ToString("hh.mm.ss.ff"),
                        Epc                 = sEPC,
                        Rssi                = RSSI,
                        SplitName           = _readerProfile.Name,
                        SplitDeviceId       = _readerProfile.Id,
                        InventorySearchMode = _readerProfile.InventorySearchMode,
                        Antenna             = Ant.ToString()
                    };

                    recordTag(tag);
                }
            }
        }