Example #1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ProductID       pid = ProductID.Unknow;
            CustomProductID cid = CustomProductID.Unknow;

            if (Enum.IsDefined(typeof(CustomProductID), m_Parameter.PumpType))
            {
                cid = (CustomProductID)Enum.Parse(typeof(CustomProductID), m_Parameter.PumpType);
                pid = ProductIDConvertor.Custom2ProductID(cid);
            }
            int pumpCount = m_PumpLocationList.Count;

            if (pid == ProductID.GrasebyF8)
            {
                pumpCount = pumpCount * 2;
            }

            if (m_PumpLocationList != null && pumpCount <= 15)
            {
                this.Height   += pumpCount * 40;
                this.Height   += 8;
                scroll.Height += pumpCount * 40;
                scroll.Height += 8;
            }
            else
            {
                this.Height   += 16 * 40;
                this.Height   += 8;
                scroll.Height += 15 * 40;
            }

            LoadDetailList();
        }
Example #2
0
        /// <summary>
        /// C9是否通过测试
        /// </summary>
        /// <returns></returns>
        public override bool IsPass()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(false);
            }
            ProductID pid = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;
            uint      depletealArmIndex = 0, lowVolArmIndex = 0;      //耗尽和低电压索引
            uint      completeArmIndex = 0, willCompleteArmIndex = 0; //输液结束和输液即将结束
            uint      forgetStartAlarmIndex = 0;                      //遗忘操作

            #region                                                   //查询耗尽、遗忘操作、低电、输液结束和输液即将结束5种类型的报警ID
            switch (pid)
            {
            case ProductID.GrasebyC9:
                alarmMetrix           = AlarmMetrix.Instance().AlarmMetrixC9;
                depletealArmIndex     = 15;
                lowVolArmIndex        = 12;
                completeArmIndex      = 17;
                willCompleteArmIndex  = 14;
                forgetStartAlarmIndex = 13;
                break;

            default:
                break;
            }
            #endregion
            if (depletealArmIndex == 0 ||
                lowVolArmIndex == 0 ||
                completeArmIndex == 0 ||
                willCompleteArmIndex == 0 ||
                forgetStartAlarmIndex == 0
                )
            {
                return(false);
            }
            int findIndex = m_AlarmList.FindIndex((x) =>
            {
                return(x > 0 &&
                       x != depletealArmIndex &&
                       x != lowVolArmIndex &&
                       x != completeArmIndex &&
                       x != willCompleteArmIndex &&
                       x != forgetStartAlarmIndex);
            });
            if (findIndex >= 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Example #3
0
 /// <summary>
 /// 重新初始化压力等级,C9有个等级,其他泵则只有4个
 /// </summary>
 /// <param name="cid"></param>
 private void InitPressureLevel(CustomProductID cid)
 {
     if (cid == CustomProductID.GrasebyC9)
     {
         cmOcclusionLevel.ItemsSource = Enum.GetNames(typeof(C9OcclusionLevel));
     }
     else
     {
         cmOcclusionLevel.ItemsSource = Enum.GetNames(typeof(OcclusionLevel));
     }
 }
Example #4
0
 /// <summary>
 /// 当已经配置完成后,重新再进入配置界面时,要将之前的参数赋值
 /// </summary>
 private void InitParameter()
 {
     if (DockWindow.m_DockParameter.ContainsKey(m_DockNo))
     {
         AgingParameter para  = DockWindow.m_DockParameter[m_DockNo] as AgingParameter;
         int            index = -1;
         for (int i = 0; i < cmPumpType.Items.Count; i++)
         {
             if (string.Compare(cmPumpType.Items[i].ToString(), para.PumpType, true) == 0)
             {
                 index = i;
                 break;
             }
         }
         if (index >= 0)
         {
             cmPumpType.SelectedIndex = index;
             CustomProductID cid = ProductIDConvertor.Name2CustomProductID(para.PumpType);
             for (int i = 0; i < cmOcclusionLevel.Items.Count; i++)
             {
                 if (cid == CustomProductID.GrasebyC9)
                 {
                     if (string.Compare(cmOcclusionLevel.Items[i].ToString(), para.C9OclusionLevel.ToString(), true) == 0)
                     {
                         index = i;
                         break;
                     }
                 }
                 else
                 {
                     if (string.Compare(cmOcclusionLevel.Items[i].ToString(), para.OclusionLevel.ToString(), true) == 0)
                     {
                         index = i;
                         break;
                     }
                 }
             }
             if (index >= 0)
             {
                 cmOcclusionLevel.SelectedIndex = index;
             }
         }
         tbRate.Text     = para.Rate.ToString();
         tbVolume.Text   = para.Volume.ToString();
         tbCharge.Text   = para.ChargeTime.ToString();
         tbRecharge.Text = para.RechargeTime.ToString();
     }
 }
Example #5
0
        /// <summary>
        /// 查找某C9类泵所有出现的报警ID对应的首次发生时间
        /// </summary>
        /// <returns></returns>
        public override string GetAlarmStringAndOcurredTime()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(string.Empty);
            }
            ProductID pid         = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;

            #region //查询所属报警的映射表
            switch (pid)
            {
            case ProductID.GrasebyC9:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC9;
                break;

            default:
                break;
            }
            #endregion
            if (alarmMetrix == null)
            {
                return("");
            }
            StringBuilder sb          = new StringBuilder();
            DateTime      ocurredTime = DateTime.MinValue;
            foreach (var id in m_AlarmList)
            {
                if (id > 0)
                {
                    if (m_AlarmOccurredTime.ContainsKey(id))
                    {
                        ocurredTime = (DateTime)m_AlarmOccurredTime[id];
                        if (ocurredTime.Year > 2000)
                        {
                            sb.Append(ocurredTime.ToString("yyyy-MM-dd HH:mm:ss"));
                            sb.Append("->");
                        }
                    }
                    sb.Append(alarmMetrix[id] as string);
                    sb.Append("\n");
                }
            }
            return(sb.ToString().TrimEnd('\n'));
        }
