Exemplo n.º 1
0
        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("端口未打开");
            };
        }
Exemplo n.º 2
0
        private void teststatusbtn_Click(object sender, RoutedEventArgs e)
        {
            string s = testbox.Text;
            int    i = int.Parse(s);

            comstatus = ( CommandPanlStatus )i;
            EnableUI();
        }
Exemplo n.º 3
0
        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("端口未打开");
            };
        }
Exemplo n.º 4
0
        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("端口未打开");
            }
        }
Exemplo n.º 5
0
        //处理下维机的命令回应,在控制面板上显示下维机的状态
        //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;
                }
            }));
        }
Exemplo n.º 6
0
        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;
                }
            }
        }