Esempio n. 1
0
        public void updateSpdCadEvent(object sender, EventArgs e)
        {
            spdStream evtFrom = (spdStream)sender;

            // set the wheelSize from this sender ...
            evtFrom.wheelSize = wheelSize;
            speed             = evtFrom.spdInst;
            cad       = evtFrom.cadInst;
            hasSpdCad = true;

            TCXDistanceCount += evtFrom.publicSpdCnt;

            if (ptrSPwr >= 0)
            {
                if (speed >= 0)
                {
                    qSPDQue.Enqueue(speed);
                }
                if (qSPDQue.Count > 4)
                {
                    qSPDQue.Dequeue();
                }

                hasPwr    = false;
                instPower = speedPowerCalcs.getSpower(ptrSPwr, qSPDQue.Average());


                if (_TCXDataTimer.Enabled)
                {
                    powerPoints pp = new powerPoints();
                    pp.instPwr = instPower;
                    pp.time    = DateTime.Now;
                    qPWRQue.Enqueue(pp);

                    /*
                     * This was using time filtering, going to try doing this with segment averages
                     *
                     *
                     *             while (qPWRQue.Peek().time < DateTime.Now.Subtract(TimeSpan.FromSeconds((double)avgPowerTime)))
                     *                 qPWRQue.Dequeue();
                     */
                    avgPower = 0;
                    if (qPWRQue.Count > 0)
                    {
                        avgPower = (int)qPWRQue.Average(s => s.instPwr);
                    }
                }
                return;
            }
        }
Esempio n. 2
0
        public void updatePwrEvent(object sender, EventArgs e)
        {
            powerStream evtFrom = (powerStream)sender;

            if (ptrSPwr >= 0)
            {
                hasPwr = false;
                return;
            }

            powerPoints pp = new powerPoints();

            pp.instPwr = evtFrom.powerInst;
            pp.time    = DateTime.Now;

            if (avgPowerTime > 0)
            {
                qPWRSmoothQue.Enqueue(pp);
                while (qPWRSmoothQue.Peek().time < DateTime.Now.Subtract(TimeSpan.FromSeconds((double)avgPowerTime)))
                {
                    qPWRSmoothQue.Dequeue();
                }
            }

            if (qPWRQue.Count > 0 && avgPowerTime > 0)
            {
                instPower = (int)qPWRSmoothQue.Average(s => s.instPwr);
            }
            else
            {
                instPower = evtFrom.powerInst;
            }

            if (_TCXDataTimer.Enabled)
            {
                qPWRQue.Enqueue(pp);
                avgPower = 0;
                if (qPWRQue.Count > 0)
                {
                    avgPower = (int)qPWRQue.Average(s => s.instPwr);
                }
            }
            hasPwr = true;
        }