예제 #1
0
        private bool bUpdateDichrgChrgCycleTableFields(int iSelectedFromList)
        {
            bool bRet = false;

            AutomotiveBattery.stDischrgChrgCycle stdchchrgOneCycle = default(AutomotiveBattery.stDischrgChrgCycle);

// check for an error
            if (iSelectedFromList < m_batBattery.iGetNumStartingCycles())
            {
// get selected discharge-charge cycle structure
                stdchchrgOneCycle = m_batBattery.dctGetBatChrgCyclByIdx(iSelectedFromList);
// now update individual fileds

// battery charge in : Q_in(when fully charged OR when ended recording) - Q_in(when starter off)
                ChrgInTextBox14.Text = ((stdchchrgOneCycle.stbtdtmWhenFullyCharged.liQIn) / 1000.0).ToString("0000");

                long liTemp = stdchchrgOneCycle.stbtdtmWhenFullyCharged.liQIn - stdchchrgOneCycle.stbtdtmStarterOn.liQIn;

// battery charge out: Q_out(when fully charged OR when ended recording) - Q_out(when started recording OR when starter on)
                ChrgOutTextBox13.Text = ((stdchchrgOneCycle.stbtdtmStarterOffAfterOn.liQOut) / 1000.0).ToString("0000");
                long liTemp2 = (stdchchrgOneCycle.stbtdtmWhenFullyCharged.liQOut - stdchchrgOneCycle.stbtdtmStarterOn.liQOut) / 1000;

// computed cranking Amperes
                ComputedCATextBox11.Text = stdchchrgOneCycle.dblCA.ToString("0000");

// computed battery resistance
                BattResOhmsTextBox10.Text = stdchchrgOneCycle.dblBatteryResistance.ToString("0.#00");

// maximum discharge current (likely starter current)
                MaxDchrgCurrTextBox8.Text = stdchchrgOneCycle.dblMaxDischrgCurrent.ToString("000");

// battery temperature
                TemperTextBox9.Text = stdchchrgOneCycle.stbtdtmStarterOn.dblBattTemp.ToString("+#.#;-#.#;0");
                if (true == stdchchrgOneCycle.bIsFullyRecharged)
                {
// compute time it took to re-charge battery afte starting the engine (in minutes)
                    TimeSpan tspChargingDur;
                    tspChargingDur           = stdchchrgOneCycle.stbtdtmWhenFullyCharged.dtBattDateTime.Subtract(stdchchrgOneCycle.stbtdtmStarterOffAfterOn.dtBattDateTime);
                    RechrgDuraTextBox15.Text = tspChargingDur.Minutes.ToString();
                }
                else
                {
                    RechrgDuraTextBox15.Text = "";
                };
// battery fully recharged check box
                FullyRechargdCheckBox1.Checked = stdchchrgOneCycle.bIsFullyRecharged;

// battery coulombs needed to start engine : Q_out(when starter was off) - Q_out(when starter was ON)
                BattCoulmbsRelzdTextBox12.Text = stdchchrgOneCycle.dblCoulmbsToStartEngine.ToString("0");
// starter motor run duration
                StrtMtrRanDurTextBox7.Text = stdchchrgOneCycle.tmspnStrMotorRunDur.Seconds.ToString("0") + "." + stdchchrgOneCycle.tmspnStrMotorRunDur.Milliseconds.ToString("00");

                bRet = true;
            }
            ;
            return(bRet);
        }         // end of bUpdateDichrgChrgCycleTableFields()
예제 #2
0
        }         // end of bUpdateDichrgChrgCycleTableFields()

        public bool bUpdateListBoxAndCntFromMmapDschrgChrgCycles()
        {
            bool bRet = false;
            int  iNumOfDchrgChrgCycles = m_batBattery.iGetNumStartingCycles();

            if (iNumOfDchrgChrgCycles == 0)
            {
                bRet = false;
            }
            else
            {
                m_lstDischrgChrgCycles.Clear();
                m_lstDischrgChrgCycles = null;               // discard old list

// initialize listbox view - first create a list of items
                m_lstDischrgChrgCycles = new List <DateTime>(iNumOfDchrgChrgCycles);

// no add battery charge-discharge datetime stamps to the list
                for (int k = 0; k < iNumOfDchrgChrgCycles; k++)
                {
                    DateTime dtmTempElem = m_batBattery.dtmGetBatChrgCyclDatTimByIdx(k);
                    m_lstDischrgChrgCycles.Add(dtmTempElem);
//					Debug.WriteLine("Form1() ctor: adding ["+k.ToString() + "] starting cycle "+dtmTempElem.ToString() + " to listbox");
                }
                ;
                //		DischrgChrgClcListBox1.DataSource=null; // disconnect from old data source
                DischrgChrgClcListBox1.DataSource = m_lstDischrgChrgCycles;               // reconnect to the same datasource, but with different data
// update counter fields as well
                DischargeChargeCyclesTextBox16.Text = iNumOfDchrgChrgCycles.ToString();

// initialy select the last one into table fields
//				int iStrtMtrCycleToSelect=iNumOfDchrgChrgCycles-1;
                int iStrtMtrCycleToSelect = 0;

                if (iNumOfDchrgChrgCycles > 0)
                {
                    DischrgChrgClcListBox1.SetSelected(iStrtMtrCycleToSelect, true);
                    bUpdateDichrgChrgCycleTableFields(iStrtMtrCycleToSelect);
                }
                ;

                AutomotiveBattery.stDischrgChrgCycle stdchchrgOneTempCycle = default(AutomotiveBattery.stDischrgChrgCycle);
// output table for resistance versus temperature diagram
// Debug only option
                for (int k = 0; k < iNumOfDchrgChrgCycles; k++)
                {
                    stdchchrgOneTempCycle = m_batBattery.dctGetBatChrgCyclByIdx(k);

                    Debug.WriteLine("[" + k.ToString() + "] R=" + stdchchrgOneTempCycle.dblBatteryResistance.ToString("0.000") + " Ohm, temp=" + stdchchrgOneTempCycle.stbtdtmStarterOn.dblBattTemp.ToString("+#.0;-#.0") + " °C");
                }
                ;
            };
            return(bRet);
        }