Example #6
0
        public override string GetAlarmString()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(string.Empty);
            }
            ProductID pid         = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;

            #region //查询所属报警的映射表
            switch (pid)
            {
            case ProductID.GrasebyC9:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC9;
                break;

            default:
                break;
            }
            #endregion
            if (alarmMetrix == null)
            {
                return("");
            }
            StringBuilder sb     = new StringBuilder();
            int           iCount = 0;
            foreach (var id in m_AlarmList)
            {
                if (alarmMetrix.ContainsKey(id))
                {
                    sb.Append(alarmMetrix[id] as string);
                    sb.Append(";");
                    ++iCount;
                    if (iCount % 2 == 0)
                    {
                        sb.Append("\n");
                    }
                }
            }
            return(sb.ToString());
        }
Example #7
0
        /// <summary>
        /// 选择泵类型,下拉列表框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SinglePump      pump        = null;
            string          strPumpType = string.Empty;
            int             index       = 0;
            CustomProductID cid         = CustomProductID.Unknow;

            for (int i = 0; i < pumplistGrid.Children.Count; i++)
            {
                if (pumplistGrid.Children[i] is SinglePump)
                {
                    pump        = pumplistGrid.Children[i] as SinglePump;
                    strPumpType = cmPumpType.Items[cmPumpType.SelectedIndex].ToString();
                    cid         = ProductIDConvertor.Name2CustomProductID(strPumpType);
                    InitPressureLevel(cid);
                    if (cid == CustomProductID.GrasebyF6_Double || cid == CustomProductID.WZS50F6_Double)
                    {
                        if (pump.Tag != null && !string.IsNullOrEmpty(pump.Tag.ToString()))
                        {
                            if (int.TryParse(pump.Tag.ToString(), out index))
                            {
                                if (index % 2 == 1)
                                {
                                    pump.lbPumpType.Content = strPumpType + " 1道";
                                }
                                else
                                {
                                    pump.lbPumpType.Content = strPumpType + " 2道";
                                }
                            }
                        }
                        pump.EnableCheckBoxClick = true;
                    }
                    else
                    {
                        pump.EnableCheckBoxClick = false;
                        pump.lbPumpType.Content  = strPumpType;
                    }
                }
            }
        }
