diff --git a/globalfunctions/printer.cpp b/globalfunctions/printer.cpp index d6ede0a5..d7af30a5 100644 --- a/globalfunctions/printer.cpp +++ b/globalfunctions/printer.cpp @@ -1,13 +1,34 @@ #include #include -void printer::print(uint8_t *data, size_t size) { +void printer::print(uint8_t *data, size_t size, OutputType type) { sif::info << "StorageAccessor: Printing data: ["; + if(type == OutputType::HEX) { + printer::printHex(data, size); + } + else { + printer::printDec(data, size); + } +} + +void printer::printHex(uint8_t *data, size_t size) { + sif::info << std::hex; for(size_t i = 0; i < size; i++) { - sif::info << std::hex << (int)data[i]; + sif::info << "0x" << static_cast(data[i]); if(i < size - 1){ sif::info << " , "; } } + sif::info << std::dec; sif::info << " ] " << std::endl; } + +void printer::printDec(uint8_t *data, size_t size) { + for(size_t i = 0; i < size; i++) { + sif::info << "0x" << static_cast(data[i]); + if(i < size - 1){ + sif::info << " , "; + } + } +} + diff --git a/globalfunctions/printer.h b/globalfunctions/printer.h index d4a573e9..3c9d6aa0 100644 --- a/globalfunctions/printer.h +++ b/globalfunctions/printer.h @@ -4,9 +4,15 @@ #include namespace printer { -void print(uint8_t *data, size_t size); + +enum class OutputType { + DEC, + HEX +}; + +void print(uint8_t* data, size_t size, OutputType type = OutputType::HEX); +void printHex(uint8_t* data, size_t size); +void printDec(uint8_t* data, size_t size); } - - #endif /* FRAMEWORK_GLOBALFUNCTIONS_PRINTER_H_ */ diff --git a/tmtcpacket/pus/TcPacketBase.cpp b/tmtcpacket/pus/TcPacketBase.cpp index 54ad92be..b98cf136 100644 --- a/tmtcpacket/pus/TcPacketBase.cpp +++ b/tmtcpacket/pus/TcPacketBase.cpp @@ -79,7 +79,7 @@ void TcPacketBase::initializeTcPacket(uint16_t apid, uint16_t sequenceCount, uint8_t ack, uint8_t service, uint8_t subservice) { initSpacePacketHeader(true, true, apid, sequenceCount); memset(&tcData->data_field, 0, sizeof(tcData->data_field)); - setPacketDataLength(sizeof(tcData->data_field) + CRC_SIZE); + setPacketDataLength(sizeof(PUSTcDataFieldHeader) + CRC_SIZE - 1); //Data Field Header: //Set CCSDS_secondary_header_flag to 0, version number to 001 and ack to 0000 tcData->data_field.version_type_ack = 0b00010000;