From 30e45e7e1c4e82f23f07dd236e4c8d036c728009 Mon Sep 17 00:00:00 2001 From: Elena Jochum Date: Fri, 1 Dec 2023 22:33:42 +0000 Subject: [PATCH 1/5] Update COBC-EDU protocol --- Sts1CobcSw/CommandParser.cpp | 2 +- Sts1CobcSw/Edu/Edu.cpp | 21 ++++++++++--------- Sts1CobcSw/Edu/EduMock.cpp | 10 +++++---- Sts1CobcSw/Edu/ProgramQueue.cpp | 4 ++-- Sts1CobcSw/Edu/ProgramQueue.hpp | 4 ++-- Sts1CobcSw/Edu/ProgramStatusHistory.cpp | 4 ++-- Sts1CobcSw/Edu/ProgramStatusHistory.hpp | 4 ++-- Sts1CobcSw/Edu/Structs.hpp | 14 ++++++------- Sts1CobcSw/Edu/Structs.ipp | 6 +++--- Sts1CobcSw/EduHeartbeatThread.cpp | 4 ++-- Sts1CobcSw/EduListenerThread.cpp | 6 +++--- Sts1CobcSw/EduProgramQueueThread.cpp | 10 ++++----- Tests/GoldenTests/DispatchCommand.test.cpp | 4 ++-- Tests/GoldenTests/UpdateRingBuffer.test.cpp | 10 ++++----- .../EduCommandTests/EduCommands.test.cpp | 14 +++++++------ 15 files changed, 61 insertions(+), 56 deletions(-) diff --git a/Sts1CobcSw/CommandParser.cpp b/Sts1CobcSw/CommandParser.cpp index 9b6d434a..ebfb8589 100644 --- a/Sts1CobcSw/CommandParser.cpp +++ b/Sts1CobcSw/CommandParser.cpp @@ -88,7 +88,7 @@ auto ParseAndAddQueueEntries(std::span queueEntries) -> void Deserialize(queueEntries.first>()); RODOS::PRINTF("Prog ID : %" PRIu16 "\n", entry.programId); - RODOS::PRINTF("Queue ID : %" PRIu16 "\n", entry.queueId); + RODOS::PRINTF("Timestamp : %" PRIu32 "\n", entry.timestamp); RODOS::PRINTF("Start Time : %" PRIu32 "\n", entry.startTime); RODOS::PRINTF("Timeout : %" PRIi16 "\n", entry.timeout); diff --git a/Sts1CobcSw/Edu/Edu.cpp b/Sts1CobcSw/Edu/Edu.cpp index 8a2d63c4..a2984077 100644 --- a/Sts1CobcSw/Edu/Edu.cpp +++ b/Sts1CobcSw/Edu/Edu.cpp @@ -9,6 +9,7 @@ #include #include +#include #include @@ -115,7 +116,7 @@ auto StoreArchive([[maybe_unused]] StoreArchiveData const & data) -> std::int32_ //! -> [DATA] //! -> [Command Header] //! -> [Program ID] -//! -> [Queue ID] +//! -> [Timestamp] //! -> [Timeout] //! <- [N/ACK] //! <- [N/ACK] @@ -124,15 +125,15 @@ auto StoreArchive([[maybe_unused]] StoreArchiveData const & data) -> std::int32_ //! the second N/ACK confirms that the program has been started. //! //! @param programId The student program ID -//! @param queueId The student program queue ID +//! @param timestamp The student program timestamp //! @param timeout The available execution time for the student program //! //! @returns A relevant error code auto ExecuteProgram(ExecuteProgramData const & data) -> ErrorCode { - RODOS::PRINTF("ExecuteProgram(programId = %d, queueId = %d, timeout = %d)\n", + RODOS::PRINTF("ExecuteProgram(programId = %d, timestamp = %" PRIi32 ", timeout = %d)\n", data.programId, - data.queueId, + data.timestamp, data.timeout); // Check if data command was successful auto serialData = Serialize(data); @@ -243,12 +244,12 @@ auto GetStatus() -> Status } while(errorCount++ < maxNNackRetries); RODOS::PRINTF( - " .statusType = %d\n .errorCode = %d\n .programId = %d\n .queueId = %d\n exitCode = " - "%d\n", + " .statusType = %d\n .errorCode = %d\n .programId = %d\n .timestamp = %" PRIi32 + "\n exitCode = %d\n", static_cast(status.statusType), static_cast(status.errorCode), status.programId, - status.queueId, + status.timestamp, status.exitCode); return status; } @@ -304,7 +305,7 @@ auto GetStatusCommunication() -> Status return Status{.statusType = StatusType::noEvent, .programId = 0, - .queueId = 0, + .timestamp = 0, .exitCode = 0, .errorCode = ErrorCode::success}; } @@ -338,7 +339,7 @@ auto GetStatusCommunication() -> Status auto programFinishedData = Deserialize(dataBuffer); return Status{.statusType = StatusType::programFinished, .programId = programFinishedData.programId, - .queueId = programFinishedData.queueId, + .timestamp = programFinishedData.timestamp, .exitCode = programFinishedData.exitCode, .errorCode = ErrorCode::success}; } @@ -370,7 +371,7 @@ auto GetStatusCommunication() -> Status auto resultsReadyData = Deserialize(dataBuffer); return Status{.statusType = StatusType::resultsReady, .programId = resultsReadyData.programId, - .queueId = resultsReadyData.queueId, + .timestamp = resultsReadyData.timestamp, .errorCode = ErrorCode::success}; } diff --git a/Sts1CobcSw/Edu/EduMock.cpp b/Sts1CobcSw/Edu/EduMock.cpp index 534faf48..cfe5b7a3 100644 --- a/Sts1CobcSw/Edu/EduMock.cpp +++ b/Sts1CobcSw/Edu/EduMock.cpp @@ -1,6 +1,8 @@ #include #include +#include + namespace sts1cobcsw { @@ -62,9 +64,9 @@ auto StoreArchive(StoreArchiveData const & data) -> std::int32_t auto ExecuteProgram(ExecuteProgramData const & data) -> ErrorCode { PrintFormattedSystemUtc(); - PRINTF("Call to ExecuteProgram(programId = %d, queueId = %d, timeout = %d)\n", + PRINTF("Call to ExecuteProgram(programId = %d, timestamp = %" PRIi32 ", timeout = %d)\n", data.programId, - data.queueId, + data.timestamp, data.timeout); return ErrorCode::success; } @@ -86,7 +88,7 @@ auto GetStatus() -> Status PRINTF("Call to GetStatus()\n"); return {.statusType = StatusType::invalid, .programId = 0, - .queueId = 0, + .timestamp = 0, .exitCode = 0, .errorCode = ErrorCode::success}; } @@ -96,7 +98,7 @@ auto GetStatus() -> Status auto UpdateTime(UpdateTimeData const & data) -> ErrorCode { PrintFormattedSystemUtc(); - PRINTF("Call to UpdateTime(timestamp = %d)\n", data.timestamp); + PRINTF("Call to UpdateTime(timestamp = %" PRIi32 ")\n", data.timestamp); return ErrorCode::success; } diff --git a/Sts1CobcSw/Edu/ProgramQueue.cpp b/Sts1CobcSw/Edu/ProgramQueue.cpp index bea242a8..408ee8e4 100644 --- a/Sts1CobcSw/Edu/ProgramQueue.cpp +++ b/Sts1CobcSw/Edu/ProgramQueue.cpp @@ -18,7 +18,7 @@ template auto DeserializeFrom(void const * source, QueueEntry * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->queueId)); + source = DeserializeFrom(source, &(data->timestamp)); source = DeserializeFrom(source, &(data->startTime)); source = DeserializeFrom(source, &(data->timeout)); return source; @@ -33,7 +33,7 @@ template auto SerializeTo(void * destination, QueueEntry const & data) -> void * { destination = SerializeTo(destination, data.programId); - destination = SerializeTo(destination, data.queueId); + destination = SerializeTo(destination, data.timestamp); destination = SerializeTo(destination, data.startTime); destination = SerializeTo(destination, data.timeout); return destination; diff --git a/Sts1CobcSw/Edu/ProgramQueue.hpp b/Sts1CobcSw/Edu/ProgramQueue.hpp index c2bb4f9f..9ffbc4e2 100644 --- a/Sts1CobcSw/Edu/ProgramQueue.hpp +++ b/Sts1CobcSw/Edu/ProgramQueue.hpp @@ -23,7 +23,7 @@ namespace edu struct QueueEntry { std::uint16_t programId = 0; - std::uint16_t queueId = 0; + std::int32_t timestamp = 0; std::int32_t startTime = 0; std::int16_t timeout = 0; }; @@ -33,7 +33,7 @@ struct QueueEntry template<> inline constexpr std::size_t serialSize = totalSerialSize; diff --git a/Sts1CobcSw/Edu/ProgramStatusHistory.cpp b/Sts1CobcSw/Edu/ProgramStatusHistory.cpp index 37b82b21..57f040e5 100644 --- a/Sts1CobcSw/Edu/ProgramStatusHistory.cpp +++ b/Sts1CobcSw/Edu/ProgramStatusHistory.cpp @@ -9,7 +9,7 @@ RODOS::RingBuffer programSt auto UpdateProgramStatusHistory(std::uint16_t programId, - std::uint16_t queueId, + std::int32_t timestamp, ProgramStatus newStatus) -> void { // TODO: Check that there is only one entry matching program/queue ID, or should it be the case @@ -17,7 +17,7 @@ auto UpdateProgramStatusHistory(std::uint16_t programId, for(std::uint32_t i = 0; i < programStatusHistory.occupiedCnt; ++i) { - if(programStatusHistory.vals[i].queueId == queueId + if(programStatusHistory.vals[i].timestamp == timestamp and programStatusHistory.vals[i].programId == programId) { programStatusHistory.vals[i].status = newStatus; diff --git a/Sts1CobcSw/Edu/ProgramStatusHistory.hpp b/Sts1CobcSw/Edu/ProgramStatusHistory.hpp index a6b7a7c8..f32fe0bc 100644 --- a/Sts1CobcSw/Edu/ProgramStatusHistory.hpp +++ b/Sts1CobcSw/Edu/ProgramStatusHistory.hpp @@ -26,7 +26,7 @@ enum class ProgramStatus : std::uint8_t struct ProgramStatusHistoryEntry { std::uint16_t programId = 0; - std::uint16_t queueId = 0; + std::int32_t timestamp = 0; ProgramStatus status = ProgramStatus::programRunning; }; @@ -38,6 +38,6 @@ extern RODOS::RingBuffer pr auto UpdateProgramStatusHistory(std::uint16_t programId, - std::uint16_t queueId, + std::int32_t timestamp, ProgramStatus newStatus) -> void; } diff --git a/Sts1CobcSw/Edu/Structs.hpp b/Sts1CobcSw/Edu/Structs.hpp index 408bc305..d2883401 100644 --- a/Sts1CobcSw/Edu/Structs.hpp +++ b/Sts1CobcSw/Edu/Structs.hpp @@ -38,7 +38,7 @@ struct ExecuteProgramData { static constexpr auto id = executeProgramId; std::uint16_t programId; - std::uint16_t queueId; + std::int32_t timestamp; std::int16_t timeout; }; @@ -54,7 +54,7 @@ struct Status { StatusType statusType = StatusType::invalid; std::uint16_t programId = 0; - std::uint16_t queueId = 0; + std::int32_t timestamp = 0; std::uint8_t exitCode = 0; ErrorCode errorCode = ErrorCode::noErrorCodeSet; }; @@ -63,14 +63,14 @@ struct Status struct ResultsReadyStatus { std::uint16_t programId; - std::uint16_t queueId; + std::int32_t timestamp; }; struct ProgramFinishedStatus { std::uint16_t programId; - std::uint16_t queueId; + std::int32_t timestamp; std::uint8_t exitCode; }; @@ -90,13 +90,13 @@ inline constexpr std::size_t serialSize = template<> inline constexpr std::size_t serialSize = totalSerialSize; template<> inline constexpr std::size_t serialSize = totalSerialSize; + decltype(edu::ResultsReadyStatus::timestamp)>; template<> inline constexpr std::size_t serialSize = @@ -107,7 +107,7 @@ template<> inline constexpr std::size_t serialSize = totalSerialSize; template<> diff --git a/Sts1CobcSw/Edu/Structs.ipp b/Sts1CobcSw/Edu/Structs.ipp index 7f6d8d57..8d51c1ef 100644 --- a/Sts1CobcSw/Edu/Structs.ipp +++ b/Sts1CobcSw/Edu/Structs.ipp @@ -23,7 +23,7 @@ template auto DeserializeFrom(void const * source, ProgramFinishedStatus * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->queueId)); + source = DeserializeFrom(source, &(data->timestamp)); source = DeserializeFrom(source, &(data->exitCode)); return source; } @@ -33,7 +33,7 @@ template auto DeserializeFrom(void const * source, ResultsReadyStatus * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->queueId)); + source = DeserializeFrom(source, &(data->timestamp)); return source; } @@ -52,7 +52,7 @@ auto SerializeTo(void * destination, ExecuteProgramData const & data) -> void * { destination = SerializeTo(destination, ExecuteProgramData::id); destination = SerializeTo(destination, data.programId); - destination = SerializeTo(destination, data.queueId); + destination = SerializeTo(destination, data.timestamp); destination = SerializeTo(destination, data.timeout); return destination; } diff --git a/Sts1CobcSw/EduHeartbeatThread.cpp b/Sts1CobcSw/EduHeartbeatThread.cpp index 5d0bacbd..185ab97f 100644 --- a/Sts1CobcSw/EduHeartbeatThread.cpp +++ b/Sts1CobcSw/EduHeartbeatThread.cpp @@ -179,11 +179,11 @@ class DummyThread : public RODOS::StaticThread<> RODOS::PRINTF("Hello From DummyThread Timeloop\n"); auto programId = 0_u16; - auto queueId = 5_u16; + auto timestamp = 5_u16; auto timeout = 10_i16; auto executeProgramData = ExecuteProgramData{ - .programId = programId, .queueId = queueId, .timeout = timeout}; + .programId = programId, .timestamp = timestamp, .timeout = timeout}; edu.ExecuteProgram(executeProgramData); RODOS::AT(RODOS::NOW() + 11 * RODOS::SECONDS); diff --git a/Sts1CobcSw/EduListenerThread.cpp b/Sts1CobcSw/EduListenerThread.cpp index 562d42d1..c3984dd9 100644 --- a/Sts1CobcSw/EduListenerThread.cpp +++ b/Sts1CobcSw/EduListenerThread.cpp @@ -83,14 +83,14 @@ class EduListenerThread : public RODOS::StaticThread<> { edu::UpdateProgramStatusHistory( status.programId, - status.queueId, + status.timestamp, edu::ProgramStatus::programExecutionSucceeded); } else { edu::UpdateProgramStatusHistory( status.programId, - status.queueId, + status.timestamp, edu::ProgramStatus::programExecutionFailed); } ResumeEduProgramQueueThread(); @@ -125,7 +125,7 @@ class EduListenerThread : public RODOS::StaticThread<> // break; edu::UpdateProgramStatusHistory(status.programId, - status.queueId, + status.timestamp, edu::ProgramStatus::resultFileTransfered); break; } diff --git a/Sts1CobcSw/EduProgramQueueThread.cpp b/Sts1CobcSw/EduProgramQueueThread.cpp index 76aaacf2..c42a225e 100644 --- a/Sts1CobcSw/EduProgramQueueThread.cpp +++ b/Sts1CobcSw/EduProgramQueueThread.cpp @@ -45,10 +45,10 @@ class EduProgramQueueThread : public RODOS::StaticThread edu::Initialize(); // auto queueEntry1 = EduQueueEntry{ - // .programId = 0, .queueId = 1, .startTime = 946'684'807, .timeout = 10}; // NOLINT + // .programId = 0, .timestamp = 1, .startTime = 946'684'807, .timeout = 10}; // NOLINT // auto queueEntry2 = EduQueueEntry{ - // .programId = 0, .queueId = 2, .startTime = 946'684'820, .timeout = 20}; // NOLINT + // .programId = 0, .timestamp = 2, .startTime = 946'684'820, .timeout = 20}; // NOLINT // eduProgramQueue.push_back(queueEntry1); // eduProgramQueue.push_back(queueEntry2); @@ -118,13 +118,13 @@ class EduProgramQueueThread : public RODOS::StaticThread // Never reached RODOS::PRINTF("Done suspending for the second time\n"); - auto queueId = edu::programQueue[edu::queueIndex].queueId; + auto timestamp = edu::programQueue[edu::queueIndex].timestamp; auto programId = edu::programQueue[edu::queueIndex].programId; auto timeout = edu::programQueue[edu::queueIndex].timeout; RODOS::PRINTF("Executing program %d\n", programId); auto executeProgramData = edu::ExecuteProgramData{ - .programId = programId, .queueId = queueId, .timeout = timeout}; + .programId = programId, .timestamp = timestamp, .timeout = timeout}; // Start Process errorCode = edu::ExecuteProgram(executeProgramData); // errorCode = edu::ErrorCode::success; @@ -140,7 +140,7 @@ class EduProgramQueueThread : public RODOS::StaticThread { edu::programStatusHistory.put( edu::ProgramStatusHistoryEntry{.programId = programId, - .queueId = queueId, + .timestamp = timestamp, .status = edu::ProgramStatus::programRunning}); // Suspend Self for execution time diff --git a/Tests/GoldenTests/DispatchCommand.test.cpp b/Tests/GoldenTests/DispatchCommand.test.cpp index 567481c1..cc21f5b0 100644 --- a/Tests/GoldenTests/DispatchCommand.test.cpp +++ b/Tests/GoldenTests/DispatchCommand.test.cpp @@ -36,11 +36,11 @@ class DispatchCommandTest : public RODOS::StaticThread<> command.insert(command.end(), header.begin(), header.end()); auto entry1 = Serialize( - edu::QueueEntry{.programId = 1, .queueId = 16, .startTime = 1048577, .timeout = 1}); + edu::QueueEntry{.programId = 1, .timestamp = 16, .startTime = 1048577, .timeout = 1}); command.insert(command.end(), entry1.begin(), entry1.end()); auto entry2 = Serialize( - edu::QueueEntry{.programId = 2, .queueId = 32, .startTime = 2097154, .timeout = 2}); + edu::QueueEntry{.programId = 2, .timestamp = 32, .startTime = 2097154, .timeout = 2}); command.insert(command.end(), entry2.begin(), entry2.end()); while(not command.full()) diff --git a/Tests/GoldenTests/UpdateRingBuffer.test.cpp b/Tests/GoldenTests/UpdateRingBuffer.test.cpp index 5f486104..57fd38bc 100644 --- a/Tests/GoldenTests/UpdateRingBuffer.test.cpp +++ b/Tests/GoldenTests/UpdateRingBuffer.test.cpp @@ -52,13 +52,13 @@ class UpdateRingBufferTest : public RODOS::StaticThread<> printfMask = 1; edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 1, .queueId = 1, .status = edu::ProgramStatus::programExecutionFailed}); + .programId = 1, .timestamp = 1, .status = edu::ProgramStatus::programExecutionFailed}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 2, .queueId = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 2, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 3, .queueId = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 3, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 4, .queueId = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 4, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); auto readCnt = edu::programStatusHistory.readCnt; @@ -70,7 +70,7 @@ class UpdateRingBufferTest : public RODOS::StaticThread<> edu::UpdateProgramStatusHistory(2, 1, edu::ProgramStatus::programExecutionSucceeded); edu::UpdateProgramStatusHistory(4, 1, edu::ProgramStatus::programExecutionFailed); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 5, .queueId = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 5, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); edu::UpdateProgramStatusHistory(5, 1, edu::ProgramStatus::programExecutionSucceeded); // 1, because we did not read anything diff --git a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp index ee2d6f50..869edbe1 100644 --- a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp +++ b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp @@ -10,6 +10,7 @@ #include #include +#include #include @@ -77,8 +78,8 @@ class EduCommandsTest : public RODOS::StaticThread<> PRINTF("Please enter a queue ID (1 character)\n"); hal::ReadFrom(&uciUart, std::span(userInput)); - std::uint16_t queueId = 0; - std::from_chars(begin(userInput), end(userInput), queueId); + std::int32_t timestamp = 0; + std::from_chars(begin(userInput), end(userInput), timestamp); PRINTF("Please enter a timeout (1 character)\n"); hal::ReadFrom(&uciUart, std::span(userInput)); @@ -86,12 +87,13 @@ class EduCommandsTest : public RODOS::StaticThread<> std::from_chars(begin(userInput), end(userInput), timeout); PRINTF("\n"); - PRINTF("Sending ExecuteProgram(programId = %d, queueId = %d, timeout = %d)\n", + PRINTF("Sending ExecuteProgram(programId = %d, timestamp = %" PRIu32 + ", timeout = %d)\n", static_cast(programId), - static_cast(queueId), + static_cast(timestamp), static_cast(timeout)); auto errorCode = edu::ExecuteProgram( - {.programId = programId, .queueId = queueId, .timeout = timeout}); + {.programId = programId, .timestamp = timestamp, .timeout = timeout}); PRINTF("Returned error code: %d\n", static_cast(errorCode)); break; } @@ -102,7 +104,7 @@ class EduCommandsTest : public RODOS::StaticThread<> PRINTF("Returned status:\n"); PRINTF(" type = %d\n", static_cast(status.statusType)); PRINTF(" program ID = %d\n", static_cast(status.programId)); - PRINTF(" queue ID = %d\n", static_cast(status.queueId)); + PRINTF(" timestamp = %d\n", static_cast(status.timestamp)); PRINTF(" exit code = %d\n", static_cast(status.exitCode)); PRINTF(" error code = %d\n", static_cast(status.errorCode)); break; From f5f507ac0e0a85ab928310df0f997d3e0388ceca Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Mon, 4 Dec 2023 10:50:02 +0000 Subject: [PATCH 2/5] Use correct fixed-width integer format specifiers --- Sts1CobcSw/CommandParser.cpp | 4 ++-- .../HardwareTests/EduCommandTests/EduCommands.test.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Sts1CobcSw/CommandParser.cpp b/Sts1CobcSw/CommandParser.cpp index ebfb8589..66b116e8 100644 --- a/Sts1CobcSw/CommandParser.cpp +++ b/Sts1CobcSw/CommandParser.cpp @@ -88,8 +88,8 @@ auto ParseAndAddQueueEntries(std::span queueEntries) -> void Deserialize(queueEntries.first>()); RODOS::PRINTF("Prog ID : %" PRIu16 "\n", entry.programId); - RODOS::PRINTF("Timestamp : %" PRIu32 "\n", entry.timestamp); - RODOS::PRINTF("Start Time : %" PRIu32 "\n", entry.startTime); + RODOS::PRINTF("Timestamp : %" PRIi32 "\n", entry.timestamp); + RODOS::PRINTF("Start Time : %" PRIi32 "\n", entry.startTime); RODOS::PRINTF("Timeout : %" PRIi16 "\n", entry.timeout); edu::programQueue.push_back(entry); diff --git a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp index 869edbe1..fe9cde43 100644 --- a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp +++ b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp @@ -87,11 +87,11 @@ class EduCommandsTest : public RODOS::StaticThread<> std::from_chars(begin(userInput), end(userInput), timeout); PRINTF("\n"); - PRINTF("Sending ExecuteProgram(programId = %d, timestamp = %" PRIu32 - ", timeout = %d)\n", - static_cast(programId), - static_cast(timestamp), - static_cast(timeout)); + PRINTF("Sending ExecuteProgram(programId = %" PRIu16 ", timestamp = %" PRIi32 + ", timeout = %" PRIi16 ")\n", + programId, + timestamp, + timeout); auto errorCode = edu::ExecuteProgram( {.programId = programId, .timestamp = timestamp, .timeout = timeout}); PRINTF("Returned error code: %d\n", static_cast(errorCode)); From 4f3c3605729454b37f5ce552a98b280c7e3c68c6 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Mon, 4 Dec 2023 10:54:26 +0000 Subject: [PATCH 3/5] Update expected output of DispatchCommand.test.cpp --- Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt b/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt index 512509fa..8cd2f02a 100644 --- a/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt +++ b/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt @@ -1,16 +1,16 @@ Header start character : a Header commandID : 52 Header utc : 1704067200 -Header length : 20 +Header length : 24 DateUTC(DD/MM/YYYY HH:MIN:SS) : 01/01/2024 00:00:00. Entering build queue command parsing Printing and parsing Prog ID : 1 -Queue ID : 16 +Timestamp : 16 Start Time : 1048577 Timeout : 1 Prog ID : 2 -Queue ID : 32 +Timestamp : 32 Start Time : 2097154 Timeout : 2 Queue index reset. Current size of EDU program queue is 2. From 856a8565d91a12806340e1941dbe47fb8da75b85 Mon Sep 17 00:00:00 2001 From: Elena Jochum Date: Sun, 10 Dec 2023 12:25:34 +0000 Subject: [PATCH 4/5] Rename timestamp to startTime or remove it --- Sts1CobcSw/CommandParser.cpp | 1 - Sts1CobcSw/Edu/Edu.cpp | 18 +++++++++--------- Sts1CobcSw/Edu/EduMock.cpp | 6 +++--- Sts1CobcSw/Edu/ProgramQueue.cpp | 2 -- Sts1CobcSw/Edu/ProgramQueue.hpp | 2 -- Sts1CobcSw/Edu/ProgramStatusHistory.cpp | 4 ++-- Sts1CobcSw/Edu/ProgramStatusHistory.hpp | 4 ++-- Sts1CobcSw/Edu/Structs.hpp | 14 +++++++------- Sts1CobcSw/Edu/Structs.ipp | 6 +++--- Sts1CobcSw/EduListenerThread.cpp | 6 +++--- Sts1CobcSw/EduProgramQueueThread.cpp | 6 +++--- Tests/GoldenTests/DispatchCommand.test.cpp | 8 ++++---- .../ExpectedOutputs/DispatchCommand.txt | 4 +--- Tests/GoldenTests/UpdateRingBuffer.test.cpp | 10 +++++----- .../EduCommandTests/EduCommands.test.cpp | 14 +++++++------- 15 files changed, 49 insertions(+), 56 deletions(-) diff --git a/Sts1CobcSw/CommandParser.cpp b/Sts1CobcSw/CommandParser.cpp index 66b116e8..45fe5212 100644 --- a/Sts1CobcSw/CommandParser.cpp +++ b/Sts1CobcSw/CommandParser.cpp @@ -88,7 +88,6 @@ auto ParseAndAddQueueEntries(std::span queueEntries) -> void Deserialize(queueEntries.first>()); RODOS::PRINTF("Prog ID : %" PRIu16 "\n", entry.programId); - RODOS::PRINTF("Timestamp : %" PRIi32 "\n", entry.timestamp); RODOS::PRINTF("Start Time : %" PRIi32 "\n", entry.startTime); RODOS::PRINTF("Timeout : %" PRIi16 "\n", entry.timeout); diff --git a/Sts1CobcSw/Edu/Edu.cpp b/Sts1CobcSw/Edu/Edu.cpp index a2984077..9244a80e 100644 --- a/Sts1CobcSw/Edu/Edu.cpp +++ b/Sts1CobcSw/Edu/Edu.cpp @@ -116,7 +116,7 @@ auto StoreArchive([[maybe_unused]] StoreArchiveData const & data) -> std::int32_ //! -> [DATA] //! -> [Command Header] //! -> [Program ID] -//! -> [Timestamp] +//! -> [Start Time] //! -> [Timeout] //! <- [N/ACK] //! <- [N/ACK] @@ -125,15 +125,15 @@ auto StoreArchive([[maybe_unused]] StoreArchiveData const & data) -> std::int32_ //! the second N/ACK confirms that the program has been started. //! //! @param programId The student program ID -//! @param timestamp The student program timestamp +//! @param startTime The student program start time //! @param timeout The available execution time for the student program //! //! @returns A relevant error code auto ExecuteProgram(ExecuteProgramData const & data) -> ErrorCode { - RODOS::PRINTF("ExecuteProgram(programId = %d, timestamp = %" PRIi32 ", timeout = %d)\n", + RODOS::PRINTF("ExecuteProgram(programId = %d, startTime = %" PRIi32 ", timeout = %d)\n", data.programId, - data.timestamp, + data.startTime, data.timeout); // Check if data command was successful auto serialData = Serialize(data); @@ -244,12 +244,12 @@ auto GetStatus() -> Status } while(errorCount++ < maxNNackRetries); RODOS::PRINTF( - " .statusType = %d\n .errorCode = %d\n .programId = %d\n .timestamp = %" PRIi32 + " .statusType = %d\n .errorCode = %d\n .programId = %d\n .startTime = %" PRIi32 "\n exitCode = %d\n", static_cast(status.statusType), static_cast(status.errorCode), status.programId, - status.timestamp, + status.startTime, status.exitCode); return status; } @@ -305,7 +305,7 @@ auto GetStatusCommunication() -> Status return Status{.statusType = StatusType::noEvent, .programId = 0, - .timestamp = 0, + .startTime = 0, .exitCode = 0, .errorCode = ErrorCode::success}; } @@ -339,7 +339,7 @@ auto GetStatusCommunication() -> Status auto programFinishedData = Deserialize(dataBuffer); return Status{.statusType = StatusType::programFinished, .programId = programFinishedData.programId, - .timestamp = programFinishedData.timestamp, + .startTime = programFinishedData.startTime, .exitCode = programFinishedData.exitCode, .errorCode = ErrorCode::success}; } @@ -371,7 +371,7 @@ auto GetStatusCommunication() -> Status auto resultsReadyData = Deserialize(dataBuffer); return Status{.statusType = StatusType::resultsReady, .programId = resultsReadyData.programId, - .timestamp = resultsReadyData.timestamp, + .startTime = resultsReadyData.startTime, .errorCode = ErrorCode::success}; } diff --git a/Sts1CobcSw/Edu/EduMock.cpp b/Sts1CobcSw/Edu/EduMock.cpp index cfe5b7a3..762cd0bb 100644 --- a/Sts1CobcSw/Edu/EduMock.cpp +++ b/Sts1CobcSw/Edu/EduMock.cpp @@ -64,9 +64,9 @@ auto StoreArchive(StoreArchiveData const & data) -> std::int32_t auto ExecuteProgram(ExecuteProgramData const & data) -> ErrorCode { PrintFormattedSystemUtc(); - PRINTF("Call to ExecuteProgram(programId = %d, timestamp = %" PRIi32 ", timeout = %d)\n", + PRINTF("Call to ExecuteProgram(programId = %d, startTime = %" PRIi32 ", timeout = %d)\n", data.programId, - data.timestamp, + data.startTime, data.timeout); return ErrorCode::success; } @@ -88,7 +88,7 @@ auto GetStatus() -> Status PRINTF("Call to GetStatus()\n"); return {.statusType = StatusType::invalid, .programId = 0, - .timestamp = 0, + .startTime = 0, .exitCode = 0, .errorCode = ErrorCode::success}; } diff --git a/Sts1CobcSw/Edu/ProgramQueue.cpp b/Sts1CobcSw/Edu/ProgramQueue.cpp index 408ee8e4..2313f796 100644 --- a/Sts1CobcSw/Edu/ProgramQueue.cpp +++ b/Sts1CobcSw/Edu/ProgramQueue.cpp @@ -18,7 +18,6 @@ template auto DeserializeFrom(void const * source, QueueEntry * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->timestamp)); source = DeserializeFrom(source, &(data->startTime)); source = DeserializeFrom(source, &(data->timeout)); return source; @@ -33,7 +32,6 @@ template auto SerializeTo(void * destination, QueueEntry const & data) -> void * { destination = SerializeTo(destination, data.programId); - destination = SerializeTo(destination, data.timestamp); destination = SerializeTo(destination, data.startTime); destination = SerializeTo(destination, data.timeout); return destination; diff --git a/Sts1CobcSw/Edu/ProgramQueue.hpp b/Sts1CobcSw/Edu/ProgramQueue.hpp index 9ffbc4e2..3440328a 100644 --- a/Sts1CobcSw/Edu/ProgramQueue.hpp +++ b/Sts1CobcSw/Edu/ProgramQueue.hpp @@ -23,7 +23,6 @@ namespace edu struct QueueEntry { std::uint16_t programId = 0; - std::int32_t timestamp = 0; std::int32_t startTime = 0; std::int16_t timeout = 0; }; @@ -33,7 +32,6 @@ struct QueueEntry template<> inline constexpr std::size_t serialSize = totalSerialSize; diff --git a/Sts1CobcSw/Edu/ProgramStatusHistory.cpp b/Sts1CobcSw/Edu/ProgramStatusHistory.cpp index 57f040e5..925f4e27 100644 --- a/Sts1CobcSw/Edu/ProgramStatusHistory.cpp +++ b/Sts1CobcSw/Edu/ProgramStatusHistory.cpp @@ -9,7 +9,7 @@ RODOS::RingBuffer programSt auto UpdateProgramStatusHistory(std::uint16_t programId, - std::int32_t timestamp, + std::int32_t startTime, ProgramStatus newStatus) -> void { // TODO: Check that there is only one entry matching program/queue ID, or should it be the case @@ -17,7 +17,7 @@ auto UpdateProgramStatusHistory(std::uint16_t programId, for(std::uint32_t i = 0; i < programStatusHistory.occupiedCnt; ++i) { - if(programStatusHistory.vals[i].timestamp == timestamp + if(programStatusHistory.vals[i].startTime == startTime and programStatusHistory.vals[i].programId == programId) { programStatusHistory.vals[i].status = newStatus; diff --git a/Sts1CobcSw/Edu/ProgramStatusHistory.hpp b/Sts1CobcSw/Edu/ProgramStatusHistory.hpp index f32fe0bc..01ca465c 100644 --- a/Sts1CobcSw/Edu/ProgramStatusHistory.hpp +++ b/Sts1CobcSw/Edu/ProgramStatusHistory.hpp @@ -26,7 +26,7 @@ enum class ProgramStatus : std::uint8_t struct ProgramStatusHistoryEntry { std::uint16_t programId = 0; - std::int32_t timestamp = 0; + std::int32_t startTime = 0; ProgramStatus status = ProgramStatus::programRunning; }; @@ -38,6 +38,6 @@ extern RODOS::RingBuffer pr auto UpdateProgramStatusHistory(std::uint16_t programId, - std::int32_t timestamp, + std::int32_t startTime, ProgramStatus newStatus) -> void; } diff --git a/Sts1CobcSw/Edu/Structs.hpp b/Sts1CobcSw/Edu/Structs.hpp index d2883401..25db3bee 100644 --- a/Sts1CobcSw/Edu/Structs.hpp +++ b/Sts1CobcSw/Edu/Structs.hpp @@ -38,7 +38,7 @@ struct ExecuteProgramData { static constexpr auto id = executeProgramId; std::uint16_t programId; - std::int32_t timestamp; + std::int32_t startTime; std::int16_t timeout; }; @@ -54,7 +54,7 @@ struct Status { StatusType statusType = StatusType::invalid; std::uint16_t programId = 0; - std::int32_t timestamp = 0; + std::int32_t startTime = 0; std::uint8_t exitCode = 0; ErrorCode errorCode = ErrorCode::noErrorCodeSet; }; @@ -63,14 +63,14 @@ struct Status struct ResultsReadyStatus { std::uint16_t programId; - std::int32_t timestamp; + std::int32_t startTime; }; struct ProgramFinishedStatus { std::uint16_t programId; - std::int32_t timestamp; + std::int32_t startTime; std::uint8_t exitCode; }; @@ -90,13 +90,13 @@ inline constexpr std::size_t serialSize = template<> inline constexpr std::size_t serialSize = totalSerialSize; template<> inline constexpr std::size_t serialSize = totalSerialSize; + decltype(edu::ResultsReadyStatus::startTime)>; template<> inline constexpr std::size_t serialSize = @@ -107,7 +107,7 @@ template<> inline constexpr std::size_t serialSize = totalSerialSize; template<> diff --git a/Sts1CobcSw/Edu/Structs.ipp b/Sts1CobcSw/Edu/Structs.ipp index 8d51c1ef..1902f47b 100644 --- a/Sts1CobcSw/Edu/Structs.ipp +++ b/Sts1CobcSw/Edu/Structs.ipp @@ -23,7 +23,7 @@ template auto DeserializeFrom(void const * source, ProgramFinishedStatus * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->timestamp)); + source = DeserializeFrom(source, &(data->startTime)); source = DeserializeFrom(source, &(data->exitCode)); return source; } @@ -33,7 +33,7 @@ template auto DeserializeFrom(void const * source, ResultsReadyStatus * data) -> void const * { source = DeserializeFrom(source, &(data->programId)); - source = DeserializeFrom(source, &(data->timestamp)); + source = DeserializeFrom(source, &(data->startTime)); return source; } @@ -52,7 +52,7 @@ auto SerializeTo(void * destination, ExecuteProgramData const & data) -> void * { destination = SerializeTo(destination, ExecuteProgramData::id); destination = SerializeTo(destination, data.programId); - destination = SerializeTo(destination, data.timestamp); + destination = SerializeTo(destination, data.startTime); destination = SerializeTo(destination, data.timeout); return destination; } diff --git a/Sts1CobcSw/EduListenerThread.cpp b/Sts1CobcSw/EduListenerThread.cpp index c3984dd9..04e74bdf 100644 --- a/Sts1CobcSw/EduListenerThread.cpp +++ b/Sts1CobcSw/EduListenerThread.cpp @@ -83,14 +83,14 @@ class EduListenerThread : public RODOS::StaticThread<> { edu::UpdateProgramStatusHistory( status.programId, - status.timestamp, + status.startTime, edu::ProgramStatus::programExecutionSucceeded); } else { edu::UpdateProgramStatusHistory( status.programId, - status.timestamp, + status.startTime, edu::ProgramStatus::programExecutionFailed); } ResumeEduProgramQueueThread(); @@ -125,7 +125,7 @@ class EduListenerThread : public RODOS::StaticThread<> // break; edu::UpdateProgramStatusHistory(status.programId, - status.timestamp, + status.startTime, edu::ProgramStatus::resultFileTransfered); break; } diff --git a/Sts1CobcSw/EduProgramQueueThread.cpp b/Sts1CobcSw/EduProgramQueueThread.cpp index c42a225e..596bdc93 100644 --- a/Sts1CobcSw/EduProgramQueueThread.cpp +++ b/Sts1CobcSw/EduProgramQueueThread.cpp @@ -118,13 +118,13 @@ class EduProgramQueueThread : public RODOS::StaticThread // Never reached RODOS::PRINTF("Done suspending for the second time\n"); - auto timestamp = edu::programQueue[edu::queueIndex].timestamp; + auto startTime = edu::programQueue[edu::queueIndex].startTime; auto programId = edu::programQueue[edu::queueIndex].programId; auto timeout = edu::programQueue[edu::queueIndex].timeout; RODOS::PRINTF("Executing program %d\n", programId); auto executeProgramData = edu::ExecuteProgramData{ - .programId = programId, .timestamp = timestamp, .timeout = timeout}; + .programId = programId, .startTime = startTime, .timeout = timeout}; // Start Process errorCode = edu::ExecuteProgram(executeProgramData); // errorCode = edu::ErrorCode::success; @@ -140,7 +140,7 @@ class EduProgramQueueThread : public RODOS::StaticThread { edu::programStatusHistory.put( edu::ProgramStatusHistoryEntry{.programId = programId, - .timestamp = timestamp, + .startTime = startTime, .status = edu::ProgramStatus::programRunning}); // Suspend Self for execution time diff --git a/Tests/GoldenTests/DispatchCommand.test.cpp b/Tests/GoldenTests/DispatchCommand.test.cpp index cc21f5b0..0b512ecd 100644 --- a/Tests/GoldenTests/DispatchCommand.test.cpp +++ b/Tests/GoldenTests/DispatchCommand.test.cpp @@ -35,12 +35,12 @@ class DispatchCommandTest : public RODOS::StaticThread<> .length = 2 * serialSize}); command.insert(command.end(), header.begin(), header.end()); - auto entry1 = Serialize( - edu::QueueEntry{.programId = 1, .timestamp = 16, .startTime = 1048577, .timeout = 1}); + auto entry1 = + Serialize(edu::QueueEntry{.programId = 1, .startTime = 1048577, .timeout = 1}); command.insert(command.end(), entry1.begin(), entry1.end()); - auto entry2 = Serialize( - edu::QueueEntry{.programId = 2, .timestamp = 32, .startTime = 2097154, .timeout = 2}); + auto entry2 = + Serialize(edu::QueueEntry{.programId = 2, .startTime = 2097154, .timeout = 2}); command.insert(command.end(), entry2.begin(), entry2.end()); while(not command.full()) diff --git a/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt b/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt index 8cd2f02a..fbe248f1 100644 --- a/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt +++ b/Tests/GoldenTests/ExpectedOutputs/DispatchCommand.txt @@ -1,16 +1,14 @@ Header start character : a Header commandID : 52 Header utc : 1704067200 -Header length : 24 +Header length : 16 DateUTC(DD/MM/YYYY HH:MIN:SS) : 01/01/2024 00:00:00. Entering build queue command parsing Printing and parsing Prog ID : 1 -Timestamp : 16 Start Time : 1048577 Timeout : 1 Prog ID : 2 -Timestamp : 32 Start Time : 2097154 Timeout : 2 Queue index reset. Current size of EDU program queue is 2. diff --git a/Tests/GoldenTests/UpdateRingBuffer.test.cpp b/Tests/GoldenTests/UpdateRingBuffer.test.cpp index 57fd38bc..e6e679ad 100644 --- a/Tests/GoldenTests/UpdateRingBuffer.test.cpp +++ b/Tests/GoldenTests/UpdateRingBuffer.test.cpp @@ -52,13 +52,13 @@ class UpdateRingBufferTest : public RODOS::StaticThread<> printfMask = 1; edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 1, .timestamp = 1, .status = edu::ProgramStatus::programExecutionFailed}); + .programId = 1, .startTime = 1, .status = edu::ProgramStatus::programExecutionFailed}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 2, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 2, .startTime = 1, .status = edu::ProgramStatus::programRunning}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 3, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 3, .startTime = 1, .status = edu::ProgramStatus::programRunning}); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 4, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 4, .startTime = 1, .status = edu::ProgramStatus::programRunning}); auto readCnt = edu::programStatusHistory.readCnt; @@ -70,7 +70,7 @@ class UpdateRingBufferTest : public RODOS::StaticThread<> edu::UpdateProgramStatusHistory(2, 1, edu::ProgramStatus::programExecutionSucceeded); edu::UpdateProgramStatusHistory(4, 1, edu::ProgramStatus::programExecutionFailed); edu::programStatusHistory.put(edu::ProgramStatusHistoryEntry{ - .programId = 5, .timestamp = 1, .status = edu::ProgramStatus::programRunning}); + .programId = 5, .startTime = 1, .status = edu::ProgramStatus::programRunning}); edu::UpdateProgramStatusHistory(5, 1, edu::ProgramStatus::programExecutionSucceeded); // 1, because we did not read anything diff --git a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp index fe9cde43..ed785689 100644 --- a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp +++ b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp @@ -76,10 +76,10 @@ class EduCommandsTest : public RODOS::StaticThread<> std::uint16_t programId = 0; std::from_chars(begin(userInput), end(userInput), programId); - PRINTF("Please enter a queue ID (1 character)\n"); + PRINTF("Please enter a start time (1 character)\n"); hal::ReadFrom(&uciUart, std::span(userInput)); - std::int32_t timestamp = 0; - std::from_chars(begin(userInput), end(userInput), timestamp); + std::int32_t startTime = 0; + std::from_chars(begin(userInput), end(userInput), startTime); PRINTF("Please enter a timeout (1 character)\n"); hal::ReadFrom(&uciUart, std::span(userInput)); @@ -87,13 +87,13 @@ class EduCommandsTest : public RODOS::StaticThread<> std::from_chars(begin(userInput), end(userInput), timeout); PRINTF("\n"); - PRINTF("Sending ExecuteProgram(programId = %" PRIu16 ", timestamp = %" PRIi32 + PRINTF("Sending ExecuteProgram(programId = %" PRIu16 ", startTime = %" PRIi32 ", timeout = %" PRIi16 ")\n", programId, - timestamp, + startTime, timeout); auto errorCode = edu::ExecuteProgram( - {.programId = programId, .timestamp = timestamp, .timeout = timeout}); + {.programId = programId, .startTime = startTime, .timeout = timeout}); PRINTF("Returned error code: %d\n", static_cast(errorCode)); break; } @@ -104,7 +104,7 @@ class EduCommandsTest : public RODOS::StaticThread<> PRINTF("Returned status:\n"); PRINTF(" type = %d\n", static_cast(status.statusType)); PRINTF(" program ID = %d\n", static_cast(status.programId)); - PRINTF(" timestamp = %d\n", static_cast(status.timestamp)); + PRINTF(" startTime = %d\n", static_cast(status.startTime)); PRINTF(" exit code = %d\n", static_cast(status.exitCode)); PRINTF(" error code = %d\n", static_cast(status.errorCode)); break; From b62a297d5ae51d101ad46dccb950abb93a542e4c Mon Sep 17 00:00:00 2001 From: Elena Jochum Date: Sun, 10 Dec 2023 15:20:12 +0000 Subject: [PATCH 5/5] Rename UpdateTimeData.timestamp to UpdateTimeData.currentTime --- Sts1CobcSw/Edu/Edu.cpp | 4 ++-- Sts1CobcSw/Edu/EduMock.cpp | 2 +- Sts1CobcSw/Edu/Structs.hpp | 4 ++-- Sts1CobcSw/Edu/Structs.ipp | 2 +- Sts1CobcSw/EduProgramQueueThread.cpp | 2 +- Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Sts1CobcSw/Edu/Edu.cpp b/Sts1CobcSw/Edu/Edu.cpp index 9244a80e..548f10f6 100644 --- a/Sts1CobcSw/Edu/Edu.cpp +++ b/Sts1CobcSw/Edu/Edu.cpp @@ -537,14 +537,14 @@ auto ReturnResultCommunication() -> ResultInfo //! Update Time: //! -> [DATA] //! -> [Command Header] -//! -> [Timestamp] +//! -> [Current Time] //! <- [N/ACK] //! <- [N/ACK] //! //! The first N/ACK confirms a valid data packet, //! the second N/ACK confirms the time update. //! -//! @param timestamp A unix timestamp +//! @param currentTime A unix timestamp //! //! @returns A relevant error code auto UpdateTime(UpdateTimeData const & data) -> ErrorCode diff --git a/Sts1CobcSw/Edu/EduMock.cpp b/Sts1CobcSw/Edu/EduMock.cpp index 762cd0bb..74bee4fe 100644 --- a/Sts1CobcSw/Edu/EduMock.cpp +++ b/Sts1CobcSw/Edu/EduMock.cpp @@ -98,7 +98,7 @@ auto GetStatus() -> Status auto UpdateTime(UpdateTimeData const & data) -> ErrorCode { PrintFormattedSystemUtc(); - PRINTF("Call to UpdateTime(timestamp = %" PRIi32 ")\n", data.timestamp); + PRINTF("Call to UpdateTime(currentTime = %" PRIi32 ")\n", data.currentTime); return ErrorCode::success; } diff --git a/Sts1CobcSw/Edu/Structs.hpp b/Sts1CobcSw/Edu/Structs.hpp index 25db3bee..fe4ff2a2 100644 --- a/Sts1CobcSw/Edu/Structs.hpp +++ b/Sts1CobcSw/Edu/Structs.hpp @@ -46,7 +46,7 @@ struct ExecuteProgramData struct UpdateTimeData { static constexpr auto id = updateTimeId; - std::int32_t timestamp; + std::int32_t currentTime; }; @@ -112,7 +112,7 @@ inline constexpr std::size_t serialSize = template<> inline constexpr std::size_t serialSize = - totalSerialSize; + totalSerialSize; namespace edu diff --git a/Sts1CobcSw/Edu/Structs.ipp b/Sts1CobcSw/Edu/Structs.ipp index 1902f47b..8c99a2d1 100644 --- a/Sts1CobcSw/Edu/Structs.ipp +++ b/Sts1CobcSw/Edu/Structs.ipp @@ -62,7 +62,7 @@ template auto SerializeTo(void * destination, UpdateTimeData const & data) -> void * { destination = SerializeTo(destination, UpdateTimeData::id); - destination = SerializeTo(destination, data.timestamp); + destination = SerializeTo(destination, data.currentTime); return destination; } } diff --git a/Sts1CobcSw/EduProgramQueueThread.cpp b/Sts1CobcSw/EduProgramQueueThread.cpp index 596bdc93..22657c5f 100644 --- a/Sts1CobcSw/EduProgramQueueThread.cpp +++ b/Sts1CobcSw/EduProgramQueueThread.cpp @@ -94,7 +94,7 @@ class EduProgramQueueThread : public RODOS::StaticThread utility::PrintFormattedSystemUtc(); auto errorCode = - edu::UpdateTime(edu::UpdateTimeData{.timestamp = utility::GetUnixUtc()}); + edu::UpdateTime(edu::UpdateTimeData{.currentTime = utility::GetUnixUtc()}); if(errorCode != edu::ErrorCode::success) { RODOS::PRINTF("UpdateTime error code : %d\n", static_cast(errorCode)); diff --git a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp index ed785689..4cbe5116 100644 --- a/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp +++ b/Tests/HardwareTests/EduCommandTests/EduCommands.test.cpp @@ -61,9 +61,9 @@ class EduCommandsTest : public RODOS::StaticThread<> { case 'u': { - auto timestamp = utility::GetUnixUtc(); - PRINTF("Sending UpdateTime(timestamp = %d)\n", static_cast(timestamp)); - auto errorCode = edu::UpdateTime({.timestamp = timestamp}); + auto currentTime = utility::GetUnixUtc(); + PRINTF("Sending UpdateTime(currentTime = %d)\n", static_cast(currentTime)); + auto errorCode = edu::UpdateTime({.currentTime = currentTime}); PRINTF("Returned error code: %d\n", static_cast(errorCode)); break; }