Example #8
0
        /// <summary>
        /// 当客户端连入时要发送泵类型信息,
        /// 如果用户尚未配置,则不用发,留到点开始的时候发
        /// </summary>
        /// <param name="e"></param>
        private void SendPumpType2Wifi(SocketConnectArgs e)
        {
            Controller controller = ControllerManager.Instance().Get(e.ConnectedSocket);

            if (controller == null)
            {
                return;
            }
            int       dockNo = controller.DockNo;
            AgingDock dock   = m_DockList.Find((x) => { return(x.DockNo == dockNo); });

            if (dock == null || dock.ChannelHashRowNo == null || !dock.ChannelHashRowNo.ContainsKey(controller.RowNo))
            {
                return;
            }
            AgingParameter para = m_DockParameter[dockNo] as AgingParameter;

            if (para != null)
            {
                CustomProductID cid        = ProductIDConvertor.Name2CustomProductID(para.PumpType);
                ProductID       pid        = ProductIDConvertor.Custom2ProductID(cid);
                CommandManage   cmdManager = new CommandManage();
                int             iChannel   = (int)dock.ChannelHashRowNo[controller.RowNo];
                byte            channel    = (byte)(iChannel & 0x000000FF);
                //一旦收到连接,立即发送泵信息,必须要延迟10秒
                if (pid == ProductID.Graseby1200En)//英文版的ID和中文的一样
                {
                    pid = ProductID.Graseby1200;
                }
                cmdManager.SendPumpType(pid, (ushort)m_QueryInterval, e.ConnectedSocket, null, channel);
            }
            else
            {
                Logger.Instance().Debug("SendPumpType2Wifi()->DefaultParameter is null");
            }
        }
