72 return (uint8_t *)pos >= (uint8_t *)
this + firstValidByte && (uint8_t *)pos + (size - 1) <= (uint8_t *)
this + lastValidByte;
84 uint8_t *
data = (uint8_t *) malloc(size);
86 Serial.print(F(
"bad malloc."));
144 printAllLoops(printer);
151 void LT_2978FaultLog::printTitle(Print *printer)
153 printer->print(F(
"LTC2978 Log Data\n"));
156 void LT_2978FaultLog::printTime(Print *printer)
159 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]);
160 printer->print(buffer);
162 printer->println(F(
" Ticks (200us each)"));
165 void LT_2978FaultLog::printPeaks(Print *printer)
179 printer->println(F(
"\nPeak Values:"));
180 printer->println(F(
"--------"));
182 printFastChannel(0, printer);
183 printFastChannel(1, printer);
185 float vin_max, vin_min;
188 printer->print(F(
"Vin: Min: "));
189 printer->print(vin_min, 6);
190 printer->print(F(
", Peak: "));
191 printer->print(vin_max, 6);
194 printFastChannel(2, printer);
195 printFastChannel(3, printer);
197 float temp_max, temp_min;
200 printer->print(F(
"Temp: Min: "));
201 printer->print(temp_min, 6);
202 printer->print(F(
", Peak: "));
203 printer->print(temp_max, 6);
206 printFastChannel(4, printer);
207 printFastChannel(5, printer);
208 printFastChannel(6, printer);
209 printFastChannel(7, printer);
214 void LT_2978FaultLog::printFastChannel(uint8_t
index, Print *printer)
216 float vout_peak, vout_min;
219 printer->print(F(
"Vout"));
220 printer->print(
index);
221 printer->print(F(
": Min: "));
222 printer->print(vout_min, 6);
223 printer->print(F(
", Peak: "));
224 printer->println(vout_peak, 6);
227 void LT_2978FaultLog::printAllLoops(Print *printer)
231 printer->println(F(
"Fault Log Loops Follow:"));
232 printer->println(F(
"(most recent data first)"));
236 printLoop(
index, printer);
242 void LT_2978FaultLog::printLoop(uint8_t
index, Print *printer)
244 printer->println(F(
"-------"));
245 printer->print(F(
"Loop: "));
246 printer->println(
index);
247 printer->println(F(
"-------"));
261 printLoopChannel(7, printer);
262 printLoopChannel(6, printer);
263 printLoopChannel(5, printer);
264 printLoopChannel(4, printer);
268 printer->println(F(
"TEMPERATURE:"));
271 printer->print(buffer);
276 printer->print(F(
" READ_TEMP: "));
277 printer->print(val, 6);
278 printer->println(F(
" C"));
281 printLoopChannel(3, printer);
282 printLoopChannel(2, printer);
286 printer->println(F(
"VIN:"));
289 printer->print(buffer);
294 printer->print(F(
" READ_VIN: "));
295 printer->print(val, 6);
296 printer->println(F(
" V"));
299 printLoopChannel(1, printer);
300 printLoopChannel(0, printer);
305 void LT_2978FaultLog::printLoopChannel(uint8_t
index, Print *printer)
312 printer->print(F(
"CHAN"));
313 printer->print(index);
314 printer->println(F(
":"));
317 printer->print(buffer);
323 printer->print(buffer);
328 printer->print(F(
" READ_VOUT: "));
329 printer->print(val, 6);
330 printer->println(F(
" V"));
struct VoutData vout_data4
struct VoutData vout_data5
struct Lin16WordReverse read_vout
uint16_t getLin5_11WordReverseVal(Lin5_11WordReverse value)
void dumpBin(Print *printer, uint8_t *log, uint8_t size)
struct FaultLogTimeStamp shared_time
struct Lin5_11WordReverse vin
struct VoutData vout_data3
void read(uint8_t address)
Reads the fault log from the specified address, reserves memory to hold the data. ...
uint8_t telemetryData[208]
float lin16_to_float(lin16_t lin16_mant, lin16m_t vout_mode)
struct Peak16Words vout2_peaks
struct RawByte status_mfr
struct Peak16Words vout1_peaks
virtual void sendByte(uint8_t address, uint8_t command)=0
SMBus send byte command.
void dumpBinary(Print *printer=0)
Dumps binary of the fault log to a Print inheriting object, or Serial if none specified.
uint16_t getLin5_11WordVal(Lin5_11Word value)
struct Peak5_11Words temp_peaks
struct VoutData vout_data0
void print(Print *printer=0)
Pretty prints this part's fault log to a Print inheriting object, or Serial if none specified...
void release()
Frees the memory reserved for the fault log.
struct Peak16Words vout6_peaks
float lin11_to_float(lin11_t xin)
struct TempData temp_data
#define FILE_TEXT_LINE_MAX
uint8_t * getBinary()
Get binary of the fault log or NULL if no log.
union LT_union_int32_4bytes data
struct FaultLogPreambleLtc2978 preamble
struct Peak16Words vout7_peaks
uint16_t getLin16WordVal(Lin16Word value)
struct VoutData vout_data7
LT_2978FaultLog(LT_PMBus *pmbus)
Constructor.
struct VoutData vout_data1
struct Peak16Words vout3_peaks
LTC SMBus Support: Implementation for a LTC2978 Fault Log.
uint64_t getSharedTime200us(FaultLogTimeStamp time_stamp)
struct RawByte status_vin
struct Peak16Words vout0_peaks
bool isValidData(void *pos, uint8_t size=2)
struct RawByte status_vout
struct VoutData vout_data2
virtual uint8_t readBlock(uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0
SMBus read block command.
struct FaultLogPeaksLtc2978 peaks
struct FaultLogReadLoopLtc2978 * loops
FaultLogLtc2978 * faultLog2978
struct Lin5_11WordReverse read_temp1
uint8_t getRawByteVal(RawByte value)
uint16_t getLin16WordReverseVal(Lin16WordReverse value)
struct VoutData vout_data6
struct Peak16Words vout5_peaks
#define MFR_FAULT_LOG_RESTORE
struct Peak5_11Words vin_peaks
uint16_t getBinarySize()
Get size of binary data.
struct Peak16Words vout4_peaks
struct RawByte status_temp