private void toolStripButton5_Click(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count == 0) { MessageBox.Show(translate.getInfo("form1", "btn5_show")); return; } ListView.SelectedIndexCollection c = this.listView1.SelectedIndices; netForm_Mac form3 = new netForm_Mac(); form3.setMac(listView1.Items[c[0]].SubItems[1].Text); form3.ShowDialog(); if (form3.DialogResult == DialogResult.OK) { TCmdHead xCmd = new TCmdHead(); xCmd.cmd = 0x02FE; xCmd.mac = funs.Mac2Byte(listView1.Items[c[0]].SubItems[1].Text); byte[] NewMac = funs.Mac2Byte(form3.GetMac()); int CmdSize = Marshal.SizeOf(xCmd); byte[] xBuf = funs.copybyte(funs.StructToBytes(xCmd, CmdSize), NewMac); netdata_new netData = (netdata_new)listView1.Items[c[0]].Tag; udpclient.send(xBuf); listView1.Items[c[0]].SubItems[1].Text = form3.GetMac(); toolStripButton1_Click(sender, e); } }
protected override void PacketReceived(UDPPacketBuffer buffer) { TCmdHead xCmd = new TCmdHead(); IWin32Window win32Window = UIForm; xCmd = (TCmdHead)funs.ByteToStruct(buffer.Data, xCmd.GetType()); int len = Marshal.SizeOf(xCmd); switch (xCmd.cmd) { case 0x00FD: //查询返回指令 { netdata_ex_new _data; netdata_new xcfg = new netdata_new(); byte[] newdata = funs.SubByte(buffer.Data, len, buffer.DataLength - len); xcfg.xdata = (netdata)funs.ByteToStruct(newdata, xcfg.xdata.GetType()); UIForm._curMac = funs.Byte2Mac(xCmd.mac); IPEndPoint Ip = (IPEndPoint)buffer.RemoteEndPoint; xcfg.IP = Ip.Address.GetAddressBytes(); xcfg.ipEndPoint = Ip; _data.xCmd = xCmd; _data.xdata = xcfg; UIForm._doAddItem(_data); } break; case 0x01FD: { udpclient.send(funs.Byte2Mac(xCmd.mac), 0x03fe); } break; case 0x02FD: { string sMac = funs.Byte2Mac(xCmd.mac); MessageBox.Show(win32Window, translate.getInfo("form1", "cmd_result_mac")); } break; case 0x03FD: { if (UIForm.flag == 1) { UIForm._doClearList(1); udpclient.send(Encoding.Default.GetBytes("www.cdebyte.comwww.cdebyte.com")); flag = false; MessageBox.Show(win32Window, translate.getInfo("form1", "cmd_result_cfg")); UIForm._doPatchUI(2000); } if (UIForm.flag == 2) { MessageBox.Show(win32Window, translate.getInfo("form1", "cmd_result_reboot")); } UIForm.flag = 0; } break; default: break; } }
private void doAddItem(object itemData) { netdata_ex_new _ex_data = (netdata_ex_new)itemData; netdata_new _data = _ex_data.xdata; string _Mac = funs.Byte2Mac(_ex_data.xCmd.mac); _curMac = _Mac; foreach (ListViewItem item in this.listView1.Items) { if (item.SubItems[1].Text == _curMac) { item.SubItems[4].Text = ntohs(_data.xdata.objport).ToString(); return; } } ListViewItem lvi = new ListViewItem(); lvi.Tag = _data; lvi.Text = (listView1.Items.Count + 1).ToString(); lvi.SubItems.Add(_curMac); lvi.SubItems.Add(protocol_info[_data.xdata.protocol]); if (_data.xdata.domain_type == 0) { byte[] x = new byte[4]; x[0] = _data.xdata.desc[0]; x[1] = _data.xdata.desc[1]; x[2] = _data.xdata.desc[2]; x[3] = _data.xdata.desc[3]; lvi.SubItems.Add(funs.ByteArrayToIPAddress(x)); } else { lvi.SubItems.Add(Encoding.Default.GetString(_data.xdata.desc)); } lvi.SubItems.Add(ntohs(_data.xdata.objport).ToString()); lvi.SubItems.Add(funs.ByteArrayToIPAddress(_data.IP)); lvi.SubItems.Add(ntohs(_data.xdata.localport).ToString()); if (_data.xdata.Version == 0) { lvi.SubItems.Add("- -"); } else { if (Rf.Models.Length >= _data.xdata.Version) { lvi.SubItems.Add(Rf.Models[_data.xdata.Version - 1]); } else { lvi.SubItems.Add("unknown"); } } if (netcfg.E830_ETH2A.E830ETH_Flag == false && _data.xdata.Version == 8) { MessageBox.Show("型号选择错误,请重新选择"); } else { this.listView1.Items.Add(lvi); } float ver = (float)Convert.ToDouble(Convert.ToString(_data.xdata.E_Version, 16)) / 10; lvi.SubItems.Add("V" + string.Format("{0:F1}", ver)); }