Example #9
0
        /// <summary>
        /// 判断是否通过的标准就是除了低电和耗尽,其他的报警都算不通过(项目二期修改要求:输液即将结束、输液结束不作为报警存在)
        /// </summary>
        /// <returns></returns>
        public bool IsPass()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(false);
            }
            ProductID pid = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;
            uint      depletealArmIndex = 0, lowVolArmIndex = 0;      //耗尽和低电压索引
            uint      completeArmIndex = 0, willCompleteArmIndex = 0; //输液结束和输液即将结束
            uint      forgetStartAlarmIndex = 0;                      //未启动

            #region                                                   //查询耗尽.低电输液结束和输液即将结束4种类型的报警索引
            switch (pid)
            {
            case ProductID.GrasebyC6:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrixC6;
                depletealArmIndex    = 0x00000008;
                lowVolArmIndex       = 0x00000100;
                completeArmIndex     = 0x00000080;
                willCompleteArmIndex = 0;
                break;

            case ProductID.GrasebyC6T:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrixC6T;
                depletealArmIndex    = 0x00000008;
                lowVolArmIndex       = 0x00000100;
                completeArmIndex     = 0x00000080;
                willCompleteArmIndex = 0;
                break;

            case ProductID.GrasebyC8:
                alarmMetrix           = AlarmMetrix.Instance().AlarmMetrixC8;
                depletealArmIndex     = 0x00010000;
                lowVolArmIndex        = 0x00000001;
                completeArmIndex      = 0x00040000;
                willCompleteArmIndex  = 0x00000004;
                forgetStartAlarmIndex = 0x00000002;
                break;

            case ProductID.GrasebyF6:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrixF6;
                depletealArmIndex    = 0x00000008;
                lowVolArmIndex       = 0x00000100;
                completeArmIndex     = 0x00000080;
                willCompleteArmIndex = 0;
                break;

            case ProductID.GrasebyF8:    //C8和F8是一样
                alarmMetrix           = AlarmMetrix.Instance().AlarmMetrixC8;
                depletealArmIndex     = 0x00010000;
                lowVolArmIndex        = 0x00000001;
                completeArmIndex      = 0x00040000;
                willCompleteArmIndex  = 0x00000004;
                forgetStartAlarmIndex = 0x00000002;
                break;

            case ProductID.Graseby1200:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrix1200;
                depletealArmIndex    = 0x00000010;
                lowVolArmIndex       = 0x00004000;
                completeArmIndex     = 0x00000100;
                willCompleteArmIndex = 0x00001000;
                break;

            case ProductID.Graseby1200En:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrix1200En;
                depletealArmIndex    = 0x00000020;
                lowVolArmIndex       = 0x00008000;
                completeArmIndex     = 0x00000200;
                willCompleteArmIndex = 0x00002000;
                break;

            case ProductID.Graseby2000:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrix2000;
                depletealArmIndex    = 0x00000008;
                lowVolArmIndex       = 0x00000100;
                completeArmIndex     = 0x00000080;
                willCompleteArmIndex = 0;
                break;

            case ProductID.Graseby2100:
                alarmMetrix          = AlarmMetrix.Instance().AlarmMetrix2100;
                depletealArmIndex    = 0x00000008;
                lowVolArmIndex       = 0x00000100;
                completeArmIndex     = 0x00000080;
                willCompleteArmIndex = 0;
                break;

            default:
                break;
            }
            #endregion

            uint filterAlarm = m_Alarm & (~(depletealArmIndex | lowVolArmIndex | completeArmIndex | willCompleteArmIndex | forgetStartAlarmIndex));
            if (filterAlarm > 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Example #10
0
        public string GetAlarmStringAndOcurredTime()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(string.Empty);
            }
            ProductID pid         = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;

            #region //查询所属报警的映射表
            switch (pid)
            {
            case ProductID.GrasebyC6:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6;
                break;

            case ProductID.GrasebyC6T:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6T;
                break;

            case ProductID.GrasebyC8:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8;
                break;

            case ProductID.GrasebyF6:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixF6;
                break;

            case ProductID.GrasebyF8:    //C8和F8是一样
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8;
                break;

            case ProductID.Graseby1200:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200;
                break;

            case ProductID.Graseby1200En:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200En;
                break;

            case ProductID.Graseby2000:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2000;
                break;

            case ProductID.Graseby2100:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2100;
                break;

            default:
                break;
            }
            #endregion
            StringBuilder sb          = new StringBuilder();
            DateTime      ocurredTime = DateTime.MinValue;
            foreach (DictionaryEntry dic in alarmMetrix)
            {
                uint alarmID = (uint)dic.Key;
                if ((alarmID & m_Alarm) == alarmID)
                {
                    if (m_AlarmOccurredTime.ContainsKey(alarmID))
                    {
                        ocurredTime = (DateTime)m_AlarmOccurredTime[alarmID];
                        if (ocurredTime.Year > 2000)
                        {
                            sb.Append(ocurredTime.ToString("yyyy-MM-dd HH:mm:ss"));
                            sb.Append("->");
                        }
                    }
                    sb.Append(dic.Value);
                    sb.Append("\n");
                }
            }
            return(sb.ToString().TrimEnd('\n'));
        }
Example #11
0
        public string GetAlarmString()
        {
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_PumpType);

            if (cid == CustomProductID.Unknow)
            {
                Logger.Instance().ErrorFormat("泵类型转换出错,不支持的类型 PumpType ={0}", m_PumpType);
                return(string.Empty);
            }
            ProductID pid         = ProductIDConvertor.Custom2ProductID(cid);
            Hashtable alarmMetrix = null;

            #region //查询所属报警的映射表
            switch (pid)
            {
            case ProductID.GrasebyC6:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6;
                break;

            case ProductID.GrasebyC6T:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC6T;
                break;

            case ProductID.GrasebyC8:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8;
                break;

            case ProductID.GrasebyF6:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixF6;
                break;

            case ProductID.GrasebyF8:    //C8和F8是一样
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrixC8;
                break;

            case ProductID.Graseby1200:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200;
                break;

            case ProductID.Graseby1200En:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix1200En;
                break;

            case ProductID.Graseby2000:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2000;
                break;

            case ProductID.Graseby2100:
                alarmMetrix = AlarmMetrix.Instance().AlarmMetrix2100;
                break;

            default:
                break;
            }
            #endregion
            StringBuilder sb     = new StringBuilder();
            int           iCount = 0;
            foreach (DictionaryEntry dic in alarmMetrix)
            {
                uint alarmID = (uint)dic.Key;
                if ((alarmID & m_Alarm) == alarmID)
                {
                    sb.Append(dic.Value);
                    sb.Append(";");
                    ++iCount;
                    if (iCount % 2 == 0)
                    {
                        sb.Append("\n");
                    }
                }
            }
            return(sb.ToString());
        }
