private void m12_Click(object sender, RoutedEventArgs e) { //测量-清洗 if (comstatus == CommandPanlStatus.Air_Wash_Doing || comstatus == CommandPanlStatus.Air_Wash_Waiting) { return; //donn't repeat send } byte[] data = new byte[8] { 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0, 0 }; ushort crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "清洗命令已发出"; statustxt_2.Content = "清洗命令已发出"; comstatus = CommandPanlStatus.Air_Wash_Waiting; } else { MessageBox.Show("端口未打开"); }; }
private void teststatusbtn_Click(object sender, RoutedEventArgs e) { string s = testbox.Text; int i = int.Parse(s); comstatus = ( CommandPanlStatus )i; EnableUI(); }
private void m22_Click(object sender, RoutedEventArgs e) { //液体测量-返回上一级菜单 byte[] data = new byte[8] { 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0, 0 }; ushort crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "停止连续测量命令已发出"; statustxt_2.Content = "停止连续测量命令已发出"; comstatus = CommandPanlStatus.LiquidTestReturn_Finished; } else { MessageBox.Show("端口未打开"); }; }
private void pm7_Click(object sender, RoutedEventArgs e) { //获取状态命令 //也许多次重发是件好事 byte[] data = new byte[8] { 0x01, 0x01, 0x07, 0x00, 0x00, 0x00, 0, 0 }; ushort crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "获取状态命令已发出"; statustxt_2.Content = "获取状态命令已发出"; comstatus = CommandPanlStatus.GetStatus_Waiting; } else { MessageBox.Show("端口未打开"); } }
//处理下维机的命令回应,在控制面板上显示下维机的状态 //result 0 - 表示失败, 1 - 表示成功 //目前仅仅获取状态命令有回应myparams public void ShowNormalCmndRes(int command, int result, byte[] myparams) { Dispatcher.BeginInvoke(new Action(() => { switch (command) { //参数设置-时间 case 0x11: if (result == 0) { statustxt.Text = "设置时间失败"; statustxt_2.Content = "设置时间失败"; } else { statustxt.Text = "设置时间成功"; statustxt_2.Content = "设置时间成功"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; //参数设置-流量 case 0x12: if (result == 0) { statustxt.Text = "设置流量失败"; statustxt_2.Content = "设置流量失败"; } else { statustxt.Text = "设置流量成功"; statustxt_2.Content = "设置流量成功"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; //参数设置-清洗时长 case 0x13: if (result == 0) { statustxt.Text = "设置清洗时长失败"; statustxt_2.Content = "设置清洗时长失败"; } else { statustxt.Text = "设置清洗时长成功"; statustxt_2.Content = "设置清洗时长成功"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; //参数设置-高压 case 0x14: if (result == 0) { statustxt.Text = "设置高压失败"; statustxt_2.Content = "设置高压失败"; } else { statustxt.Text = "设置高压成功"; statustxt_2.Content = "设置高压成功"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; case 0x15: //参数设置-发大倍数 if (result == 0) { statustxt.Text = "设置放大倍数失败"; statustxt_2.Content = "设置放大倍数失败"; } else if (result == 1) { statustxt.Text = "正在设置放大倍数"; statustxt_2.Content = "正在设置放大倍数"; } else if (result == 2) { statustxt.Text = "设置放大倍数成功"; statustxt_2.Content = "设置放大倍数成功"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; case 0x16: //参数设置-返回上一级 if (result == 0) { statustxt.Text = "返回命令被拒绝"; statustxt_2.Content = "返回命令被拒绝"; } else if (result == 1) { statustxt.Text = "正在归0"; statustxt_2.Content = "正在归0"; } else if (result == 2) { statustxt.Text = "归0完成"; statustxt_2.Content = "归0完成"; } comstatus = CommandPanlStatus.ParamSet_Finished; EnableUI(); break; case 0x21: //测量-取样 if (result == 0) { statustxt.Text = "取样命令执行失败"; statustxt_2.Content = "取样命令执行失败"; } else if (result == 1) { statustxt.Text = "正在取样..."; statustxt_2.Content = "正在取样..."; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = false; //测量-清洗按钮 m13.IsEnabled = false; //测量-测量 m14.IsEnabled = false; //测量-返回上一级菜单 m21.IsEnabled = false; //连续测量-开始 m22.IsEnabled = false; //连续测量-退出 pm3.IsEnabled = false; //校准 pm4.IsEnabled = false; //通信 m51.IsEnabled = false; //液体-清洗 m52.IsEnabled = false; //液体-测量 m53.IsEnabled = false; //液体-返回上一级 pm6.IsEnabled = false; //参数设置 pm7.IsEnabled = false; //状态获取 } else if (result == 2) { statustxt.Text = "取样命令执行成功"; statustxt_2.Content = "取样命令执行成功"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } comstatus = CommandPanlStatus.Air_Sample_Finished; EnableUI(); break; case 0x22: //测量-清洗 if (result == 0) { statustxt.Text = "清洗命令执行失败"; statustxt_2.Content = "清洗命令执行失败"; } else if (result == 1) { statustxt.Text = "正在清洗"; statustxt_2.Content = "正在清洗"; } else if (result == 2) { statustxt.Text = "清洗命令执行成功"; statustxt_2.Content = "清洗命令执行成功"; } comstatus = CommandPanlStatus.Air_Wash_Finished; EnableUI(); break; case 0x23: //测量-测量 if (result == 0) { statustxt.Text = "测量命令执行失败"; statustxt_2.Content = "测量命令执行失败"; } else if (result == 1) { statustxt.Text = "正在测量..."; statustxt_2.Content = "正在测量..."; m11.IsEnabled = false; //测量-采样按钮 m12.IsEnabled = false; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = false; //测量-返回上一级菜单 m21.IsEnabled = false; //连续测量-开始 m22.IsEnabled = false; //连续测量-退出 pm3.IsEnabled = false; //校准 pm4.IsEnabled = false; //通信 m51.IsEnabled = false; //液体-清洗 m52.IsEnabled = false; //液体-测量 m53.IsEnabled = false; //液体-返回上一级 pm6.IsEnabled = false; //参数设置 pm7.IsEnabled = false; //状态获取 } else if (result == 2) { statustxt.Text = "测量完成"; statustxt_2.Content = "测量完成"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } comstatus = CommandPanlStatus.Air_Test_Finished; EnableUI(); break; case 0x31: //连续测量-开始 if (result == 0) { statustxt.Text = "开始连续测量命令被拒绝"; statustxt_2.Content = "开始连续测量命令被拒绝"; } else if (result == 1) { statustxt.Text = "连续测量即将开始"; statustxt_2.Content = "连续测量即将开始"; } else if (result == 3) { statustxt.Text = "进入采样阶段"; statustxt_2.Content = "进入采样阶段"; m11.IsEnabled = false; //测量-采样按钮 m12.IsEnabled = false; //测量-清洗按钮 m13.IsEnabled = false; //测量-测量 m14.IsEnabled = false; //测量-返回上一级菜单 m21.IsEnabled = false; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = false; //校准 pm4.IsEnabled = false; //通信 m51.IsEnabled = false; //液体-清洗 m52.IsEnabled = false; //液体-测量 m53.IsEnabled = false; //液体-返回上一级 pm6.IsEnabled = false; //参数设置 pm7.IsEnabled = false; //状态获取 } else if (result == 4) { statustxt.Text = "采样完成"; statustxt_2.Content = "采样完成"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } else if (result == 5) { statustxt.Text = "进入清洗阶段"; statustxt_2.Content = "进入清洗阶段"; } else if (result == 6) { statustxt.Text = "清洗完成"; statustxt_2.Content = "清洗完成"; } else if (result == 7) { statustxt.Text = "进入测量阶段"; statustxt_2.Content = "进入测量阶段"; m11.IsEnabled = false; //测量-采样按钮 m12.IsEnabled = false; //测量-清洗按钮 m13.IsEnabled = false; //测量-测量 m14.IsEnabled = false; //测量-返回上一级菜单 m21.IsEnabled = false; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = false; //校准 pm4.IsEnabled = false; //通信 m51.IsEnabled = false; //液体-清洗 m52.IsEnabled = false; //液体-测量 m53.IsEnabled = false; //液体-返回上一级 pm6.IsEnabled = false; //参数设置 pm7.IsEnabled = false; //状态获取 } else if (result == 8) { statustxt.Text = "测量完成"; statustxt_2.Content = "测量完成"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } comstatus = CommandPanlStatus.ContinueTest_Finished; EnableUI(); break; case 0x32: //连续测量-停止 if (result == 0) { statustxt.Text = "无法停止连续测量"; statustxt_2.Content = "无法停止连续测量"; } else if (result == 2) { statustxt.Text = "连续测量已停止"; statustxt_2.Content = "连续测量已停止"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } comstatus = CommandPanlStatus.ContinueTest_Finished; EnableUI(); break; case 0x40: //校准 if (result == 0) { statustxt.Text = "校准命令执行失败"; statustxt_2.Content = "校准命令执行失败"; } else { statustxt.Text = "校转命令执行成功"; statustxt_2.Content = "校转命令执行成功"; } comstatus = CommandPanlStatus.Adjust_Finished; EnableUI(); break; case 0x50: //通信 if (result == 0) { statustxt.Text = "通信命令执行失败"; statustxt_2.Content = "通信命令执行失败"; } else { statustxt.Text = "同行命令执行成功"; statustxt_2.Content = "同行命令执行成功"; } comstatus = CommandPanlStatus.Communicate_Finished; EnableUI(); break; case 0x61: //液体测量-清洗 if (result == 0) { statustxt.Text = "液体清洗命令执行失败"; statustxt_2.Content = "液体清洗命令执行失败"; } else { statustxt.Text = "液体清洗命令执行成功"; statustxt_2.Content = "液体清洗命令执行成功"; } comstatus = CommandPanlStatus.Liquid_Wash_Finished; EnableUI(); break; case 0x62: //液体测量-测量 if (result == 0) { statustxt.Text = "液体测量命令执行失败"; statustxt_2.Content = "液体测量命令执行失败"; } else if (result == 1) { statustxt.Text = "正在测量液体..."; statustxt_2.Content = "正在测量液体..."; m11.IsEnabled = false; //测量-采样按钮 m12.IsEnabled = false; //测量-清洗按钮 m13.IsEnabled = false; //测量-测量 m14.IsEnabled = false; //测量-返回上一级菜单 m21.IsEnabled = false; //连续测量-开始 m22.IsEnabled = false; //连续测量-退出 pm3.IsEnabled = false; //校准 pm4.IsEnabled = false; //通信 m51.IsEnabled = false; //液体-清洗 m52.IsEnabled = false; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = false; //参数设置 pm7.IsEnabled = false; //状态获取 } else if (result == 2) { statustxt.Text = "液体测量命令执行成功"; statustxt_2.Content = "液体测量命令执行成功"; m11.IsEnabled = true; //测量-采样按钮 m12.IsEnabled = true; //测量-清洗按钮 m13.IsEnabled = true; //测量-测量 m14.IsEnabled = true; //测量-返回上一级菜单 m21.IsEnabled = true; //连续测量-开始 m22.IsEnabled = true; //连续测量-退出 pm3.IsEnabled = true; //校准 pm4.IsEnabled = true; //通信 m51.IsEnabled = true; //液体-清洗 m52.IsEnabled = true; //液体-测量 m53.IsEnabled = true; //液体-返回上一级 pm6.IsEnabled = true; //参数设置 pm7.IsEnabled = true; //状态获取 } comstatus = CommandPanlStatus.Liquid_Testing_Finished; EnableUI(); break; case 0x70: //状态获取 if (result == 0) { statustxt.Text = "获取状态命令执行失败"; statustxt_2.Content = "获取状态命令执行失败"; } else { statustxt.Text = "获取状态命令执行成功"; statustxt_2.Content = "获取状态命令执行成功"; } comstatus = CommandPanlStatus.GetStatus_Finished; EnableUI(); //显示参数 if (myparams != null) { //todo ; } break; default: break; } })); }
private void setParam() { //参数设置 byte[] data = new byte[8] { 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0, 0 }; ushort crc; if (timeckb.IsChecked == true) { if (timeParamTxt.Text != null && timeParamTxt.Text != "") { data[3] = 0x01; //子菜单 data[4] = 0x00; //清空数据高位 //data[5] = byte.Parse(timeParamTxt.Text); data[5] = (byte)timeParamTxt.SelectedIndex; } crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "时间设置命令已发出"; statustxt_2.Content = "时间设置命令已发出"; comstatus = CommandPanlStatus.ParamSet_Waiting; } } if (fluentckb.IsChecked == true) { if (fluParamTxt.Text != null && fluParamTxt.Text != "") { data[3] = 0x02; //子菜单 data[4] = 0x00; //清空数据高位 //data[5] = byte.Parse(fluParamTxt.Text); data[5] = (byte)fluParamTxt.SelectedIndex; } crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "流量设置命令已发出"; statustxt_2.Content = "流量设置命令已发出"; comstatus = CommandPanlStatus.ParamSet_Waiting; } } if (highpressureckb.IsChecked == true) { if (presureParamTxt.Text != null && presureParamTxt.Text != "") { data[3] = 0x04; //子菜单 int pres = int.Parse(presureParamTxt.Text); pres *= -1; data[4] = (byte)(pres >> 8); data[5] = (byte)pres; } crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "高压设置命令已发出"; statustxt_2.Content = "高压设置命令已发出"; comstatus = CommandPanlStatus.ParamSet_Waiting; } } if (amplifyckb.IsChecked == true) { if (enlargeParamTxt.Text != null && enlargeParamTxt.Text != "") { data[3] = 0x05; //子菜单 data[4] = 0x00; //清空数据高位 data[5] = byte.Parse(enlargeParamTxt.Text); } crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "放大倍数设置命令已发出"; statustxt_2.Content = "放大倍数设置命令已发出"; comstatus = CommandPanlStatus.ParamSet_Waiting; } } if (washtimeckb.IsChecked == true) { if (washtimeParamTxt.Text != null && washtimeParamTxt.Text != "") { data[3] = 0x03; //子菜单 data[4] = 0x00; //清空数据高位 //data[5] = byte.Parse(washtimeParamTxt.Text); data[5] = (byte)washtimeParamTxt.SelectedIndex; } crc = Utility.CRC16(data, 6); data[6] = (byte)(crc >> 8); data[7] = (byte)crc; if (SerialDriver.GetDriver().Send(data)) { statustxt.Text = "清洗时长设置命令已发出"; statustxt_2.Content = "清洗时长设置命令已发出"; comstatus = CommandPanlStatus.ParamSet_Waiting; } } }