Esempio n. 1
0
        public void AddPoint(float x, float y)
        {
            if (samples == null)
            {
                samples = new List <cPoint>();
            }

            cPoint p = new cPoint();

            p.x = x;
            p.y = y;
            samples.Add(p);
        }
Esempio n. 2
0
        public void AddPoint(float x, float y, DateTime?dtPoint, int measureState = -1)
        {
            if (samples == null)
            {
                samples = new List <cPoint>();
            }

            cPoint p = new cPoint();

            p.x         = x;
            p.y         = y;
            p.PointFlag = measureState;

            if (dtPoint.HasValue)
            {
                p.dtPoint = dtPoint.Value;
            }

            samples.Add(p);
        }
Esempio n. 3
0
        /// <summary>
        /// Draw graph
        /// </summary>
        /// <param name="collection"></param>
        private void DrawGraph(ArrayList collection)
        {
            PlotterDisplayEx graphControl1 = new PlotterDisplayEx();
            PlotterDisplayEx graphControl2 = new PlotterDisplayEx();
            lock (m_objLockConfig)
            {
                int channel = 1;

                List<ConfigurationVO> configlist = (List<ConfigurationVO>)collection[0];
                int channel_ref = configlist[0].ChannelValue;

                int channelA = 0;
                int channelB = 0;
                if ((ConfigurationVO.GetInstance().mode_operation != EnumAndConstants.CONTINEOUS))
                {
                    if (((List<ADCVO>)collection[1])[0].Channel != 0)
                    {
                        channelA = ((List<ADCVO>)collection[1])[0].Channel;
                    }
                    if (collection.Count > 2)
                    {
                        channelB = ((List<ADCVO>)collection[2])[2].Channel;
                    }
                }
                else
                {
                    List<int> channels = new List<int>();
                    ApplicationUtil.ApplicationUtil.GetValueFromNumber((UInt16)channel_ref, out channels);
                    channelA = channels[0];
                }

                // chek for channel values being -1
                if (channelA != 0)
                {
                    graphControl1 = GetTargetGraphControlForChannelB(channelA);
                }
                if (channelB != 0)
                {
                    graphControl2 = GetTargetGraphControlForChannelB(channelB);
                }
                else
                    graphControl2 = null;

                List<ADCVO> adclist = (List<ADCVO>)collection[1];
                //Calculate the max and min y axis values to initialize the graph
                ApplicationUtil.ApplicationUtil.CalculateMinMaxADCValues(adclist);

                int adcResolution = configlist[0].adcresolution;
                if (adclist.Count == 0)
                {
                    return;
                }

                repeatCount = adclist.Count;
                int maxadcForChannelTwo = 0;
                List<ADCVO> adclistChannelTwo = new List<ADCVO>();
                if (collection.Count == 3)
                {
                    adclistChannelTwo = (List<ADCVO>)collection[2];
                    if (adclistChannelTwo.Count > 0)
                        maxadcForChannelTwo = adclistChannelTwo[adclistChannelTwo.Count - 1].AdcValue;
                }
                else
                {
                    channel = channel_ref;
                }

                DateTime minDate = DateTime.Now;
                minDate = adclist[0].AdcDate;

                if (null != firstChannelArray)
                {
                    if (firstChannelArray.Count >= 100000)
                    {
                        firstChannelArray.RemoveRange(0, 25000);
                    }
                }

                graphControl1.DataSources[0].GraphColor = Color.Green;

                if (firstChannelArray == null)
                {
                    firstChannelArray = new List<cPoint>();
                    firstChannelY = 0;
                }
                if (Program.Mode_Operation != EnumAndConstants.CONTINEOUS)
                {
                    firstChannelArray = new List<cPoint>();
                    firstChannelY = 0;
                }

                if (Program.IsOnlineMode && Program.Mode_Operation != configlist[0].mode_operation)
                    return;
                if (configlist[0].mode_operation != EnumAndConstants.CONTINEOUS)
                {
                    firstChannelArray = new List<cPoint>();
                    firstChannelY = 0;
                }

                int tempCounter = 0;

                while (tempCounter < adclist.Count)
                {
                    ADCVO point = adclist.ElementAt(tempCounter);
                    double adv = Convert.ToDouble(point.AdcValue);
                    firstChannelY += ApplicationUtil.ApplicationUtil.SAMPLING_RATE_DATE_ADD_VALUE;
                    string d = string.Format("{0:0.00}", firstChannelY);
                    double xPoint = double.Parse(d);
                    cPoint cpoint = new cPoint();
                    cpoint.x = xPoint;
                    cpoint.y = adv;
                    firstChannelArray.Add(cpoint);
                    tempCounter++;
                }

                if ((ConfigurationVO.GetInstance().mode_operation != EnumAndConstants.CONTINEOUS))
                {
                    xDisplayRange = (int)(firstChannelArray.ElementAt(firstChannelArray.Count - 1)).x;
                }
                //xDisplayRange =(int)((0.30 * maxX));
                if (graphControl1.DataSources.Count > 1)
                    graphControl1.DataSources.RemoveRange(1, graphControl1.DataSources.Count - 1);
                //initialize the control as per the adc values and x axis values.
                graphControl1.DataSources[0].Samples = firstChannelArray.ToArray<cPoint>();

                if (graphControl1.DataSources[0].YMax == 0 && graphControl1.DataSources[0].YMin == 0)
                {
                    graphControl1.DataSources[0].YMax = ApplicationUtil.ApplicationUtil.maxADC;

                    graphControl1.DataSources[0].YD1 = ApplicationUtil.ApplicationUtil.maxADC;
                    graphControl1.DataSources[0].YMin = ApplicationUtil.ApplicationUtil.minADC;
                    graphControl1.DataSources[0].YD0 = ApplicationUtil.ApplicationUtil.minADC;
                }
                else
                {
                    if (graphControl1.gPane.maxY < ApplicationUtil.ApplicationUtil.maxADC)
                    {
                        graphControl1.DataSources[0].YMax = ApplicationUtil.ApplicationUtil.maxADC;
                        graphControl1.DataSources[0].YD1 = ApplicationUtil.ApplicationUtil.maxADC;
                    }
                    if (graphControl1.gPane.minY > ApplicationUtil.ApplicationUtil.minADC)
                    {
                        graphControl1.DataSources[0].YMin = ApplicationUtil.ApplicationUtil.minADC;
                        graphControl1.DataSources[0].YD0 = ApplicationUtil.ApplicationUtil.minADC;
                    }
                }
                //graphControl1.DataSources[0].AutoScaleY = true;
                graphControl1.DataSources[0].off_Y = 0;
                graphControl1.gPane.off_X = 0;
                graphControl1.gPane.grid_distance_y = 5;

                List<PlotterDisplayEx> graphList = new List<PlotterDisplayEx>();
                graphList.Add(graphControl1);
                DrawGraphWithZoom(graphList,ZoomMultiplier);
                if (graphControl2 != null)
                {
                    if (graphControl2.DataSources.Count > 1)
                        graphControl2.DataSources.RemoveRange(1, graphControl2.DataSources.Count - 1);
                }
                if (collection.Count == 3)
                {
                    if (adclistChannelTwo.Count == 0)
                        return;
                    minDate = adclistChannelTwo[0].AdcDate;
                    ApplicationUtil.ApplicationUtil.CalculateMinMaxADCValues(adclistChannelTwo);
                    if (channelB != -1)
                    {
                        if (graphControl2 != null)
                        {
                            if (secondChannelArray == null || configlist[0].mode_operation == EnumAndConstants.TRIGGER || configlist[0].mode_operation == EnumAndConstants.EXTERNAL_SIMULATION || configlist[0].mode_operation == EnumAndConstants.EXTERNAL_RECORDING || configlist[0].mode_operation == EnumAndConstants.LOOK_AHEAD)
                            {
                                secondChannelArray = new List<cPoint>();
                                secondChannelY = 0;
                            }

                            tempCounter = 0;
                            while (tempCounter < adclistChannelTwo.Count)
                            {
                                ADCVO point = adclistChannelTwo.ElementAt(tempCounter);
                                double adv = Convert.ToDouble(point.AdcValue);
                                secondChannelY += ApplicationUtil.ApplicationUtil.SAMPLING_RATE_DATE_ADD_VALUE;
                                string d = string.Format("{0:0.00}", secondChannelY);
                                double yPoint = double.Parse(d);
                                cPoint cpoint = new cPoint();
                                cpoint.x = yPoint;
                                cpoint.y = adv;
                                secondChannelArray.Add(cpoint);
                                tempCounter++;
                            }
                            // Changes:MAITREYEE

                            graphControl2.DataSources[0].Samples = secondChannelArray.ToArray<cPoint>();
                            graphControl2.DataSources[0].SetGridOriginY(0f);
                            graphControl2.DataSources[0].GraphColor = Color.Green;
                            // graphControl2.DataSources[0].Samples = firstChannelArray.ToArray<cPoint>();
                            if (graphControl2.DataSources[0].YMax == 0 && graphControl2.DataSources[0].YMin == 0)
                            {
                                graphControl2.DataSources[0].YMax = ApplicationUtil.ApplicationUtil.maxADC;

                                graphControl2.DataSources[0].YD1 = ApplicationUtil.ApplicationUtil.maxADC;
                                graphControl2.DataSources[0].YMin = ApplicationUtil.ApplicationUtil.minADC;
                                graphControl2.DataSources[0].YD0 = ApplicationUtil.ApplicationUtil.minADC;
                            }
                            else
                            {
                                if (graphControl2.gPane.maxY < ApplicationUtil.ApplicationUtil.maxADC)
                                {
                                    graphControl2.DataSources[0].YMax = ApplicationUtil.ApplicationUtil.maxADC;
                                    graphControl2.DataSources[0].YD1 = ApplicationUtil.ApplicationUtil.maxADC;
                                }
                                if (graphControl2.gPane.minY > ApplicationUtil.ApplicationUtil.minADC)
                                {
                                    graphControl2.DataSources[0].YMin = ApplicationUtil.ApplicationUtil.minADC;
                                    graphControl2.DataSources[0].YD0 = ApplicationUtil.ApplicationUtil.minADC;
                                }
                            }
                            graphControl2.DataSources[0].off_Y = 0;
                            graphControl2.gPane.off_X = 0;
                            graphControl2.gPane.grid_distance_y = 5;

                            graphList = new List<PlotterDisplayEx>();
                            graphList.Add(graphControl2);
                            DrawGraphWithZoom(graphList, ZoomMultiplier);
                        }
                    }
                }

            }
            if ((DateTime.Now - secondGraphRefreshTime).TotalMilliseconds > graphRefreshTime)
            {
                this.Invoke(graphdelegate, graphControl1, graphControl2);
                secondGraphRefreshTime = DateTime.Now;
            }
        }