Example #12
0
        private void OnSave(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(tbRate.Text.Trim()) ||
                string.IsNullOrEmpty(tbVolume.Text.Trim()) ||
                string.IsNullOrEmpty(tbCharge.Text.Trim()) ||
                string.IsNullOrEmpty(tbRecharge.Text.Trim()) ||
                cmPumpType.SelectedIndex < 0 ||
                cmOcclusionLevel.SelectedIndex < 0
                )
            {
                MessageBox.Show("请将参数填写完整");
                return;
            }
            string  szCustomPid     = cmPumpType.Items[cmPumpType.SelectedIndex].ToString();
            string  szPressureLevel = cmOcclusionLevel.Items[cmOcclusionLevel.SelectedIndex].ToString();
            decimal rate            = Convert.ToDecimal(float.Parse(tbRate.Text).ToString("F1"));
            decimal volume          = Convert.ToDecimal(float.Parse(tbVolume.Text).ToString("F1"));
            decimal charge          = Convert.ToDecimal(tbCharge.Text);

            CustomProductID  cid     = ProductIDConvertor.Name2CustomProductID(szCustomPid);
            OcclusionLevel   level   = OcclusionLevel.H;
            C9OcclusionLevel c9Level = C9OcclusionLevel.Level3;

            if (cid == CustomProductID.GrasebyC9)
            {
                if (Enum.IsDefined(typeof(C9OcclusionLevel), szPressureLevel))
                {
                    c9Level = (C9OcclusionLevel)Enum.Parse(typeof(C9OcclusionLevel), szPressureLevel);
                }
                else
                {
                    Logger.Instance().ErrorFormat("Configuration::OnSave()->压力转换出错,C9OcclusionLevel={0}", szPressureLevel);
                }
            }
            else
            {
                if (Enum.IsDefined(typeof(OcclusionLevel), szPressureLevel))
                {
                    level = (OcclusionLevel)Enum.Parse(typeof(OcclusionLevel), szPressureLevel);
                }
                else
                {
                    Logger.Instance().ErrorFormat("Configuration::OnSave()->压力转换出错,OcclusionLevel={0}", szPressureLevel);
                }
            }

            decimal        discharge     = 0;
            decimal        recharge      = Convert.ToDecimal(tbRecharge.Text);
            Hashtable      dockParameter = new Hashtable();
            AgingParameter para          = new AgingParameter(szCustomPid,
                                                              rate,
                                                              volume,
                                                              charge,
                                                              discharge,
                                                              recharge,
                                                              level,
                                                              c9Level);

            for (int i = 0; i < otherDockCheckBoxGrid.Children.Count; i++)
            {
                if (otherDockCheckBoxGrid.Children[i] is CheckBox)
                {
                    CheckBox box = otherDockCheckBoxGrid.Children[i] as CheckBox;
                    if (box.IsChecked.HasValue)
                    {
                        if (box.IsChecked == true)
                        {
                            dockParameter.Add((int)box.Tag, new AgingParameter(para));   //这里需要拷贝一份新的参数
                        }
                    }
                }
            }
            if (OnSaveConfigration != null)
            {
                OnSaveConfigration(this, new ConfigrationArgs(dockParameter));
            }
            this.DialogResult = true;
        }
