public static ITcpCommand Create(CmdCode cmdCode, byte[] netData) { ITcpCommand tcpCommand; switch (cmdCode) { case CmdCode.Heart: tcpCommand = new TcpCommand_Heart(); break; case CmdCode.RioTopoGet: tcpCommand = new TcpCommand_RioTopoGet(); break; case CmdCode.UpLoadApp: tcpCommand = new TcpCommand_UpLoadApp(); break; case CmdCode.StartApp: tcpCommand = new TcpCommand_StartApp(); break; case CmdCode.StopApp: tcpCommand = new TcpCommand_StopApp(); break; default: throw new System.ArgumentException("can't find the cmdCode", "cmdCode"); } tcpCommand.DeserializeFromNet(netData); return(tcpCommand); }
public void DeployFiles() { var tcpManager = TcpManager.Instance; try { string ip = tcpManager.ipList[0]; //轮询发送更新文件 for (int i = 0; i < _matchNode.Count; i++) { var lvItem = ComponentLV.Items[i]; if (lvItem.SubItems[_LvFilePathNum].Text != String.Empty) //判断是否上传了文件 { var node = _matchNode[i]; var choosedFs = (FileStream)(_exeFileList[i]); var fileName = choosedFs.Name.Substring(choosedFs.Name.LastIndexOf("\\") + 1); var cmd = new TcpCommand_UpLoadApp(fileName, node.SNode.SlotId + 1, node.SNode.NodeType, choosedFs); tcpManager.SendOneCmd(ip, cmd); } } //发送开始命令 tcpManager.SendOneCmd(ip, new TcpCommand_StartApp()); } catch (Exception ex) { MessageBox.Show("ExeFileForm:" + ex.Message); } }