74 return (uint8_t *)pos >= (uint8_t *)
this + firstValidByte && (uint8_t *)pos + (size - 1) <= (uint8_t *)
this + lastValidByte;
91 uint8_t *
data = (uint8_t *) malloc(size);
93 Serial.print(F(
"bad malloc."));
152 printAllLoops(printer);
159 void LT_2977FaultLog::printTitle(Print *printer)
161 printer->print(F(
"LTC2977 Log Data\n"));
164 void LT_2977FaultLog::printTime(Print *printer)
167 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Time 0x%02x%02x%02x%02x%02x%02x\n"), time[5], time[4], time[3], time[2], time[1], time[0]);
168 printer->print(buffer);
170 printer->println(F(
" Ticks (200us each)"));
173 void LT_2977FaultLog::printPeaks(Print *printer)
197 printer->println(F(
"\nPeak Values and Fast Status:"));
198 printer->println(F(
"--------"));
200 printFastChannel(0, printer);
201 printFastChannel(1, printer);
203 float vin_max, vin_min, temp_max, temp_min;
206 printer->print(F(
"Vin: Min: "));
207 printer->print(vin_min, 6);
208 printer->print(F(
", Peak: "));
209 printer->println(vin_max, 6);
212 printFastChannel(2, printer);
213 printFastChannel(3, printer);
217 printer->print(F(
"Temp: Min: "));
218 printer->print(temp_min, 6);
219 printer->print(F(
", Peak: "));
220 printer->println(temp_max, 6);
223 printFastChannel(4, printer);
224 printFastChannel(5, printer);
225 printFastChannel(6, printer);
226 printFastChannel(7, printer);
229 delete [] chanStatuses;
232 void LT_2977FaultLog::printFastChannel(uint8_t
index, Print *printer)
234 float vout_peak, vout_min;
238 printer->print(F(
"Vout"));
239 printer->print(
index);
240 printer->print(F(
": Min: "));
241 printer->print(vout_min, 6);
242 printer->print(F(
", Peak: "));
243 printer->println(vout_peak, 6);
244 printer->print(F(
"Fast Status"));
245 printer->println(
index);
248 printer->print(buffer);
251 printer->print(buffer);
254 printer->println(buffer);
257 void LT_2977FaultLog::printAllLoops(Print *printer)
261 printer->println(F(
"Fault Log Loops Follow:"));
262 printer->println(F(
"(most recent data first)"));
266 printLoop(
index, printer);
272 void LT_2977FaultLog::printLoop(uint8_t
index, Print *printer)
274 printer->println(F(
"-------"));
275 printer->print(F(
"Loop: "));
276 printer->println(
index);
277 printer->println(F(
"-------"));
291 printLoopChannel(7, printer);
292 printLoopChannel(6, printer);
293 printLoopChannel(5, printer);
294 printLoopChannel(4, printer);
298 printer->println(F(
"TEMPERATURE:"));
301 printer->print(buffer);
306 printer->print(F(
" READ_TEMP: "));
307 printer->print(val, 6);
308 printer->println(F(
" C"));
311 printLoopChannel(3, printer);
312 printLoopChannel(2, printer);
316 printer->println(F(
"VIN:"));
319 printer->print(buffer);
324 printer->print(F(
" READ_VIN: "));
325 printer->print(val, 6);
326 printer->println(F(
" V"));
329 printLoopChannel(1, printer);
330 printLoopChannel(0, printer);
333 void LT_2977FaultLog::printLoopChannel(uint8_t
index, Print *printer)
340 printer->print(F(
"CHAN"));
341 printer->print(index);
342 printer->println(F(
":"));
345 printer->print(buffer);
351 printer->print(buffer);
357 printer->print(buffer);
362 printer->print(F(
" READ_VOUT: "));
363 printer->print(val, 6);
364 printer->println(F(
" V"));
struct TempData temp_data
struct Peak16Words vout5_peaks
struct ChanStatus chan_status6
struct FaultLogPeaksLtc2977 peaks
uint16_t getLin5_11WordReverseVal(Lin5_11WordReverse value)
struct ChanStatus chan_status3
struct VoutData vout_data0
void dumpBin(Print *printer, uint8_t *log, uint8_t size)
struct Lin16WordReverse read_vout
float lin16_to_float(lin16_t lin16_mant, lin16m_t vout_mode)
String status(void)
Returns a descriptive string based on status of pins.
struct ChanStatus chan_status1
LTC SMBus Support: Implementation for a LTC2977 Fault Log.
virtual void sendByte(uint8_t address, uint8_t command)=0
SMBus send byte command.
struct ChanStatus chan_status5
uint16_t getLin5_11WordVal(Lin5_11Word value)
void dumpBinary(Print *printer=0)
Dumps binary of the fault log to a Print inheriting object, or Serial if none specified.
struct FaultLogPreambleLtc2977 preamble
struct ChanStatus chan_status7
void getNvmBlock(uint8_t address, uint16_t offset, uint16_t numWords, uint8_t command, uint8_t *data)
struct Lin5_11WordReverse temp
float lin11_to_float(lin11_t xin)
struct RawByte mfr_status2
#define FILE_TEXT_LINE_MAX
void read(uint8_t address)
Reads the fault log from the specified address, reserves memory to hold the data. ...
union LT_union_int32_4bytes data
bool isValidData(void *pos, uint8_t size=2)
uint16_t getLin16WordVal(Lin16Word value)
struct FaultLogReadStatusLtc2977 fault_log_status
uint8_t telemetryData[208]
struct VoutData vout_data2
struct Peak5_11Words temp_peaks
struct ChanStatus chan_status0
struct LT_FaultLog::FaultLogTimeStamp shared_time
uint8_t * getBinary()
Get binary of the fault log or NULL if no log.
struct VoutData vout_data4
virtual uint8_t readByte(uint8_t address, uint8_t command)=0
SMBus read byte command.
struct RawByte status_temp
struct Peak16Words vout0_peaks
struct Peak16Words vout3_peaks
uint8_t cyclic_data_count
struct Peak16Words vout7_peaks
struct VoutData vout_data1
struct ChanStatus chan_status2
uint64_t getSharedTime200us(FaultLogTimeStamp time_stamp)
struct FaultLogReadLoopLtc2977 * loops
struct ChanStatus chan_status4
void print(Print *printer=0)
Pretty prints this part's fault log to a Print inheriting object, or Serial if none specified...
struct VoutData vout_data5
struct Peak5_11Words vin_peaks
struct VoutData vout_data7
virtual uint8_t readBlock(uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0
SMBus read block command.
LT_2977FaultLog(LT_PMBus *pmbus)
Constructor.
struct RawByte status_mfr
struct Peak16Words vout2_peaks
struct Peak16Words vout6_peaks
struct Lin5_11WordReverse vin
uint8_t getRawByteVal(RawByte value)
struct RawByte status_vin
uint16_t getLin16WordReverseVal(Lin16WordReverse value)
void release()
Frees the memory reserved for the fault log.
uint16_t getBinarySize()
Get size of binary data.
#define MFR_FAULT_LOG_RESTORE
struct RawByte status_vout
struct Peak16Words vout1_peaks
FaultLogLtc2977 * faultLog2977
struct Peak16Words vout4_peaks
struct VoutData vout_data3
struct VoutData vout_data6