78 uint8_t *
data = (uint8_t *) malloc(
sizeof(uint8_t) * 80 * 2);
82 uint8_t *data = (uint8_t *) malloc(147);
124 printAllLoops(printer);
131 void LT_3883FaultLog::printTitle(Print *printer)
133 printer->print(F(
"LTC3883 Log Data\n"));
142 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 0\n"));
145 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 0\n"));
148 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 0\n"));
151 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 0\n"));
160 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 0\n"));
163 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 0\n"));
166 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position TON_MAX_FAULT Channel 1\n"));
169 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_OV_FAULT Channel 1\n"));
172 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VOUT_UV_FAULT Channel 1\n"));
175 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position IOUT_OC_FAULT Channel 1\n"));
184 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position VIN_OV_FAULT Channel 1\n"));
187 snprintf_P(buffer,
FILE_TEXT_LINE_MAX, PSTR(
"Fault Position MFR_OT_FAULT Channel 1\n"));
191 printer->print(buffer);
194 void LT_3883FaultLog::printTime(Print *printer)
197 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]);
198 printer->print(buffer);
200 printer->println(F(
" Ticks (200us each)"));
203 void LT_3883FaultLog::printPeaks(Print *printer)
205 printer->println(F(
"\nHeader Information:\n--------"));
207 printer->print(F(
"VOUT Peak 0 "));
209 printer->print(F(
"IOUT Peak "));
211 printer->print(F(
"IIN Peak 0 "));
213 printer->print(F(
"VIN Peak "));
215 printer->print(F(
"Temp External Last Event Page 0 "));
217 printer->print(F(
"Temp Internal Last Event "));
219 printer->print(F(
"Temp External Peak Page 0 "));
223 void LT_3883FaultLog::printAllLoops(Print *printer)
225 printer->println(F(
"\nFault Log Loops Follow:"));
226 printer->println(F(
"(most recent data first)"));
230 printLoop(
index, printer);
234 void LT_3883FaultLog::printLoop(uint8_t
index, Print *printer)
236 printer->println(F(
"-------"));
237 printer->print(F(
"Loop: "));
238 printer->println(
index);
239 printer->println(F(
"-------"));
241 printer->print(F(
"Input: "));
243 printer->print(F(
" V, "));
245 printer->println(F(
" A"));
246 printer->print(F(
"Chan0: "));
248 printer->print(F(
" V, "));
250 printer->println(F(
" A"));
252 printer->print(buffer);
254 printer->print(buffer);
256 printer->print(buffer);
struct Lin5_11WordReverse read_iin
struct Lin5_11WordReverse read_vin
uint16_t getLin5_11WordReverseVal(Lin5_11WordReverse value)
void dumpBin(Print *printer, uint8_t *log, uint8_t size)
struct Lin16WordReverse mfr_vout_peak_p0
struct RawByte status_vout_p0
float lin16_to_float(lin16_t lin16_mant, lin16m_t vout_mode)
uint16_t getRawWordReverseVal(RawWordReverse value)
void read(uint8_t address)
Reads the fault log from the specified address, reserves memory to hold the data. ...
uint16_t getBinarySize()
Get size of binary data.
uint8_t * getBinary()
Get binary of the fault log or NULL if no log.
struct FaultLogPreambleLtc3883 preamble
struct Lin5_11WordReverse mfr_vin_peak
struct Lin5_11WordReverse read_iout_p0
float lin11_to_float(lin11_t xin)
#define FILE_TEXT_LINE_MAX
union LT_union_int32_4bytes data
struct FaultLogReadLoopLtc3883 fault_log_loop[6]
struct FaultLogTelemetrySummaryLtc3883 peaks
void print(Print *printer=0)
Pretty prints this part's fault log to a Print inheriting object, or Serial if none specified...
struct RawByte status_mfr_specificP0
void getNvmBlock(uint8_t address, uint16_t offset, uint16_t numWords, uint8_t command, uint8_t *data)
struct Lin5_11WordReverse mfr_iout_peak_p0
struct RawWordReverse status_word_p0
void dumpBinary(Print *printer=0)
Dumps binary of the fault log to a Print inheriting object, or Serial if none specified.
struct Lin5_11WordReverse read_temperature_2
uint64_t getSharedTime200us(FaultLogTimeStamp time_stamp)
FaultLogLtc3883 * faultLog3883
struct Lin5_11WordReverse read_temperature_1_p0
virtual uint8_t readBlock(uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)=0
SMBus read block command.
void release()
Frees the memory reserved for the fault log.
uint8_t getRawByteVal(RawByte value)
LTC SMBus Support: Implementation for a LTC3883 Fault Log.
uint16_t getLin16WordReverseVal(Lin16WordReverse value)
struct Lin5_11WordReverse read_temperature_1_peak_p0
struct Lin5_11WordReverse mfr_iin_peak_p0
struct Lin16WordReverse read_vout_p0
LT_3883FaultLog(LT_PMBus *pmbus)
Constructor.
struct FaultLogTimeStamp shared_time