public static void TryStuff(int aFieldId)
    {
        CommonData dataField = null;

        switch (aFieldId)
        {
        case (0):
            dataField                       = new GPSData();
            dataField.CommonStuff           = "abcd";
            (dataField as GPSData).GPSStuff = "bcde";
            break;

        case (1):
            dataField             = new DigitalData();
            dataField.CommonStuff = "abcd";
            (dataField as DigitalData).DigitalStuff = "cdef";
            break;

        case (2):
            dataField             = new DriverData();
            dataField.CommonStuff = "abcd";
            (dataField as DriverData).DriverStuff = "defg";
            break;

        default:
            break;
        }
    }
Example #2
0
 /// <summary>
 /// 将数字片段添加到显示容器
 /// </summary>
 /// <param name="dd"></param>
 private void AddSegmentsToPanel(DigitalData dd)
 {
     foreach (System.Reflection.PropertyInfo p in dd.GetType().GetProperties())
     {
         Path segment = p.GetValue(dd, null) as Path;
         rootGrid.Children.Add(segment);
     }
 }
Example #3
0
 /// <summary>
 /// 设置所有segment的颜色
 /// </summary>
 /// <param name="color"></param>
 private void SetAllSegmentsColor(DigitalData dd, Color color)
 {
     if (dd != null)
     {
         foreach (System.Reflection.PropertyInfo p in dd.GetType().GetProperties())
         {
             Path segment = p.GetValue(dd, null) as Path;
             SetSegmentColor(segment, color);
         }
     }
 }
Example #4
0
        /// <summary>
        /// 画所有图形
        /// </summary>
        /// <param name="clr"></param>
        private DigitalData DrawSegments(Dictionary <string, Segment> dgtSegmentDict, Color clr)
        {
            DigitalData digitalData = new DigitalData();

            foreach (System.Reflection.PropertyInfo p in digitalData.GetType().GetProperties())
            {
                p.SetValue(digitalData, DrawSegment(dgtSegmentDict[p.Name].Points, clr), null);
            }

            return(digitalData);
        }
Example #5
0
        /// <summary>
        /// 调用模板时的方法
        /// </summary>
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            //获取根布局
            rootGrid = GetTemplateChild("gdRoot") as Grid;

            //初始化Segments的点集digitalSegmentDict
            SetSegmentsData();
            //画数字
            dd = DrawSegments(digitalSegmentDict, LEDColor);

            //将线段添加到容器
            AddSegmentsToPanel(dd);

            dd.DisplayDigital(Value);
        }
Example #6
0
 /// <summary>
 /// Gets the digital value of the specified digital channel for this timestep. Returns false if unspecified.
 /// </summary>
 /// <param name="digitalChannelID"></param>
 /// <returns></returns>
 public bool getDigitalValue(int digitalChannelID, List <TimeStep> allSteps, int myIndex)
 {
     if (DigitalData == null)
     {
         return(false);
     }
     if (!DigitalData.ContainsKey(digitalChannelID))
     {
         return(false);
     }
     if (DigitalData[digitalChannelID].DigitalContinue) // this will be slightly more complicated, we need to look back in time
     {
         return(calculateDigitalContinueValue(digitalChannelID, allSteps, myIndex));
     }
     else
     {
         return(DigitalData[digitalChannelID].getValue());
     }
 }