/*******************************主程序函数****************************************************/ //握手协议 private void processfind() { DissableEnableAll(false); byte[] data; REQTYPE type; byte[] ret; byte[] temp = Utils.getRadomByte(); byte[] key = new byte[2]; key[0] = (byte)~temp[0]; key[1] = (byte)~temp[1]; key = Utils.changeHigh(key); Utils.dumpdata(key, 2, "key after"); int status; data = sendReceive(ProtocolControl.Packrequest(REQTYPE.FIND, temp), out status); if (data == null || data.Length == 0) { return; } ret = UnpackHandShake(data, out type); if (ret != null && ret.Length > 0) { Utils.dumpdata(ret, ret.Length, "unpack"); if (ret[0] == key[0] && ret[1] == key[1]) { Console.WriteLine("find machine"); if (type == REQTYPE.LOCALUPDATE) { Console.WriteLine("start local update"); LocalUpdateForm d = new LocalUpdateForm(); d.ShowDialog(); m_HasMachine = true; timer1.Stop(); } } else { if (type == REQTYPE.LOCALUPDATE) { Console.WriteLine("start local update"); } Console.WriteLine("not found machine"); } DissableEnableAll(true); } }
private void 检查程序版本ToolStripMenuItem_Click(object sender, EventArgs e) { byte[] request = ProtocolControl.Packrequest(REQTYPE.VERSION, new byte[] { 1, 1 }); int status; byte [] versionbytes = sendReceive(request, out status); if (status == 0) { int loc = FindDownHeaderVersion(versionbytes, versionbytes.Length); if (loc > 0) { loc = loc + 3; byte var1 = versionbytes[loc]; byte var2 = versionbytes[loc + 1]; MessageBox.Show("下位机版本号" + var1 + "." + var2); } } }