private void btnQueryRF_Click(object sender, EventArgs e) { #region reader mode { IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x19); if (reader.Send(msg)) { switch (msg.ReceivedMessage.QueryData[0]) { case 0x04: cbReaderMode.SelectedIndex = 0; break; case 0x05: cbReaderMode.SelectedIndex = 1; break; case 0x02: cbReaderMode.SelectedIndex = 2; break; case 0xff: cbReaderMode.SelectedIndex = 3; break; case 0x09: cbReaderMode.SelectedIndex = 4; break; default: cbReaderMode.SelectedIndex = -1; break; } cbReaderMode.Enabled = true; } else { cbReaderMode.Enabled = false; } } #endregion #region Session { IRP1.TagOperationQuery_6C msg = new IRP1.TagOperationQuery_6C(0x12); if (reader.Send(msg)) { // query session cbSession.SelectedIndex = msg.ReceivedMessage.QueryData[0]; // query inventory flag cbFlag.SelectedIndex = msg.ReceivedMessage.QueryData[1]; // MessageBox.Show(msg.ReceivedMessage.QueryData[0].ToString() + " " + msg.ReceivedMessage.QueryData[1].ToString()); } else { MessageBox.Show("Query Error - Session and Flag"); } } #endregion }
private void btnIOTriggerQuery_Click(object sender, EventArgs e) { IRP1.SysQuery_800 order = new IRP1.SysQuery_800(0xE2, (byte)(cmbox1.SelectedIndex + 1)); if (reader.Send(order)) { if (order.ReceivedMessage == null || order.ReceivedMessage.QueryData == null) { return; } //触发方式 cmbox1.SelectedIndex = order.ReceivedMessage.QueryData[0] - 1; cmbox2.SelectedIndex = order.ReceivedMessage.QueryData[1]; //停止条件 if (order.ReceivedMessage.QueryData[2] == 0) { radioButton1.Checked = true; numTime.Enabled = false; } else { rbTime.Checked = true; numTime.Enabled = true; } numTime.Value = (order.ReceivedMessage.QueryData[3] << 8) + order.ReceivedMessage.QueryData[4]; } else { groupBox3.Enabled = false; } }
private void btnQuery_Click(object sender, EventArgs e) { IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x06); if (reader.Send(msg)) { getIP(msg.ReceivedMessage.QueryData); } else { groupBox1.Enabled = false; } }
private void btnModelSN_Click(object sender, EventArgs e) { tbModelNum.Text = reader.ModelNumber; tbPortType.Text = reader.PortType; tbReaderName.Text = reader.ReaderName; tbProtocolVersion.Text = reader.ProtocolVersion; IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x27); //returns serial number /* * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x27); // returns serial number * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x26); // returns 1.10 * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x25); // returns 1.10 * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x24); // returns nothing * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x23); // returns 3.34 * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x22); // returns odd characters * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x21); // returns 8861CA * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x20); // returns XC-RF861 * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x19); // returns ascii character * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x18); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x17); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x16); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x15); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x14); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x13); // returns nothing * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x12); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x11); // returns nothning * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x10); // returns ascii * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x09); // returns nothing * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x08); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x07); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x06); // returns ???? * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x05); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x04); // returns * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x03); // returns ascii * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x02); // returns blank? * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x01); // returns blank * IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x00); // returns odd character * * */ if (reader.Send(msg)) { string sn = Encoding.ASCII.GetString(msg.ReceivedMessage.QueryData); if (sn.Length > 18) { sn = sn.Substring(0, 18); } tbSN.Text = sn; } }
private void btnAntQuery_Click(object sender, EventArgs e) { // Brett: Query successfully gets the antenna power and Q value // it does not get the selected antenna ports, memory bank or continuous or single read status. Boolean isSuc = false; IRP1.SysQuery_800 order = new IRP1.SysQuery_800(0x68, 0x00); if (reader.Send(order)) { isSuc = true; isNewPower = true; list = new Double[order.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = (Double)i; } // query power IRP1.SysQuery_800 order1 = new IRP1.SysQuery_800(0x65, 0x00);// power param if (reader.Send(order1)) { this.nudAnt1.Text = list[order1.ReceivedMessage.QueryData[0]].ToString(); this.nudAnt2.Text = list[order1.ReceivedMessage.QueryData[1]].ToString(); this.nudAnt3.Text = list[order1.ReceivedMessage.QueryData[2]].ToString(); this.nudAnt4.Text = list[order1.ReceivedMessage.QueryData[3]].ToString(); } IRP1.TagOperationQuery_6C msg = new IRP1.TagOperationQuery_6C(0x10); if (reader.Send(msg)) { numQ.Value = msg.ReceivedMessage.QueryData[0]; } else { MessageBox.Show("Error getting Q"); } } }
private void btnQuery_Click(object sender, EventArgs e) { #region 天线功率查询 { if (reader.ModelNumber.IndexOf("812") != -1 || reader.ModelNumber.IndexOf("825") != -1 || reader.ModelNumber.IndexOf("829") != -1 || reader.ModelNumber.IndexOf("853") != -1 || reader.ModelNumber.IndexOf("R2000") != -1 || reader.ModelNumber.IndexOf("802") != -1) { lblpa2.Visible = false; pa2.Visible = false; lblpa3.Visible = false; pa3.Visible = false; lblpa4.Visible = false; pa4.Visible = false; } if (reader.ModelNumber.IndexOf("850") != -1)//850 { pa3.Visible = false; lblpa4.Visible = false; pa4.Visible = false; } Boolean isSuc = false; //获取功率参数表,注意:功率参数不等于功率值 IRP1.SysQuery_800 order = new IRP1.SysQuery_800(0x68, 0x00); if (reader.Send(order)) { isSuc = true; isNewPower = true; list = new Double[order.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = (Double)i; //填充功率值表 } // 填充功率表 for (int i = 0; i < list.Length; i++) { //功率参数大于0才有功率值 if (order.ReceivedMessage.QueryData[i] != 0x00 && i < list.Length) { pa1.Items.Add(list[i].ToString()); pa2.Items.Add(list[i].ToString()); pa3.Items.Add(list[i].ToString()); pa4.Items.Add(list[i].ToString()); } } // 查询功率值 IRP1.SysQuery_800 order1 = new IRP1.SysQuery_800(0x65, 0x00); if (reader.Send(order1)) { this.pa1.Text = list[order1.ReceivedMessage.QueryData[0]].ToString(); this.pa2.Text = list[order1.ReceivedMessage.QueryData[1]].ToString(); this.pa3.Text = list[order1.ReceivedMessage.QueryData[2]].ToString(); this.pa4.Text = list[order1.ReceivedMessage.QueryData[3]].ToString(); } } else { IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x0C, 0x00); if (reader.Send(msg)) { isSuc = true; isNewPower = false; // 生成功率表 { if (reader.ModelNumber.IndexOf("806") != -1 || reader.ModelNumber.IndexOf("860") != -1 || reader.ModelNumber.IndexOf("804") != -1 || reader.ModelNumber.IndexOf("803") != -1) { list = new Double[msg.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = 20 + (Double)i / 2; } } if (reader.ModelNumber.IndexOf("807") != -1) //807 { list = new Double[msg.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = 11 + (Double)i; } } if (reader.ModelNumber.IndexOf("850") != -1) //850 { list = new Double[msg.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = 9 + (Double)i; } } if (reader.ModelNumber.IndexOf("861") != -1) //861 { list = new Double[msg.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = 9 + (Double)i; } } if (reader.ModelNumber.IndexOf("812") != -1 || reader.ModelNumber.IndexOf("825") != -1 || reader.ModelNumber.IndexOf("829") != -1 || reader.ModelNumber.IndexOf("853") != -1 || reader.ModelNumber.IndexOf("R2000") != -1 || reader.ModelNumber.IndexOf("802") != -1) { list = new Double[msg.ReceivedMessage.QueryData.Length]; for (int i = 0; i < list.Length; i++) { list[i] = (Double)i; } } } for (int i = 0; i < msg.ReceivedMessage.QueryData.Length; i++) { if (msg.ReceivedMessage.QueryData[i] != 0x00 && i < list.Length) { pa1.Items.Add(list[i].ToString()); pa2.Items.Add(list[i].ToString()); pa3.Items.Add(list[i].ToString()); pa4.Items.Add(list[i].ToString()); } } // 查询天线功率 IRP1.SysQuery_800 order1 = new IRP1.SysQuery_800(0x03); if (reader.Send(order1)) { if (order1.ReceivedMessage.QueryData[0] < list.Length) { this.pa1.Text = list[order1.ReceivedMessage.QueryData[0]].ToString(); } if (order1.ReceivedMessage.QueryData[1] < list.Length) { this.pa2.Text = list[order1.ReceivedMessage.QueryData[1]].ToString(); } if (order1.ReceivedMessage.QueryData[2] < list.Length) { this.pa3.Text = list[order1.ReceivedMessage.QueryData[2]].ToString(); } if (order1.ReceivedMessage.QueryData[3] < list.Length) { this.pa4.Text = list[order1.ReceivedMessage.QueryData[3]].ToString(); } } } } if (isSuc) { this.groupBox1.Enabled = true; } else { this.groupBox1.Enabled = false; } } #endregion }
public void Connect() { #region Client foreach (XmlNode node in Common.sysit_xml.DocumentElement.SelectNodes("Reader")) { MyReader r = new MyReader(node.Attributes["Name"].Value); try { if (!r.reader.IsConnected) { if (r.reader.PortType == "TCPIP_Client") { string ip = r.reader.ConnString.Substring(0, r.reader.ConnString.IndexOf(':')); using (Ping ping = new Ping()) { PingReply pingReply = null; pingReply = ping.Send(ip, 100); if (pingReply.Status != IPStatus.Success) { if (OnReaderErrorMsg != null) { OnReaderErrorMsg(r.reader, "网络不通"); } continue; } } } if (r.reader.Connect()) { ReaderList.Add(r); if (r.reader.ProtocolVersion == "IRP1") { #region 查询型号 if (r.reader.ModelNumber == "unknown") { String mn = ""; IRP1.SysQuery_800 msg = new IRP1.SysQuery_800(0x20); if (r.reader.Send(msg, 200)) { mn = Encoding.ASCII.GetString(msg.ReceivedMessage.QueryData).Trim('\0'); r.reader.ModelNumber = mn; } if (mn != "XCRF-502E-F6G" && mn != "XC-RF806") { IRP1.SysQuery_800 msg1 = new IRP1.SysQuery_800(0x21); if (r.reader.Send(msg1, 200)) { mn = Encoding.ASCII.GetString(msg1.ReceivedMessage.QueryData); if (mn.IndexOf("807") != -1) { r.reader.ModelNumber = "XC-RF807"; } else if (mn.IndexOf("806") != -1) { r.reader.ModelNumber = "XC-RF806"; } else if (mn.IndexOf("860") != -1) { r.reader.ModelNumber = "XC-RF860"; } } else { r.reader.ModelNumber = "XCRF-502E"; } } r.reader.ModelNumber = r.reader.ModelNumber.Trim('\0'); } #endregion #region 查询RSSI功能 { switch (r.reader.ModelNumber) { case "XC-RF807": case "XC-RF806": case "XCRF-860": IRP1.SysQuery_800 order = new IRP1.SysQuery_800(0x14); if (r.reader.Send(order, 200)) { if (order.ReceivedMessage.QueryData != null && order.ReceivedMessage.QueryData.Length > 0) { if (order.ReceivedMessage.QueryData[0] == 0x01) { r.IsRssiEnable_800 = true; } else { r.IsRssiEnable_800 = false; } } } break; case "XCRF-502E-F6G": case "XC-RF811": r.IsRssiEnable_800 = true; break; } } #endregion #region 查询UTC功能 { switch (r.reader.ModelNumber) { case "XC-RF807": case "XC-RF806": case "XCRF-860": IRP1.SysQuery_800 order = new IRP1.SysQuery_800(0x18); if (r.reader.Send(order, 200)) { if (order.ReceivedMessage.QueryData != null && order.ReceivedMessage.QueryData.Length > 0) { if (order.ReceivedMessage.QueryData[0] == 0x01) { r.IsUtcEnable_800 = true; } else { r.IsUtcEnable_800 = false; } } } else { r.IsUtcEnable_800 = false; } break; } } #endregion #region 激活天线 if (r.scanMsgParam.antennaIndex < 0x80) { if (r.reader.ModelNumber == "XCRF-860") { byte a = 0x01; switch (r.scanMsgParam.antennaIndex) { case 0: a = 0x01; break; case 1: case 4: a = 0x02; break; case 2: case 5: a = 0x03; break; case 3: case 6: a = 0x04; break; } r.reader.Send(new IRP1.SysConfig_800(0x02, new Byte[] { a }), 200); } else if (r.reader.ModelNumber == "XCRF-502E-F6G" || r.reader.ModelNumber == "XCRF-502E" || r.reader.ModelNumber == "XC-RF811") { byte a = r.scanMsgParam.antennaIndex; r.reader.Send(new IRP1.SysConfig_500(0x02, 0x01, new Byte[] { a }), 200); } } #endregion } r.reader.OnMessageNotificationReceived += new MessageNotificationReceivedHandle(r_OnMessageNotificationReceived); if (OnReaderErrorMsg != null) { OnReaderErrorMsg(r.reader, "建立连接成功"); } } else { r.reader.Disconnect(); if (OnReaderErrorMsg != null) { OnReaderErrorMsg(r.reader, "建立连接失败"); } } } } catch (Exception ex) { Log.Info(ex.Message); } } #endregion #region Server foreach (XmlNode node in Common.sysit_xml.DocumentElement.SelectNodes("Server")) { String port = node.Attributes["Port"].Value; String pVer = node.Attributes["Protocol"].Value; TcpIpListener listener = new TcpIpListener(int.Parse(port), pVer); try { listener.OnClientConn += new OnClientConnHandle(listener_OnClientConn); listener.Run(); ServerList.Add(listener); if (OnReaderErrorMsg != null) { OnReaderErrorMsg(null, port + "端口:" + "启动监听服务"); } } catch (Exception ex) { if (OnReaderErrorMsg != null) { OnReaderErrorMsg(null, port + "端口:" + "启动监听服务失败"); } Log.Info(port + "端口:" + "启动监听服务失败!" + ex.Message); } } #endregion }