Aria
2.8.0
|
#include <ArBatteryMTX.h>
Inherits ArASyncTask.
Public Types | |
enum | ErrorFlags { ERROR_BATTERY_OVERVOLTAGE =0x0001, ERROR_BATTERY_UNDERVOLTAGE =0x0002, ERROR_OVERCURRENT =0x0004, ERROR_BLOWNFUSE =0x0008, ERROR_RTC_ERROR =0x0010, ERROR_OVER_TEMPERATURE =0x0020, ERROR_MASTER_SWITCH_FAULT =0x0040, ERROR_SRAM_ERROR =0x0080, ERROR_CHARGER_OUT_OF_VOLTAGE_RANGE =0x0100, ERROR_CHARGER_CIRCUIT_FAULT =0x0200 } |
enum | Headers { HEADER1 =0xfa, HEADER2 =0xba } |
enum | StatusFlags { STATUS_ON_CHARGER =0x0001, STATUS_CHARGING =0x0002, STATUS_BALANCING_ENGAGED =0x0004, STATUS_CHARGER_ON =0x0008, STATUS_BATTERY_POWERING_OFF =0x0010, STATUS_MASTER_SWITCH_ON =0x0020, STATUS_CHARGE_SWITCH_ON =0x0040, STATUS_COMMANDED_SHUTDOWN =0x0080, STATUS_OFF_BUTTON_PRESSED =0x0100, STATUS_ON_BUTTON_PRESSED =0x0200, STATUS_USER_BUTTON_PRESSED =0x0400 } |
Public Types inherited from ArThread | |
typedef std::map< ThreadType, ArThread * > | MapType |
enum | Status { STATUS_FAILED =1, STATUS_NORESOURCE, STATUS_NO_SUCH_THREAD, STATUS_INVALID, STATUS_JOIN_SELF, STATUS_ALREADY_DETATCHED } |
typedef pthread_t | ThreadType |
Public Member Functions | |
void | addBatteryPoweringOffCancelledCB (ArFunctor *functor, int position=51) |
Adds a callback for when the battery is powering off. | |
void | addBatteryPoweringOffCB (ArFunctor *functor, int position=51) |
Adds a callback for when the battery is powering off. | |
void | addDisconnectOnErrorCB (ArFunctor *functor, int position=51) |
Adds a callback for when disconnection happens because of an error. | |
ArBatteryMTX (int batteryBoardNum=0, const char *name="MTXBattery", ArDeviceConnection *conn=NULL, ArRobot *robot=NULL) | |
Constructor. | |
virtual bool | blockingConnect (bool sendTracking, bool recvTracking) |
bool | checkLostConnection (void) |
check for lost connections More... | |
virtual bool | disconnect (void) |
void | disconnectOnError (void) |
disconnect | |
int | getAsyncConnectState (void) |
int | getBoardNum (void) |
int | getCapacityEstimate (void) const |
int | getCellCapacity (int cellNum) const |
int | getCellCharge (int cellNum) const |
int | getCellFlag (int cellNum) const |
double | getCellImbalance (void) const |
ArRobotPacket | getCellPacket () |
double | getCellVoltage (int cellNum) const |
double | getChargeCurrent (void) const |
double | getChargeEstimate (void) const |
Charge estimate (in percentage, 0-100) | |
int | getChargeRemainingEstimate (void) const |
ArRobot::ChargeState | getChargeState (void) const |
int | getChargeStateAsInt (void) const |
virtual double | getConnectionTimeoutSeconds (void) |
Gets the number of seconds without a response until connection assumed lost. | |
double | getCurrentDraw (void) const |
Current draw (amps, negative is charging) | |
long long | getCurrentTime (void) const |
int | getCycleCount (void) const |
const char * | getDefaultPortType (void) |
Gets the default port type for the battery. | |
const char * | getDefaultTcpPort (void) |
Gets the default port type for the battery. | |
double | getDelay (void) const |
ArDeviceConnection * | getDeviceConnection (void) |
Gets the device this instance receives packets from. | |
double | getDisChargeCurrent (void) const |
int | getErrorFlags (void) const |
int | getFirmwareVersion (void) const |
double | getFuseVoltage (void) const |
int | getId (void) const |
double | getImbalanceQuality (void) const |
long long | getLastChargeTime (void) const |
ArTime | getLastReadingTime (void) |
Gets the time data was last receieved. | |
virtual const char * | getName (void) const |
int | getNumCells (void) const |
ArRobotPacketReceiver * | getPacketReceiver (void) |
Very Internal call that gets the packet sender, shouldn't be used. | |
ArRobotPacketSender * | getPacketSender (void) |
Very Internal call that gets the packet sender, shouldn't be used. | |
double | getPackVoltage (void) const |
volts | |
double | getPaddleVolts (void) const |
int | getReadingCount (void) |
Gets the number of battery readings received in the last second. | |
double | getReserveChargeValue (void) const |
int | getSerialNumber (void) const |
int | getStatusFlags (void) const |
double | getTemperature (void) const |
double | getVoltage (void) const |
bool | haveRequestedCellInfoPackets (void) |
See if we've requested packets. | |
bool | haveRequestedSysInfoPackets (void) |
See if we've requested packets. | |
virtual void | internalGotReading (void) |
virtual bool | isConnected (void) |
virtual bool | isTryingToConnect (void) |
virtual int | lockDevice () |
Lock this device. | |
void | log (ArLog::LogLevel level=ArLog::Normal) |
void | logBatteryInfo (ArLog::LogLevel level=ArLog::Normal) |
void | logCellInfo (ArLog::LogLevel level=ArLog::Normal) |
bool | onCharger (void) const |
void | remBatteryPoweringOffCancelledCB (ArFunctor *functor) |
Removes a callback for when the battery is powering off. | |
void | remBatteryPoweringOffCB (ArFunctor *functor) |
Removes a callback for when the battery is powering off. | |
void | remDisconnectOnErrorCB (ArFunctor *functor) |
Removes a callback for when disconnection happens because of an error. | |
void | requestContinuousCellInfoPackets (void) |
Request a continous stream of packets. | |
void | requestContinuousSysInfoPackets (void) |
Request a continous stream of packets. | |
bool | sendBasicInfo (unsigned char dataValue) |
bool | sendCellInfo (unsigned char dataValue) |
bool | sendEmergencyPowerOff () |
bool | sendPowerOff () |
bool | sendPowerOffCancel () |
bool | sendResetCellData () |
bool | sendSetBalanceValue (unsigned short hundredthOfPercent) |
bool | sendSetPowerOffDelay (unsigned int msDelay) |
bool | sendSetRealTimeClock (unsigned int secSinceEpoch) |
bool | sendSetReserveValue (unsigned short hundredthOfPercent) |
bool | sendStartCharging () |
bool | sendStopCharging () |
bool | sendSystemInfo (unsigned char dataValue) |
virtual void | setConnectionTimeoutSeconds (double seconds) |
Sets the numter of seconds without a response until connection assumed lost. | |
void | setDeviceConnection (ArDeviceConnection *conn) |
Sets the device this instance receives packets from. | |
void | setInfoLogLevel (ArLog::LogLevel infoLogLevel) |
virtual void | setRobot (ArRobot *robot) |
Sets the robot pointer, also attaches its process function to the robot as a Sensor Interpretation task. More... | |
void | stopCellInfoPackets (void) |
Stop the stream of packets. | |
void | stopSysInfoPackets (void) |
Stop the stream of packets. | |
virtual int | tryLockDevice () |
Try to lock this device. | |
virtual int | unlockDevice () |
Unlock this device. | |
void | updateBasicInfo (unsigned char *buf) |
void | updateCellInfo (unsigned char *buf) |
void | updateSystemInfo (unsigned char *buf) |
virtual | ~ArBatteryMTX () |
Destructor. | |
Public Member Functions inherited from ArASyncTask | |
ArASyncTask () | |
Constructor. | |
virtual int | create (bool joinable=true, bool lowerPriority=true) |
Create the task and start it going. | |
virtual const char * | getThreadActivity (void) |
Gets a string that describes what the thread is doing, or NULL if it doesn't know. More... | |
virtual void | run (void) |
Run without creating a new thread. More... | |
virtual void | runAsync (void) |
Run in its own thread. | |
virtual void * | runInThisThread (void *arg=0) |
Internal function used with system threading system to run the new thread. More... | |
virtual void | stopRunning (void) |
Stop the thread. | |
virtual | ~ArASyncTask () |
Destructor. | |
Public Member Functions inherited from ArThread | |
ArThread (bool blockAllSignals=true) | |
Constructor. | |
ArThread (ThreadType thread, bool joinable, bool blockAllSignals=true) | |
Constructor - starts the thread. | |
ArThread (ArFunctor *func, bool joinable=true, bool blockAllSignals=true) | |
Constructor - starts the thread. | |
virtual void | cancel (void) |
Cancel the thread. | |
virtual int | detach (void) |
Detatch the thread so it cant be joined. | |
bool | getBlockAllSignals (void) |
Do we block all process signals at startup? | |
virtual ArFunctor * | getFunc (void) const |
Get the functor that the thread runs. | |
virtual bool | getJoinable (void) const |
Get the joinable status of the thread. | |
virtual ThreadType | getOSThread (void) const |
Get the underlying os thread type. | |
pid_t | getPID (void) |
virtual bool | getRunning (void) const |
Get the running status of the thread. | |
virtual bool | getRunningWithLock (void) |
Get the running status of the thread, locking around the variable. | |
virtual const ThreadType * | getThread (void) const |
Get the underlying thread type. | |
virtual const char * | getThreadName (void) |
Gets the name of the thread. | |
pid_t | getTID (void) |
virtual bool | isThreadFinished () const |
Returns whether the thread has been completed and can be deleted. More... | |
virtual bool | isThreadStarted () const |
Returns whether the thread has been started. More... | |
virtual int | join (void **ret=NULL) |
Join on the thread. | |
int | lock (void) |
Lock the thread instance. More... | |
virtual void | logThreadInfo (void) |
Logs the information about this thread. | |
virtual void | setRunning (bool running) |
Set the running value on the thread. | |
virtual void | setThreadName (const char *name) |
Sets the name of the thread. | |
virtual void | threadFinished (void) |
Marks the thread as finished and logs useful debugging information. More... | |
virtual void | threadStarted (void) |
Marks the thread as started and logs useful debugging information. More... | |
int | tryLock (void) |
Try to lock the thread instance without blocking. More... | |
int | unlock (void) |
Unlock the thread instance. More... | |
virtual | ~ArThread () |
Destructor. | |
Protected Member Functions | |
virtual void | batterySetName (const char *name) |
void | checkAndSetCurrentErrors (ErrorFlags errorFlag, const char *errorString) |
void | clear (void) |
void | failedToConnect (void) |
bool | getBasicInfo () |
bool | getCellInfo () |
bool | getSystemInfo () |
void | interpBasicInfo (void) |
void | interpErrors (void) |
virtual void * | runThread (void *arg) |
void | sensorInterp (void) |
Protected Member Functions inherited from ArThread | |
virtual int | doJoin (void **ret=NULL) |
Protected Attributes | |
ArRetFunctorC< bool, ArBatteryMTX > | myAriaExitCB |
int | myAsyncConnectState |
ArCallbackList | myBatteryPoweringOffCancelledCBList |
ArCallbackList | myBatteryPoweringOffCBList |
int | myBoardNum |
unsigned int | myCapacityEstimate |
double | myCellImbalance |
std::map< int, CellInfo * > | myCellNumToInfoMap |
ArRobotPacket | myCellPacket |
double | myChargeCurrent |
double | myChargeEstimate |
unsigned int | myChargeRemainingEstimate |
ArRobot::ChargeState | myChargeState |
ArDeviceConnection * | myConn |
double | myCurrentDraw |
long long | myCurrentTime |
unsigned int | myCycleCount |
ArMutex | myDataMutex |
std::string | myDefaultPortType |
std::string | myDefaultTcpPort |
double | myDelay |
ArMutex | myDeviceMutex |
double | myDisChargeCurrent |
ArCallbackList | myDisconnectOnErrorCBList |
int | myErrorCount |
unsigned short | myErrorFlags |
std::string | myErrorString |
unsigned char | myFirmwareVersion |
bool | myFirstErrorFlagsCheck |
double | myFuseVoltage |
bool | myHaveSetRTC |
unsigned char | myId |
double | myImbalanceQuality |
ArLog::LogLevel | myInfoLogLevel |
bool | myIsConnected |
long long | myLastChargeTime |
int | myLastErrorCount |
unsigned short | myLastErrorFlags |
std::string | myLastErrorString |
ArTime | myLastReading |
int | myLastStatusFlags |
ArLog::LogLevel | myLogLevel |
std::string | myName |
unsigned char | myNumCells |
bool | myOnCharger |
std::list< ArRobotPacket * > | myPackets |
ArMutex | myPacketsMutex |
double | myPackVoltage |
double | myPaddleVolts |
ArTime | myPrevBatteryIntTime |
ArFunctorC< ArBatteryMTX > | myProcessCB |
unsigned short | myRawCellImbalance |
unsigned short | myRawChargeCurrent |
unsigned short | myRawChargeEstimate |
unsigned short | myRawCurrentDraw |
unsigned int | myRawDelay |
unsigned short | myRawDisChargeCurrent |
unsigned short | myRawFuseVoltage |
unsigned short | myRawImbalanceQuality |
unsigned short | myRawPackVoltage |
unsigned short | myRawPaddleVolts |
unsigned short | myRawReserveChargeValue |
unsigned short | myRawTemperature |
unsigned short | myRawVoltage |
int | myReadingCount |
int | myReadingCurrentCount |
ArRobotPacketReceiver * | myReceiver |
bool | myRecvTracking |
bool | myRequestedCellInfoBatteryPackets |
bool | myRequestedSysInfoBatteryPackets |
double | myReserveChargeValue |
ArRobot * | myRobot |
bool | myRobotRunningAndConnected |
ArRobotPacketSender * | mySender |
bool | mySendTracking |
ArFunctorC< ArBatteryMTX > | mySensorInterpTask |
unsigned int | mySerialNumber |
bool | myStartConnect |
unsigned short | myStatusFlags |
double | myTemperature |
time_t | myTimeLastReading |
double | myTimeoutSeconds |
bool | myTryingToConnect |
unsigned char | myVersion |
double | myVoltage |
Protected Attributes inherited from ArThread | |
bool | myBlockAllSignals |
bool | myFinished |
ArFunctor * | myFunc |
bool | myJoinable |
ArMutex | myMutex |
std::string | myName |
pid_t | myPID |
bool | myRunning |
State variable to denote when the thread should continue or exit. | |
bool | myStarted |
ArStrMap | myStrMap |
ThreadType | myThread |
pid_t | myTID |
Additional Inherited Members | |
Static Public Member Functions inherited from ArThread | |
static void | cancelAll (void) |
Cancel all threads. | |
static ArLog::LogLevel | getLogLevel (void) |
Gets the logging level for thread information. | |
static ThreadType | getThisOSThread (void) |
Get the underlying os thread type of this thread. | |
static const ThreadType * | getThisThread (void) |
Get the underlying thread type of this thread. | |
static const char * | getThisThreadName (void) |
Gets the name of the this thread. | |
static void | init (void) |
Initialize the internal book keeping structures. More... | |
static void | joinAll (void) |
Join on all threads. | |
static ThreadType | osSelf (void) |
Returns the os self of the current thread. More... | |
static ArThread * | self (void) |
Returns the instance of your own thread (the current one) More... | |
static void | setLogLevel (ArLog::LogLevel level) |
Sets the logging level for thread information. | |
static void | shutdown () |
Shuts down and deletes the last remaining thread; call after joinAll. | |
static void | stopAll () |
Stop all threads. | |
static void | yieldProcessor (void) |
Yield the processor to another thread. | |
Static Protected Member Functions inherited from ArThread | |
static void | addThreadToMap (ThreadType pt, ArThread *at) |
static ArThread * | findThreadInMap (ThreadType t) |
static void | removeThreadFromMap (ThreadType t) |
Static Protected Attributes inherited from ArThread | |
static ArLog::LogLevel | ourLogLevel = ArLog::Verbose |
static MapType | ourThreads |
static ArMutex | ourThreadsMutex |
static std::string | ourUnknownThreadName = "unknown" |
bool ArBatteryMTX::checkLostConnection | ( | void | ) |
check for lost connections
This will check if the battery has lost connection.
If there is no robot it is a straightforward check of last reading time against getConnectionTimeoutSeconds. If there is a robot then it will not start the check until the battery is running and connected.
|
virtual |
Sets the robot pointer, also attaches its process function to the robot as a Sensor Interpretation task.