Ejemplo n.º 1
0
 /// <summary>
 /// 按照不同语言添加不同的品牌名称
 /// </summary>
 /// <param name="lang">语言</param>
 /// <param name="brand">品牌</param>
 /// <param name="name">此语言下的品牌名称</param>
 public void Add(PumpID pid, OcclusionLevel level, int syringeSize, float mid)
 {
     if (!m_HashProductPressure.ContainsKey(pid))
     {
         LevelPressure lp = new LevelPressure(level);
         lp.Add(syringeSize, mid);
         ProductPressure pp = new ProductPressure(pid);
         pp.Add(lp);
         m_HashProductPressure.Add(pid, pp);
     }
     else
     {
         ProductPressure pp = m_HashProductPressure[pid] as ProductPressure;
         LevelPressure   lp = pp.Find(level);
         if (lp != null)
         {
             lp.Add(syringeSize, mid);
         }
         else
         {
             lp = new LevelPressure(level);
             lp.Add(syringeSize, mid);
             pp.Add(lp);
         }
     }
 }
Ejemplo n.º 2
0
 public VisibilityMap(OcclusionLevel defaultVis)
 {
     Width             = 0;
     Height            = 0;
     map               = null;
     DefaultVisibility = defaultVis;
 }
Ejemplo n.º 3
0
        public float m_Pressure;             //计算得出压力值,从采样数据中找

        public PressureParameter(int syringeSize, OcclusionLevel level, float midWeight, float pressure)
        {
            m_SyringeSize = syringeSize;
            m_Level       = level;
            m_MidWeight   = midWeight;
            m_Pressure    = pressure;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 拷贝构造函数
 /// </summary>
 /// <param name="other"></param>
 public AgingParameter(AgingParameter other)
 {
     m_PumpType       = other.m_PumpType;
     m_Rate           = other.m_Rate;
     m_Volume         = other.m_Volume;
     m_ChargeTime     = other.m_ChargeTime;
     m_DischargeTime  = other.m_DischargeTime;
     m_RechargeTime   = other.m_RechargeTime;
     m_OcclusionLevel = other.m_OcclusionLevel;
 }
Ejemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="pumpType"></param>
 /// <param name="rate"></param>
 /// <param name="volume"></param>
 /// <param name="chargeTime"></param>
 /// <param name="dischargeTime"></param>
 /// <param name="rechargeTime"></param>
 public AgingParameter(string pumpType,
                       decimal rate,
                       decimal volume,
                       decimal chargeTime,
                       decimal dischargeTime,
                       decimal rechargeTime,
                       OcclusionLevel oclusionLevel)
 {
     m_PumpType       = pumpType;
     m_Rate           = rate;
     m_Volume         = volume;
     m_ChargeTime     = chargeTime;
     m_DischargeTime  = dischargeTime;
     m_RechargeTime   = rechargeTime;
     m_OcclusionLevel = oclusionLevel;
 }
Ejemplo n.º 6
0
        public OcclusionLevel GetOcclusion(PointF fromPoint, PointF targetPoint)
        {
            MMath.LineSegment l      = new MMath.LineSegment(fromPoint, targetPoint);
            OcclusionLevel    result = OcclusionLevel.Visible;

            foreach (var blocker in Blockers)
            {
                if (blocker.Intersects(l))
                {
                    result = (OcclusionLevel)Math.Max((int)result, (int)blocker.OcclusionLevel);
                    if (result == OcclusionLevel.Obscured)
                    {
                        return(result);
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 按照不同语言添加不同的品牌名称
 /// </summary>
 /// <param name="lang">语言</param>
 /// <param name="brand">品牌</param>
 /// <param name="name">此语言下的品牌名称</param>
 public void Add(ProductID pid, OcclusionLevel level, float min, float max)
 {
     if (!m_HashProductPressure.ContainsKey(pid))
     {
         PressureConfig pcfg = new PressureConfig();
         pcfg.Add(level, min, max);
         m_HashProductPressure.Add(pid, pcfg);
     }
     else
     {
         PressureConfig pcfg = m_HashProductPressure[pid] as PressureConfig;
         Tuple <OcclusionLevel, float, float> pressureParameter = pcfg.Find(level);
         if (pressureParameter == null)
         {
             pcfg.Add(level, min, max);
         }
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        /// 取某类型泵的某个压力等级下某个尺寸的最大压力配置值
        /// </summary>
        /// <param name="pid"></param>
        /// <param name="size"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        public float GetMaxBySizeLevel(PumpID pid, int size, OcclusionLevel level)
        {
            ProductPressure pp = GetPressureByProductID(pid);

            if (pp == null)
            {
                return(0);
            }
            LevelPressure lp = pp.Find(level);

            if (lp == null)
            {
                return(0);
            }
            SizePressure sp = lp.Find(size);

            if (sp == null)
            {
                return(0);
            }
            return(sp.m_Mid);
        }
Ejemplo n.º 9
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;
            }
            ComboBoxItem item      = cmPumpType.SelectedItem as ComboBoxItem;
            ComboBoxItem itemLevel = cmOcclusionLevel.SelectedItem as ComboBoxItem;
            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);

            OcclusionLevel level = OcclusionLevel.H;

            if (Enum.IsDefined(typeof(OcclusionLevel), itemLevel.Content.ToString()))
            {
                level = (OcclusionLevel)Enum.Parse(typeof(OcclusionLevel), itemLevel.Content.ToString());
            }
            else
            {
                Logger.Instance().ErrorFormat("Configuration::OnSave()->压力转换出错,OcclusionLevel={0}", itemLevel.Content.ToString());
            }
            decimal discharge = 0;
            decimal recharge  = Convert.ToDecimal(tbRecharge.Text);

            Hashtable      dockParameter = new Hashtable();
            AgingParameter para          = new AgingParameter(item.Content.ToString(),
                                                              rate,
                                                              volume,
                                                              charge,
                                                              discharge,
                                                              recharge,
                                                              level);

            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;
        }
Ejemplo n.º 10
0
 public LevelPressure(OcclusionLevel level)
 {
     m_Level = level;
 }
Ejemplo n.º 11
0
 public LevelPressure Find(OcclusionLevel level)
 {
     return(m_LevelPressureList.Find((x) => { return x.m_Level == level; }));
 }
Ejemplo n.º 12
0
 /// <summary>
 /// 设置压力
 /// </summary>
 /// <param name="level"></param>
 public void SetOcclusionLevel(OcclusionLevel level)
 {
     m_OcclusionLevel = level;
 }
Ejemplo n.º 13
0
 private bool LoadParameter(string path)
 {
     ParameterManager.Instance().Clear();
     if (!File.Exists(path))
     {
         Logger.Instance().ErrorFormat("老化参数配置文件不存在 path={0}", path);
         return(false);
     }
     try
     {
         decimal[] outValue      = new decimal[5];
         string    factorString  = string.Empty;
         char[]    separatorLine = new char[2] {
             (char)0x0D, (char)0x0A
         };
         char[] separator = new char[2] {
             '\t', ' '
         };
         StreamReader reader = new StreamReader(path);
         if (reader != null)
         {
             factorString = reader.ReadToEnd();
             reader.Close();
             string[] factors = factorString.Split(separatorLine, StringSplitOptions.RemoveEmptyEntries);
             foreach (string s in factors)
             {
                 #region
                 string[]         factor  = s.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                 OcclusionLevel   level   = OcclusionLevel.H;
                 C9OcclusionLevel c9Level = C9OcclusionLevel.Level3;
                 if (factor.Length != 7)
                 {
                     continue;
                 }
                 if (decimal.TryParse(factor[1], out outValue[0]) &&
                     decimal.TryParse(factor[2], out outValue[1]) &&
                     decimal.TryParse(factor[3], out outValue[2]) &&
                     decimal.TryParse(factor[4], out outValue[3]) &&
                     decimal.TryParse(factor[5], out outValue[4])
                     )
                 {
                     if (Enum.IsDefined(typeof(OcclusionLevel), factor[6]))
                     {
                         level = (OcclusionLevel)Enum.Parse(typeof(OcclusionLevel), factor[6]);
                     }
                     else if (Enum.IsDefined(typeof(C9OcclusionLevel), factor[6]))
                     {
                         c9Level = (C9OcclusionLevel)Enum.Parse(typeof(C9OcclusionLevel), factor[6]);
                     }
                     else
                     {
                         break;
                     }
                     //如果转换成功,就新建一个DefaultParameter对象
                     ParameterManager.Instance().Add(new AgingParameter(factor[0], outValue[0], outValue[1], outValue[2], outValue[3], outValue[4], level, c9Level));
                     continue;
                 }
                 #endregion
             }
         }
         else
         {
             Logger.Instance().Error("LoadParameter()读文件错误");
         }
     }
     catch (Exception e)
     {
         Logger.Instance().ErrorFormat("LoadParameter()读文件错误,Message={0}", e.Message);
     }
     return(true);
 }
Ejemplo n.º 14
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;
        }
Ejemplo n.º 15
0
 public Tuple <OcclusionLevel, float, float> Find(OcclusionLevel level)
 {
     return(_pressureParameters.Find((x) => { return x.Item1 == level; }));
 }
Ejemplo n.º 16
0
 public void Add(OcclusionLevel level, float min, float max)
 {
     _pressureParameters.Add(new Tuple <OcclusionLevel, float, float>(level, min, max));
 }