Beispiel #1
0
        public WocketsScalablePlotter(System.Windows.Forms.Panel aPanel)
        {
            this.numSensors = CurrentWockets._Controller._Sensors.Count;

            if (numSensors > 3)
            {
                skippedPoints = 3;
            }
            else if (numSensors > 1)
            {
                skippedPoints = 2;
            }

            this.aPanel       = aPanel;
            this.plotAreaSize = new Size(this.aPanel.Width, ((int)(this.aPanel.Height)));
            graphSize         = (int)Math.Floor((plotAreaSize.Height / ((double)numSensors)));


            scaleFactors       = new double[numSensors];
            currentColumns     = new int[numSensors];
            firstColumn        = new int[numSensors];
            lastColumn         = new int[numSensors];
            decoderTails       = new int[numSensors];
            lastUnixTimestamps = new double[numSensors];
            this.pointsToPlot  = new int[numSensors];
            this.mode          = PlottingMode.Normal;

            for (int i = 0; (i < numSensors); i++)
            {
                this.currentColumns[i]     = this.plotAreaSize.Width - 1;
                this.firstColumn[i]        = 999999;
                this.lastColumn[i]         = this.plotAreaSize.Width - 1;
                this.decoderTails[i]       = CurrentWockets._Controller._Sensors[i]._Decoder._Head;
                this.lastUnixTimestamps[i] = 0;
                this.pointsToPlot[i]       = 0;
                double range = 1024;//((Accelerometer)this.wocketsController._Sensors[i])._Max - ((Accelerometer)this.wocketsController._Sensors[i])._Min;
                scaleFactors[i] = graphSize / range;
            }


            int dy     = (int)Math.Floor(plotAreaSize.Height / ((double)numSensors));
            int offset = dy;

            axisOffset = new int[numSensors];
            for (int i = 0; i < axisOffset.Length; i++)
            {
                axisOffset[i] = offset;
                offset       += dy;
            }


            previousTimes = new double[numSensors];
            previousVals  = new int[numSensors][];
            for (int i = 0; (i < numSensors); i++)
            {
                previousVals[i] = new int[3];
                for (int j = 0; (j < 3); j++)
                {
                    previousVals[i][j] = 0;
                }
            }


            p = new System.Drawing.Pen[SIGNALS_PER_AXIS];

            p[0] = new Pen(System.Drawing.Color.Orange);
            p[1] = new Pen(System.Drawing.Color.Red);
            p[2] = new Pen(System.Drawing.Color.Blue);
            requiresFullRedraw = true;
            aPanel.Invalidate();
        }
        public WocketsScalablePlotter(System.Windows.Forms.Panel aPanel)
        {
            this.numSensors = CurrentWockets._Controller._Sensors.Count;

            if (numSensors > 3)
                skippedPoints = 3;
            else if (numSensors > 1)
                skippedPoints = 2;

            this.aPanel = aPanel;
            this.plotAreaSize = new Size(this.aPanel.Width, ((int)(this.aPanel.Height)));
            graphSize = (int)Math.Floor((plotAreaSize.Height / ((double)numSensors)));


            scaleFactors = new double[numSensors];
            currentColumns = new int[numSensors];
            firstColumn = new int[numSensors];
            lastColumn = new int[numSensors];
            decoderTails = new int[numSensors];
            lastUnixTimestamps = new double[numSensors];
            this.pointsToPlot = new int[numSensors];
            this.mode = PlottingMode.Normal;

            for (int i = 0; (i < numSensors); i++)
            {
                this.currentColumns[i] = this.plotAreaSize.Width - 1;
                this.firstColumn[i] = 999999;
                this.lastColumn[i] = this.plotAreaSize.Width - 1;
                this.decoderTails[i] = CurrentWockets._Controller._Sensors[i]._Decoder._Head;
                this.lastUnixTimestamps[i] = 0;
                this.pointsToPlot[i] = 0;
                double range = 1024;//((Accelerometer)this.wocketsController._Sensors[i])._Max - ((Accelerometer)this.wocketsController._Sensors[i])._Min;
                scaleFactors[i] = graphSize / range;
            }


            int dy = (int)Math.Floor(plotAreaSize.Height / ((double)numSensors));
            int offset = dy;
            axisOffset = new int[numSensors];
            for (int i = 0; i < axisOffset.Length; i++)
            {
                axisOffset[i] = offset;
                offset += dy;
            }


            previousTimes = new double[numSensors];
            previousVals = new int[numSensors][];
            for (int i = 0; (i < numSensors); i++)
            {
                previousVals[i] = new int[3];
                for (int j = 0; (j < 3); j++)
                    previousVals[i][j] = 0;
            }


            p = new System.Drawing.Pen[SIGNALS_PER_AXIS];

            p[0] = new Pen(System.Drawing.Color.Orange);
            p[1] = new Pen(System.Drawing.Color.Red);
            p[2] = new Pen(System.Drawing.Color.Blue);
            requiresFullRedraw = true;
            aPanel.Invalidate();

        }
