LRAUV  revA
Batt_Ocean_Server.h
Go to the documentation of this file.
1 
12 #ifndef BATT_OCEAN_SERVER_H
13 #define BATT_OCEAN_SERVER_H
14 
15 #include "Batt_Ocean_ServerIF.h"
16 
17 #define NUM_BATTSA Batt_Ocean_ServerIF::NUM_BATTSA
18 #define NUM_BATTSB Batt_Ocean_ServerIF::NUM_BATTSB
19 
20 #include "io/UartStream.h"
21 #include "logger/Logger.h"
23 
25 
32 {
33 public:
34 
35  Batt_Ocean_Server( const Module* module );
36 
37  virtual ~Batt_Ocean_Server();
38 
39  void initialize();
40 
41  // The actual "payload" of the component
42  void run();
43 
44  void uninitialize();
45 
46 
47 private:
48  // Note that the copy constructor below is private and not given a body.
49  // Any attempt to call it will return a compiler error.
50  Batt_Ocean_Server( const Batt_Ocean_Server& old ); // disallow copy constructor
51 
55 
56  // The status returned from the battery controller
57  typedef enum
58  {
59  // ALARM BITS
62  OVER_TEMP_ALARM = 0x1000,
66  // STATUS BITS
67  INITIALIZED = 0x0080,
68  DISCHARGING = 0x0040,
69  FULLY_CHARGED = 0x0020,
71  } SMBStatus;
72 
73  // Boolean flag
75 
76  // True if we have alerted user that we are using Simulator instead of hardware.
78 
79  // Stores the current response from the battery server
80  char deviceResponseA_[1023];
81  char deviceResponseB_[1023];
82 
83  // Holds the communications device
86 
87  // Store the totals
92 
93  bool readEEPROM( unsigned short &value, const unsigned char address );
94 
95  bool readTemperature( float &temperature );
96 
97  bool readTransducers( float &roll, float &pitch, float &magHeading,
98  float &rollRate, float &pitchRate, float &yawRate );
99 
100  // initialize vehicle config variables
101  bool readConfig( void );
102 
103  // Checks to see that our current capacity is above the threshold
104  void checkBatt( const float capacity, const float voltage );
105 
107  //
108  //Battery:| (01) (02) (03) (04) (05) (06) (07) (08)
109  //Status: | 00C0 00C0 00C0 00C0 00C0 00C0 00C0 00C0
110  // | . . . . . . . . . . . . . . . .
111  //
112  //Voltage |16.349 16.363 16.396 16.375 16.442 16.375 16.464 16.404
113  //Current | 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
114  //
115  //Temp C | 21.6 22.5 23.0 23.1 24.8 24.0 23.3 22.7
116  //Charge% | 91 91 78 78 88 91 79 79
117  //Cap Ah | 5.90 5.86 4.68 4.67 5.88 5.77 4.70 4.70
118  //
119  // Current: 0.000 A, Power: 0.0 W
120  // Voltage: 16.39 V -> 16.39 V
121  // Avg Charge: 84%, Cycles: 2
122 
123  struct BattPack
124  {
125  // Constructor
126  BattPack();
127 
128  // The battery status
129  int status_;
130  // And its writer
132 
133  // The battery voltage
134  float voltage_;
136 
137  // The battery current
138  float current_;
140 
141  // The battery temp
142  float temp_;
144 
145  // The battery charge
146  float charge_;
147 
148  // The battery capacity
149  float capacity_;
151  };
152 
153  // Array to store the battery packs and their associated writers
155 
160 
162  ConfigReader* batteryCapacityThresholdCfgReader_; // Amount of charge left at which we return to the surface
163  ConfigReader* batteryVoltageThresholdCfgReader_; // Amount of voltage left at which we return to the surface
164 
165  bool readDataA();
166  bool readDataB();
167 
168  // indicates whether things are ok to run
169  bool ok_;
170 
173 
174  // True if we have detected an under threshold value for capacity or voltage
177 
178 };
179 #endif /*BATT_OCEAN_SERVER_H*/
UartStream uartB_
Definition: Batt_Ocean_Server.h:85
bool ok_
Definition: Batt_Ocean_Server.h:169
BattPack()
Definition: Batt_Ocean_Server.cpp:536
Contains the SyncComponent class definition.
void run()
The actual "payload" of the component.
Definition: Batt_Ocean_Server.cpp:172
UniversalDataWriter * batteryFullyChargedWriter_
Definition: Batt_Ocean_Server.h:159
Abstract Base class for components that collect data for use later in the computation cycle...
Definition: SyncComponent.h:172
float totalCapacityA_
Definition: Batt_Ocean_Server.h:88
Provides software interface to the Ocean Server Battery Boards.
Definition: Batt_Ocean_Server.h:31
void initialize()
Provide a space for initialization before being run.
Definition: Batt_Ocean_Server.cpp:65
Definition: Batt_Ocean_Server.h:63
float totalCapacityB_
Definition: Batt_Ocean_Server.h:90
Definition: Batt_Ocean_Server.h:69
Definition: Batt_Ocean_Server.h:62
float totalVoltageA_
Definition: Batt_Ocean_Server.h:89
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
bool readDataA()
Definition: Batt_Ocean_Server.cpp:267
DataWriter * battCapacityWriter_
Definition: Batt_Ocean_Server.h:150
DataWriter * battTempWriter_
Definition: Batt_Ocean_Server.h:143
char deviceResponseB_[1023]
Definition: Batt_Ocean_Server.h:81
Contains the UartStream class declaration.
Definition: Batt_Ocean_Server.h:67
ConfigReader * batteryCapacityThresholdCfgReader_
Configuration Readers.
Definition: Batt_Ocean_Server.h:162
bool voltageFailed_
Definition: Batt_Ocean_Server.h:176
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
Definition: Batt_Ocean_Server.h:64
Definition: Batt_Ocean_Server.h:70
bool readConfig(void)
Definition: Batt_Ocean_Server.cpp:162
Definition: Batt_Ocean_Server.h:65
SMBStatus
Definition: Batt_Ocean_Server.h:57
Timespan battTimeout_
Definition: Batt_Ocean_Server.h:52
DataWriter * battCurrentWriter_
Definition: Batt_Ocean_Server.h:139
bool readTemperature(float &temperature)
char deviceResponseA_[1023]
Definition: Batt_Ocean_Server.h:80
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
UniversalDataWriter * batteryDischargingWriter_
Definition: Batt_Ocean_Server.h:158
int status_
Definition: Batt_Ocean_Server.h:129
bool readEEPROM(unsigned short &value, const unsigned char address)
Data structure looks as follows:
Definition: Batt_Ocean_Server.h:123
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
bool readTransducers(float &roll, float &pitch, float &magHeading, float &rollRate, float &pitchRate, float &yawRate)
float batteryCapacityThreshold_
Definition: Batt_Ocean_Server.h:171
Timestamp startTimeA_
Definition: Batt_Ocean_Server.h:53
BattPack battPacks_[NUM_BATTSA+NUM_BATTSB]
Definition: Batt_Ocean_Server.h:154
#define NUM_BATTSB
Definition: Batt_Ocean_Server.h:18
float temp_
Definition: Batt_Ocean_Server.h:142
DataWriter * battVoltageWriter_
Definition: Batt_Ocean_Server.h:135
Specifies the interface details for the Batt_Ocean_Server component in the SensorModule.
float capacity_
Definition: Batt_Ocean_Server.h:149
Definition: ConfigReader.h:13
float voltage_
Definition: Batt_Ocean_Server.h:134
Definition: Batt_Ocean_Server.h:68
#define NUM_BATTSA
Definition: Batt_Ocean_Server.h:17
float totalVoltageB_
Definition: Batt_Ocean_Server.h:91
UartStream uartA_
Definition: Batt_Ocean_Server.h:84
UniversalDataWriter * batteryVoltageWriter_
Definition: Batt_Ocean_Server.h:157
Timestamp startTimeB_
Definition: Batt_Ocean_Server.h:54
Contains the Logger class definition.
bool initialized_
Definition: Batt_Ocean_Server.h:74
void uninitialize()
Provide a space for uninitialization.
Definition: Batt_Ocean_Server.cpp:254
UniversalDataWriter * batteryChargeWriter_
Definition: Batt_Ocean_Server.h:156
Definition: Batt_Ocean_Server.h:60
Batt_Ocean_Server(const Module *module)
Definition: Batt_Ocean_Server.cpp:23
ConfigReader * batteryVoltageThresholdCfgReader_
Definition: Batt_Ocean_Server.h:163
bool readDataB()
Definition: Batt_Ocean_Server.cpp:405
float current_
Definition: Batt_Ocean_Server.h:138
bool usingSimWarned_
Definition: Batt_Ocean_Server.h:77
float batteryVoltageThreshold_
Definition: Batt_Ocean_Server.h:172
float charge_
Definition: Batt_Ocean_Server.h:146
Definition: Batt_Ocean_Server.h:61
virtual ~Batt_Ocean_Server()
Definition: Batt_Ocean_Server.cpp:60
Represents absolute times.
Definition: Timestamp.h:31
void checkBatt(const float capacity, const float voltage)
Definition: Batt_Ocean_Server.cpp:519
DataWriter * battStatusWriter_
Definition: Batt_Ocean_Server.h:131
bool capacityFailed_
Definition: Batt_Ocean_Server.h:175