Example #13
0
        /// <summary>
        /// 只显示那些用户选中的泵信息
        /// </summary>
        private void LoadDetailList()
        {
            //列表中要显示几台泵
            int pumpCount = m_PumpLocationList.Count;


            if (pumpCount <= 0)
            {
                Logger.Instance().Info("老化泵数量等于0。");
                return;
            }
            CustomProductID cid = ProductIDConvertor.Name2CustomProductID(m_Parameter.PumpType);
            ProductID       pid = ProductIDConvertor.Custom2ProductID(cid);

            if (pid == ProductID.GrasebyF8)
            {
                pumpCount = pumpCount * 2;//F8则需要X2
            }
            for (int i = 0; i < pumpCount; i++)
            {
                RowDefinition row = new RowDefinition();
                row.Height = new GridLength(40);
                pumpListGrid.RowDefinitions.Add(row);
            }

            for (int i = 0; i < pumpCount; i++)
            {
                SingleDetail detail = new SingleDetail();
                //F6,F8双道泵显示详细内容与其他泵不一样,要体现双道信息
                if (cid == CustomProductID.GrasebyF6_Double || cid == CustomProductID.WZS50F6_Double)
                {
                    if (m_PumpLocationList[i].Item3 % 2 == 0)
                    {
                        detail.lbPumpLocation.Content = string.Format("{0}-{1}-{2}(2道泵)", m_DockNo, m_PumpLocationList[i].Item2, m_PumpLocationList[i].Item3);
                    }
                    else
                    {
                        detail.lbPumpLocation.Content = string.Format("{0}-{1}-{2}(1道泵)", m_DockNo, m_PumpLocationList[i].Item2, m_PumpLocationList[i].Item3);
                    }
                    detail.lbPumpSN.Content = m_PumpLocationList[i].Item4;
                }
                else if (cid == CustomProductID.GrasebyF8)
                {
                    if (i % 2 == 0)
                    {
                        detail.lbPumpLocation.Content = string.Format("{0}-{1}-{2}(1道泵)", m_DockNo, m_PumpLocationList[i / 2].Item2, m_PumpLocationList[i / 2].Item3);
                    }
                    else
                    {
                        detail.lbPumpLocation.Content = string.Format("{0}-{1}-{2}(2道泵)", m_DockNo, m_PumpLocationList[i / 2].Item2, m_PumpLocationList[i / 2].Item3);
                    }
                    detail.lbPumpSN.Content = m_PumpLocationList[i / 2].Item4;
                }
                else
                {
                    detail.lbPumpSN.Content       = m_PumpLocationList[i].Item4;
                    detail.lbPumpLocation.Content = string.Format("{0}-{1}-{2}", m_DockNo, m_PumpLocationList[i].Item2, m_PumpLocationList[i].Item3);
                }
                detail.Name               = "detail" + (i + 1).ToString();
                detail.Tag                = i + 1;
                detail.Margin             = new Thickness(1, 1, 1, 1);
                detail.lbNo.Content       = string.Format("{0}", i + 1);
                detail.lbPumpType.Content = m_Parameter.PumpType;
                detail.lbRate.Content     = m_Parameter.Rate.ToString();
                AgingPump AgingPump = null;
                if (cid == CustomProductID.GrasebyF8)
                {
                    //F8双通道共用一个串口,在查找泵时需要指定通道编号从0开始
                    AgingPump = m_AgingPumpList.Find((x) => { return(x.DockNo == m_DockNo && x.RowNo == m_PumpLocationList[i / 2].Item2 && x.Channel == m_PumpLocationList[i / 2].Item3 && x.SubChannel == i % 2); });
                }
                else
                {
                    AgingPump = m_AgingPumpList.Find((x) => { return(x.DockNo == m_DockNo && x.RowNo == m_PumpLocationList[i].Item2 && x.Channel == m_PumpLocationList[i].Item3); });
                }
                if (AgingPump != null)
                {
                    if (AgingPump.BeginAgingTime.Year > 2000)
                    {
                        detail.lbAgingStartTime.Content = AgingPump.BeginAgingTime.ToString("MM-dd HH:mm:ss");
                    }
                    if (AgingPump.BeginDischargeTime.Year > 2000)
                    {
                        detail.lbDischargeStartTime.Content = AgingPump.BeginDischargeTime.ToString("MM-dd HH:mm:ss");
                    }
                    if (AgingPump.BeginLowVoltageTime.Year > 2000)
                    {
                        detail.lbLowVoltageStartTime.Content = AgingPump.BeginLowVoltageTime.ToString("MM-dd HH:mm:ss");
                    }
                    if (AgingPump.BeginBattaryDepleteTime.Year > 2000)
                    {
                        detail.lbDepleteStartTime.Content = AgingPump.BeginBattaryDepleteTime.ToString("MM-dd HH:mm:ss");
                    }
                    if (AgingPump.EndAgingTime.Year > 2000)
                    {
                        detail.lbAgingEndTime.Content = AgingPump.EndAgingTime.ToString("MM-dd HH:mm:ss");
                    }
                    detail.lbAlarm.Content       = AgingPump.GetAlarmString();
                    detail.lbAgingStatus.Content = AgingStatusMetrix.Instance().GetAgingStatus(AgingPump.AgingStatus);
                    if (AgingPump.AgingStatus == EAgingStatus.Unknown)
                    {
                        Logger.Instance().InfoFormat("泵状态显示异常,为未状态开始老化时间={0}", AgingPump.BeginAgingTime.ToString());
                    }
                }
                else
                {
                    detail.lbAgingStartTime.Content      = "";
                    detail.lbDischargeStartTime.Content  = "";
                    detail.lbLowVoltageStartTime.Content = "";
                    detail.lbDepleteStartTime.Content    = "";
                    detail.lbAgingEndTime.Content        = "";
                    detail.lbAlarm.Content       = "";
                    detail.lbAgingStatus.Content = "";
                }
                pumpListGrid.Children.Add(detail);
                Grid.SetRow(detail, i + 1);
                if (i % 2 == 0)
                {
                    detail.Background = new SolidColorBrush(System.Windows.Media.Color.FromRgb(0x00, 0xA2, 0xE8));
                }
            }
        }