Beispiel #3
0
        public WocketsScalablePlotter(System.Windows.Forms.Panel aPanel, WocketsController wocketsController)
        {
            this.wocketsController = wocketsController;
            if (this.wocketsController._Sensors.Count > 3)
            {
                skippedPoints = 3;
            }
            else if (this.wocketsController._Sensors.Count > 1)
            {
                skippedPoints = 2;
            }

            this.aPanel       = aPanel;
            this.plotAreaSize = new Size(this.aPanel.Width, ((int)(this.aPanel.Height * OnScreenDrawPercent)));
            graphSize         = (int)Math.Floor((plotAreaSize.Height / ((double)this.wocketsController._Sensors.Count)));

            scaleFactors       = new double[this.wocketsController._Sensors.Count];
            currentColumns     = new int[this.wocketsController._Sensors.Count];
            firstColumn        = new int[this.wocketsController._Sensors.Count];
            lastColumn         = new int[this.wocketsController._Sensors.Count];
            decoderTails       = new int[this.wocketsController._Sensors.Count];
            lastUnixTimestamps = new double[this.wocketsController._Sensors.Count];
            this.pointsToPlot  = new int[this.wocketsController._Sensors.Count];
            this.mode          = PlottingMode.Normal;

            for (int i = 0; (i < this.wocketsController._Sensors.Count); i++)
            {
                this.currentColumns[i]     = 0;
                this.firstColumn[i]        = 999999;
                this.lastColumn[i]         = 0;
                this.decoderTails[i]       = 0;
                this.lastUnixTimestamps[i] = 0;
                this.pointsToPlot[i]       = 0;
                double range = ((Accelerometer)this.wocketsController._Sensors[i])._Max - ((Accelerometer)this.wocketsController._Sensors[i])._Min;
                scaleFactors[i] = graphSize / range;
            }
            int dy     = (int)Math.Floor(plotAreaSize.Height / ((double)this.wocketsController._Sensors.Count));
            int offset = dy;

            axisOffset = new int[this.wocketsController._Sensors.Count];
            for (int i = 0; i < axisOffset.Length; i++)
            {
                axisOffset[i] = offset;
                offset       += dy;
            }


            previousTimes = new double[this.wocketsController._Sensors.Count];
            previousVals  = new int[this.wocketsController._Sensors.Count][];
            for (int i = 0; (i < this.wocketsController._Sensors.Count); i++)
            {
                previousVals[i] = new int[3];
                for (int j = 0; (j < 3); j++)
                {
                    previousVals[i][j] = 0;
                }
            }


            p = new System.Drawing.Pen[SIGNALS_PER_AXIS];

            p[0] = new Pen(System.Drawing.Color.Orange);
            p[1] = new Pen(System.Drawing.Color.Red);
            p[2] = new Pen(System.Drawing.Color.Blue);
        }
        public WocketsScalablePlotter(System.Windows.Forms.Panel aPanel, WocketsController wocketsController)
        {
            

            this.wocketsController = wocketsController;
            if (this.wocketsController._Sensors.Count > 3)
                skippedPoints = 3;
            else if (this.wocketsController._Sensors.Count > 1)
                skippedPoints = 2;
            
            this.aPanel = aPanel;
            this.plotAreaSize = new Size(this.aPanel.Width, ((int)(this.aPanel.Height * OnScreenDrawPercent)));
            graphSize = (int)Math.Floor((plotAreaSize.Height / ((double)this.wocketsController._Sensors.Count)));
  
            scaleFactors = new double[this.wocketsController._Sensors.Count];
            currentColumns = new int[this.wocketsController._Sensors.Count];     
            firstColumn= new int[this.wocketsController._Sensors.Count];
            lastColumn = new int[this.wocketsController._Sensors.Count];
            decoderTails = new int[this.wocketsController._Sensors.Count];
            lastUnixTimestamps = new double[this.wocketsController._Sensors.Count];
            this.pointsToPlot = new int[this.wocketsController._Sensors.Count];
            this.mode = PlottingMode.Normal;

            for (int i = 0; (i < this.wocketsController._Sensors.Count); i++)
            {
                this.currentColumns[i] = 0;
                this.firstColumn[i] = 999999;
                this.lastColumn[i] = 0;
                this.decoderTails[i] = 0;
                this.lastUnixTimestamps[i] = 0;
                this.pointsToPlot[i] = 0;
                double range = ((Accelerometer)this.wocketsController._Sensors[i])._Max - ((Accelerometer)this.wocketsController._Sensors[i])._Min;
                scaleFactors[i] = graphSize / range;
            }
            int dy = (int)Math.Floor(plotAreaSize.Height / ((double)this.wocketsController._Sensors.Count));
            int offset = dy;
            axisOffset = new int[this.wocketsController._Sensors.Count];
            for (int i = 0; i < axisOffset.Length; i++)
            {
                axisOffset[i] = offset;
                offset += dy;
            }


            previousTimes = new double[this.wocketsController._Sensors.Count];
            previousVals = new int[this.wocketsController._Sensors.Count][];
            for (int i = 0; (i < this.wocketsController._Sensors.Count); i++)
            {
                previousVals[i] = new int[3];
                for (int j = 0; (j < 3); j++)
                    previousVals[i][j] = 0;
            }
            

            p = new System.Drawing.Pen[SIGNALS_PER_AXIS];

            p[0] = new Pen(System.Drawing.Color.Orange);
            p[1] = new Pen(System.Drawing.Color.Red);
            p[2] = new Pen(System.Drawing.Color.Blue);
           
        }