30 #if !defined(_StIntelHexFile_h_) 31 #define _StIntelHexFile_h_ 42 INTELHEX_START_CHAR =
':',
46 INTELHEX_MIN_LENGTH = 11,
49 INTELHEX_ADDRESS_START_CHAR_INDEX = 3,
52 INTELHEX_TYPE_START_CHAR_INDEX = 7,
55 INTELHEX_DATA_START_CHAR_INDEX = 9
62 INTELHEX_RECORD_DATA = 0x00,
66 INTELHEX_RECORD_END_OF_FILE = 0x01,
69 INTELHEX_RECORD_EXTENDED_SEGMENT_ADDRESS = 0x02,
72 INTELHEX_RECORD_START_SEGMENT_ADDRESS = 0x03,
75 INTELHEX_RECORD_EXTENDED_LINEAR_ADDRESS = 0x04,
78 INTELHEX_RECORD_START_LINEAR_ADDRESS = 0x05
122 virtual void setName(
const std::string &inName) {
m_name = inName; }
123 virtual std::string getName()
const {
return m_name; }
132 virtual void parse();
141 inline const_iterator getEnd()
const {
return m_records.end(); }
146 inline const IntelHex &operator[](
unsigned inIndex) {
return m_records[inIndex]; }
157 virtual void parseLine(std::string &inLine);
159 bool isHexDigit(
char c);
160 int hexDigitToInt(
char digit);
161 int readHexByte(std::string &inString,
int inIndex);
173 :
std::runtime_error(inMessage)
178 #endif // _StIntelHexFile_h_ unsigned getRecordCount() const
Definition: StIntelHexFile.h:138
StIntelHexFile(std::istream &inStream)
Constructor.
Definition: StIntelHexFile.cpp:37
virtual void parseLine(std::string &inLine)
Parses individual Intel Hex.
Definition: StIntelHexFile.cpp:153
uint8_t m_checksum
The checksum byte used to verify the record.
Definition: StIntelHexFile.h:107
std::vector< IntelHex >::const_iterator const_iterator
Iterator type.
Definition: StIntelHexFile.h:111
virtual void parse()
Parse the entire IntelHex input stream.
Definition: StIntelHexFile.cpp:79
std::istream & m_stream
The input stream for the Intel Hex data.
Definition: StIntelHexFile.h:150
virtual ~StIntelHexFile()
Destructor.
Definition: StIntelHexFile.cpp:43
unsigned m_type
Definition: StIntelHexFile.h:100
StIntelHexParseException(const std::string &inMessage)
Default constructor.
Definition: StIntelHexFile.h:172
std::string m_name
File name. (optional)
Definition: StIntelHexFile.h:153
Definition: StIntelHexFile.h:96
uint8_t * m_data
Pointer to data, or NULL if no data for this record.
Definition: StIntelHexFile.h:106
int readHexByte(std::string &inString, int inIndex)
Definition: StIntelHexFile.cpp:133
const_iterator getBegin() const
Definition: StIntelHexFile.h:140
virtual bool isIntelHexFile()
Determine if the file is a Intel Hex file.
Definition: StIntelHexFile.cpp:58
Simple exception thrown to indicate an error in the input Intel Hex data format.
Definition: StIntelHexFile.h:168
unsigned m_dataCount
The number of bytes in the data field.
Definition: StIntelHexFile.h:98
Intel Hex parser.
Definition: StIntelHexFile.h:90
std::vector< IntelHex > m_records
Vector of Intel Hex in the input data.
Definition: StIntelHexFile.h:151
uint32_t m_address
The address offset of the data.
Definition: StIntelHexFile.h:99