Example #14
0
        /// <summary>
        /// 当条码枪完成一次扫码,光标自动跳到下一条
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnSerialNoInputComplete(object sender, SerialNoInputArgs e)
        {
            if (m_CheckedPumpLocationList.Count <= 0)
            {
                return;
            }
            if (cmPumpType.SelectedIndex < 0)
            {
                return;
            }
            string          strPumpType = cmPumpType.Items[cmPumpType.SelectedIndex].ToString();
            CustomProductID cid         = ProductIDConvertor.Name2CustomProductID(strPumpType);
            int             index       = m_CheckedPumpLocationList.FindIndex((x) => { return(e.PumpLocation == x); });

            if (index >= 0 && index + 1 < m_CheckedPumpLocationList.Count)
            {
                if (cid == CustomProductID.GrasebyF6_Double || cid == CustomProductID.WZS50F6_Double)
                {
                    #region
                    SinglePump pump = null;
                    //第一道泵序列号与第二道 一样
                    if (index % 2 == 0)
                    {
                        if (m_CheckedPumpLocationList.Count > index + 1)
                        {
                            pump = FindPumpByLocation(m_CheckedPumpLocationList[index + 1]);
                            if (pump != null)
                            {
                                pump.SetSerialNo(e.SerialNo);
                            }
                        }
                        if (m_CheckedPumpLocationList.Count > index + 2)
                        {
                            //光标跳到下一个泵
                            pump = FindPumpByLocation(m_CheckedPumpLocationList[index + 2]);
                            if (pump != null)
                            {
                                pump.SetCursor();
                            }
                        }
                    }
                    else
                    {
                        if (m_CheckedPumpLocationList.Count > index - 1)
                        {
                            pump = FindPumpByLocation(m_CheckedPumpLocationList[index - 1]);
                            if (pump != null)
                            {
                                pump.SetSerialNo(e.SerialNo);
                            }
                        }
                        //光标跳到下一个泵
                        if (m_CheckedPumpLocationList.Count > index + 1)
                        {
                            pump = FindPumpByLocation(m_CheckedPumpLocationList[index + 1]);
                            if (pump != null)
                            {
                                pump.SetCursor();
                            }
                        }
                    }
                    #endregion
                }
                else
                {
                    SinglePump pump = FindPumpByLocation(m_CheckedPumpLocationList[index + 1]);
                    if (pump != null)
                    {
                        pump.SetCursor();
                    }
                }
            }
        }
