//获取串口记录 public static List <string> getSerialRecord(SerialRecordType type, object objMsg) { List <string> rowStr = new List <string>(); rowStr.Add(" "); //时间 rowStr.Add("5"); //类型 rowStr.Add("" + (int)type); //串口记录类型 string tmp = null; if (type == SerialRecordType.SerialSend) { if (objMsg is SerialSendMsg) //若是发送消息 { SerialSendMsg sendMsg = objMsg as SerialSendMsg; tmp = BitConverter.ToString(sendMsg.PacketData.DataBytes, 0).Replace("-", " "); rowStr.Add(tmp); //附加数据 } } else if (type == SerialRecordType.SerialRecv || type == SerialRecordType.SerialTimeOut) { if (objMsg is SerialRecvMsg) //若是接收消息 { SerialRecvMsg recvMsg = objMsg as SerialRecvMsg; tmp = BitConverter.ToString(recvMsg.PacketData.DataBytes, 0).Replace("-", " "); rowStr.Add(tmp); //附加数据 } } return(rowStr); }
//切换信道 void ThreadSwitch() { Thread.Sleep(3000); //如果不延时,将占用CPU过高 //设定延时任务 目的是避免在设置连续三次命令的时候插进去 SerialSendMsg sendMsg = ProtocolCommand.TerminalSwitchCmdMsg(AppUtil.IntToBytes(ChangeNONewSerialNO_forChannal), AppUtil.IntToBytes(ChangeNONewSerialNO_forChannal), (byte)ChangeNONewChannal); //发送终端切换命令 serialCom.SendQueue_Enqueue(sendMsg); //发送出去 }
//确认临时编组按钮点击事件 void btnTempGroupOK_Click(object sender, EventArgs e) { //先判断用户输入的格式对不对 //检查原组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempOldGrpNO.Text)) { //检查原组号是否超出范围 if (int.Parse(richTextTempOldGrpNO.Text) < 0xFFFFFF) { //检查新组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempNewGrpNO.Text)) { //检查新组号是否超出范围 if (int.Parse(richTextTempNewGrpNO.Text) < 0xFFFFFF) { //检查原用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempOldDevNO.Text)) { //检查原用户号是否超出范围 if (int.Parse(richTextTempOldDevNO.Text) < 33) { //检查新用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempNewDevNO.Text)) { //检查新用户号是否超出范围 if (int.Parse(richTextTempNewDevNO.Text) < 33) { //全部检查完毕没有问题 richTextTempGroupStatus.Text = ""; //状态栏清空 TempGrpOldSerialNO = (int.Parse(richTextTempOldGrpNO.Text) << 8) | (int.Parse(richTextTempOldDevNO.Text)); TempGrpNewSerialNO = (int.Parse(richTextTempNewGrpNO.Text) << 8) | (int.Parse(richTextTempNewDevNO.Text)); //发送临时组队命令 SerialSendMsg sendMsg = ProtocolCommand.BuildTeamCmdMsg(AppUtil.IntToBytes(TempGrpOldSerialNO), AppUtil.IntToBytes(TempGrpNewSerialNO), SysConfig.getSerialNOBytes()); serialCom.SendQueue_Enqueue(sendMsg); //发送出去 //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.TempGrpPanel, (int)BtnOfTempGrpPanel.StartTempGrp, TempGrpOldSerialNO.ToString("X8") + " " + TempGrpNewSerialNO.ToString("X8"))); } else { MessageBox.Show("新用户号必须小于33"); } } else { MessageBox.Show("新用户号必须为数字形式"); } } else { MessageBox.Show("原用户号必须小于33"); } } else { MessageBox.Show("原用户号必须为数字形式"); } } else { MessageBox.Show("新组号必须小于16777215"); } } else { MessageBox.Show("新组号必须为数字形式"); } } else { MessageBox.Show("原组号必须小于16777215"); } } else { MessageBox.Show("原组号必须为数字形式"); } }
//确认改号按钮点击事件 void btnUserChangeNOOK_Click(object sender, EventArgs e) { //先判断用户输入的格式对不对 //检查原组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextOldGrpNO.Text)) { //检查原组号是否超出范围 if (int.Parse(richTextOldGrpNO.Text) < 0xFFFFFF) { //检查新组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewGrpNO.Text)) { //检查新组号是否超出范围 if (int.Parse(richTextNewGrpNO.Text) < 0xFFFFFF) { //检查原用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextOldDevNO.Text)) { //检查原用户号是否超出范围 if (int.Parse(richTextOldDevNO.Text) < 33) { //检查新用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewDevNO.Text)) { //检查新用户号是否超出范围 if (int.Parse(richTextNewDevNO.Text) < 33) { //检查信道号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewChannal.Text)) { ChangeNONewChannal = int.Parse(richTextNewChannal.Text); //检查信道号是否超出范围 if (ChangeNONewChannal < 31 && (ChangeNONewChannal < 23 || ChangeNONewChannal > 25)) { //全部检查完毕没有问题 richTextUserChangeNOStatus.Text = ""; //状态栏清空 ChangeNOOldSerialNO = (int.Parse(richTextOldGrpNO.Text) << 8) | (int.Parse(richTextOldDevNO.Text)); ChangeNONewSerialNO = (int.Parse(richTextNewGrpNO.Text) << 8) | (int.Parse(richTextNewDevNO.Text)); ChangeNONewSerialNO_forChannal = ChangeNONewSerialNO; //发送临时组队命令 SerialSendMsg sendMsg = ProtocolCommand.ParaSetup1CmdMsg(AppUtil.IntToBytes(ChangeNOOldSerialNO), AppUtil.IntToBytes(ChangeNONewSerialNO)); //发送切换信道命令 serialCom.SendQueue_Enqueue(sendMsg); //发送出去 ChangeNONewChannal = int.Parse(richTextNewChannal.Text); Thread th = new Thread(new ThreadStart(ThreadSwitch)); //创建线程 th.Start(); //启动线程 //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.UserChangeNOPanel, (int)BtnOfUserChangeNOPanel.StartChangeNO, ChangeNOOldSerialNO.ToString("X8") + " " + ChangeNONewSerialNO.ToString("X8"))); } else { MessageBox.Show("信道必须小于30,切不能为23 24 25"); } } else { MessageBox.Show("信道必须是数字"); } } else { MessageBox.Show("新用户号必须小于33"); } } else { MessageBox.Show("新用户号必须为数字形式"); } } else { MessageBox.Show("原用户号必须小于33"); } } else { MessageBox.Show("原用户号必须为数字形式"); } } else { MessageBox.Show("新组号必须小于16777215"); } } else { MessageBox.Show("新组号必须为数字形式"); } } else { MessageBox.Show("原组号必须小于16777215"); } } else { MessageBox.Show("原组号必须为数字形式"); } }