26 #ifndef _RECORD_AND_DETAILS_PARSER_HH 27 #define _RECORD_AND_DETAILS_PARSER_HH 29 #ifndef _DJI_TXT_PARSER_HH 33 #ifndef _FIELD_DATABASE_HH 54 virtual int parseRecord(u_int8_t
const*& ptr, u_int8_t
const* limit,
int isScrambled);
80 void noteByteField(
char const* label, u_int8_t
const*& ptr, u_int8_t
const* limit,
81 float divisor = 0.0,
int isSigned = 0);
83 void note2ByteField(
char const* label, u_int8_t
const*& ptr, u_int8_t
const* limit,
84 float divisor = 0.0, int16_t offset = 0,
int isSigned = 0);
88 float divisor = 0.0, int16_t offset = 0) {
92 float divisor = 0.0, int16_t offset = 0) {
95 void note4ByteField(
char const* label, u_int8_t
const*& ptr, u_int8_t
const* limit,
96 float divisor = 0.0,
int isSigned = 0);
104 void note2ByteDateField(
char const* label, u_int8_t
const*& ptr, u_int8_t
const* limit);
106 int isInMilliseconds = 0);
107 void noteStringField(
char const* label, u_int8_t
const*& ptr,
unsigned stringLength, u_int8_t
const* limit);
void parseRecord_HOME(u_int8_t const *&ptr, u_int8_t const *limit)
int parseJPEGRecord(u_int8_t const *&ptr, u_int8_t const *limit)
void noteSigned2ByteField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0, int16_t offset=0)
void note8ByteDoubleField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit)
RecordTypeStat fRecordTypeStats[256]
void parseRecord_RECOVER(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_APP_GPS(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecordUnknownFormat(char const *recordTypeName, u_int8_t const *&ptr, u_int8_t const *limit)
virtual void summarizeRecordParsing()
virtual ~RecordAndDetailsParser()
void noteUnsigned2ByteField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0, int16_t offset=0)
void parseRecord_APP_WARN(u_int8_t const *&ptr, u_int8_t const *limit)
virtual int parseRecord(u_int8_t const *&ptr, u_int8_t const *limit, int isScrambled)
virtual void parseDetailsArea(u_int8_t const *&ptr, u_int8_t const *limit)
void note8ByteLatitudeOrLongitudeFieldInDegrees(char const *label, u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_COMPONENT(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_CENTER_BATTERY(u_int8_t const *&ptr, u_int8_t const *limit)
void note8ByteLatitudeOrLongitudeFieldInRadians(char const *label, u_int8_t const *&ptr, u_int8_t const *limit)
unsigned fMaxNumRecordsForOneType
void enterSubByteField(char const *label, u_int8_t byte, u_int8_t mask)
void parseRecord_CUSTOM(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_DEFORM(u_int8_t const *&ptr, u_int8_t const *limit)
void note4ByteField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0, int isSigned=0)
void parseRecord_APP_TIP(u_int8_t const *&ptr, u_int8_t const *limit)
void note8ByteTimestampField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, int isInMilliseconds=0)
int parseRecord_JPEG(u_int8_t const *&ptr, u_int8_t const *limit)
FieldDatabase * fFieldDatabase
void parseRecord_RC(u_int8_t const *&ptr, u_int8_t const *limit)
void note3ByteVersionField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit)
void noteStringField(char const *label, u_int8_t const *&ptr, unsigned stringLength, u_int8_t const *limit)
void note2ByteField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0, int16_t offset=0, int isSigned=0)
void parseRecord_APP_SER_WARN(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_SMART_BATTERY(u_int8_t const *&ptr, u_int8_t const *limit)
void parseRecord_GIMBAL(u_int8_t const *&ptr, u_int8_t const *limit)
void note4ByteFloatField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0)
virtual void outputOneRow(int outputColumnLabels)
void parseRecord_FIRMWARE(u_int8_t const *&ptr, u_int8_t const *limit)
char const * fRecordTypeName[256]
void parseRecord_OSD(u_int8_t const *&ptr, u_int8_t const *limit)
void noteByteField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit, float divisor=0.0, int isSigned=0)
void note2ByteDateField(char const *label, u_int8_t const *&ptr, u_int8_t const *limit)