Example #15
0
        public static CustomProductID Name2CustomProductID(string name)
        {
            CustomProductID cid = CustomProductID.Unknow;

            switch (name)
            {
            case "GrasebyC6":
                cid = CustomProductID.GrasebyC6;
                break;

            case "WZ50C6":
                cid = CustomProductID.WZ50C6;
                break;

            case "GrasebyC6T":
                cid = CustomProductID.GrasebyC6T;
                break;

            case "GrasebyF6单道":
                cid = CustomProductID.GrasebyF6_Single;
                break;

            case "Graseby2000":
                cid = CustomProductID.Graseby2000;
                break;

            case "Graseby2100":
                cid = CustomProductID.Graseby2100;
                break;

            case "GrasebyC8":
                cid = CustomProductID.GrasebyC8;
                break;

            case "Graseby1200中文":
                cid = CustomProductID.Graseby1200;
                break;

            case "Graseby1200英文":
                cid = CustomProductID.Graseby1200En;
                break;

            case "GrasebyF6双道":
                cid = CustomProductID.GrasebyF6_Double;
                break;

            case "WZS50F6单道":
                cid = CustomProductID.WZS50F6_Single;
                break;

            case "WZS50F6双道":
                cid = CustomProductID.WZS50F6_Double;
                break;

            case "GrasebyF8":
                cid = CustomProductID.GrasebyF8;
                break;

            case "GrasebyC9":
                cid = CustomProductID.GrasebyC9;
                break;

            default:
                cid = CustomProductID.Unknow;
                break;
            }
            return(cid);
        }
Example #16
0
        public static string CustomProductID2Name(CustomProductID cid)
        {
            string name = string.Empty;

            switch (cid)
            {
            case CustomProductID.GrasebyC6:
                name = "GrasebyC6";
                break;

            case CustomProductID.WZ50C6:
                name = "WZ50C6";
                break;

            case CustomProductID.GrasebyC6T:
                name = "GrasebyC6T";
                break;

            case CustomProductID.GrasebyF6_Single:
                name = "GrasebyF6单道";
                break;

            case CustomProductID.Graseby2000:
                name = "Graseby2000";
                break;

            case CustomProductID.Graseby2100:
                name = "Graseby2100";
                break;

            case CustomProductID.GrasebyC8:
                name = "GrasebyC8";
                break;

            case CustomProductID.Graseby1200:
                name = "Graseby1200中文";
                break;

            case CustomProductID.Graseby1200En:
                name = "Graseby1200英文";
                break;

            case CustomProductID.GrasebyF6_Double:
                name = "GrasebyF6双道";
                break;

            case CustomProductID.WZS50F6_Single:
                name = "WZS50F6单道";
                break;

            case CustomProductID.WZS50F6_Double:
                name = "WZS50F6双道";
                break;

            case CustomProductID.GrasebyF8:
                name = "GrasebyF8";
                break;

            case CustomProductID.GrasebyC9:
                name = "GrasebyC9";
                break;

            default:
                name = string.Empty;
                break;
            }
            return(name);
        }
Example #17
0
        public static ProductID Custom2ProductID(CustomProductID cid)
        {
            ProductID pid = ProductID.Unknow;

            switch (cid)
            {
            case CustomProductID.GrasebyC6:
                pid = ProductID.GrasebyC6;
                break;

            case CustomProductID.WZ50C6:
                pid = ProductID.WZ50C6;
                break;

            case CustomProductID.GrasebyC6T:
                pid = ProductID.GrasebyC6T;
                break;

            case CustomProductID.GrasebyF6_Single:
                pid = ProductID.GrasebyF6;
                break;

            case CustomProductID.Graseby2000:
                pid = ProductID.Graseby2000;
                break;

            case CustomProductID.Graseby2100:
                pid = ProductID.Graseby2100;
                break;

            case CustomProductID.GrasebyC8:
                pid = ProductID.GrasebyC8;
                break;

            case CustomProductID.Graseby1200:
                pid = ProductID.Graseby1200;
                break;

            case CustomProductID.Graseby1200En:
                pid = ProductID.Graseby1200En;
                break;

            case CustomProductID.GrasebyF6_Double:
                pid = ProductID.GrasebyF6;
                break;

            case CustomProductID.WZS50F6_Single:
                pid = ProductID.WZS50F6;
                break;

            case CustomProductID.WZS50F6_Double:
                pid = ProductID.WZS50F6;
                break;

            case CustomProductID.GrasebyF8:
                pid = ProductID.GrasebyF8;
                break;

            case CustomProductID.GrasebyC9:
                pid = ProductID.GrasebyC9;
                break;

            default:
                pid = ProductID.Unknow;
                break;
            }
            return(pid);
        }