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); }
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); } }
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); }
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); } }
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); } }
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); } }); }
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); } }
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); } }
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); } }
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)); }
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); } }
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); } }
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); } }
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); } } }