TRC Library for FTC (2011) 2011
TRC Library Code Project

C:/Users/Michael/Ftc/2011/code/trclib/batt.h

Go to the documentation of this file.
00001 #if 0
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #endif
00015 
00016 #ifndef _BATT_H
00017 #define _BATT_H
00018 
00019 #pragma systemFile
00020 
00021 #ifdef MOD_ID
00022     #undef MOD_ID
00023 #endif
00024 #define MOD_ID                  MOD_BATT
00025 
00026 //
00027 // Type definitions.
00028 //
00029 typedef struct
00030 {
00031     int  summaryLineNum;
00032     bool fDetails;
00033     int  minIntBatt;
00034     int  maxIntBatt;
00035     int  minExtBatt;
00036     int  maxExtBatt;
00037 } BATT;
00038 
00039 BATT l_Batt;
00040 
00049 void
00050 BattShowInfo(
00051     __in BATT &batt,
00052     __in int lineNum,
00053     __in bool fDetails
00054     )
00055 {
00056     nxtDisplayTextLine(lineNum, "Int:%3.1f Ext:%4.1f",
00057                        (float)nAvgBatteryLevel/1000.0,
00058                        (externalBatteryAvg < 0)?
00059                             0.0: (float)externalBatteryAvg/1000.0);
00060 
00061     if (fDetails)
00062     {
00063         nxtDisplayTextLine(lineNum + 1, "%4.1f<=Int<=%4.1f",
00064                            l_Batt.minIntBatt/1000.0, l_Batt.maxIntBatt/1000.0);
00065         nxtDisplayTextLine(lineNum + 2, "%4.1f<=Ext<=%4.1f",
00066                            (l_Batt.minExtBatt < 0)?
00067                                 0.0: (float)l_Batt.minExtBatt/1000.0,
00068                            (l_Batt.maxExtBatt < 0)?
00069                                 0.0: (float)l_Batt.maxExtBatt/1000.0);
00070     }
00071 
00072     return;
00073 }   //BattShowInfo
00074 
00083 void
00084 BattInit(
00085     __out BATT &batt,
00086     __in  int summaryLineNum,
00087     __in  bool fDetails
00088     )
00089 {
00090     TFuncName("BattInit");
00091     TLevel(INIT);
00092     TEnter();
00093 
00094     l_Batt.summaryLineNum = summaryLineNum;
00095     l_Batt.fDetails = fDetails;
00096     l_Batt.minIntBatt = nAvgBatteryLevel;
00097     l_Batt.maxIntBatt = l_Batt.minIntBatt;
00098     l_Batt.minExtBatt = externalBatteryAvg;
00099     l_Batt.maxExtBatt = l_Batt.minExtBatt;
00100     StopTask(displayDiagnostics);
00101     eraseDisplay();
00102 
00103     TExit();
00104     return;
00105 }   //BattInit
00106 
00114 void
00115 BattTask(
00116     __inout BATT &batt
00117     )
00118 {
00119     int currIntBatt;
00120     int currExtBatt;
00121 
00122     TFuncName("BattTask");
00123     TLevel(TASK);
00124     TEnter();
00125 
00126     currIntBatt = nAvgBatteryLevel;
00127     currExtBatt = externalBatteryAvg;
00128 
00129     if (currIntBatt < l_Batt.minIntBatt)
00130     {
00131         l_Batt.minIntBatt = currIntBatt;
00132     }
00133     else if (currIntBatt > l_Batt.maxIntBatt)
00134     {
00135         l_Batt.maxIntBatt = currIntBatt;
00136     }
00137 
00138     if (currExtBatt < l_Batt.minExtBatt)
00139     {
00140         l_Batt.minExtBatt = currExtBatt;
00141     }
00142     else if (currExtBatt > l_Batt.maxExtBatt)
00143     {
00144         l_Batt.maxExtBatt = currExtBatt;
00145     }
00146 
00147     if (l_Batt.summaryLineNum >= 0)
00148     {
00149         BattShowInfo(batt, l_Batt.summaryLineNum, l_Batt.fDetails);
00150     }
00151 
00152     TExit();
00153     return;
00154 }   //BattTask
00155 
00156 #endif  //ifndef _BATT_H
 All Data Structures Files Functions Variables Defines