From 2468e35cf479722fc49f1f87beb85c4b1c2946c0 Mon Sep 17 00:00:00 2001 From: David Gitz Date: Mon, 31 Mar 2025 20:46:47 -0500 Subject: [PATCH 1/3] Major work done. --- .../node/SonarArrayDriverNode.cpp | 12 ++----- .../node/SonarArrayDriverNodeProcess.cpp | 14 ++++++-- .../test/test_SonarArrayDriverNodeProcess.cpp | 35 ++++++++++++++++++- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp index 2f171a8..0a3a63c 100644 --- a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp +++ b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp @@ -26,15 +26,9 @@ void SonarArrayDriverNode::system_commandAction_Callback( logger->log_diagnostic(diag); } void SonarArrayDriverNode::command_Callback(const eros::command::ConstPtr &t_msg) { - eros::command cmd = eros::eros_utility::ConvertUtility::convert_fromptr(t_msg); - eros::eros_diagnostic::Diagnostic diag = process->get_root_diagnostic(); - diag = process->update_diagnostic( - eros::eros_diagnostic::DiagnosticType::COMMUNICATIONS, - eros::Level::Type::WARN, - eros::eros_diagnostic::Message::DROPPING_PACKETS, - "Received unsupported Command: " + - eros::Command::CommandString((eros::Command::Type)cmd.Command)); - logger->log_diagnostic(diag); + eros::command cmd = eros_utility::ConvertUtility::convert_fromptr(t_msg); + auto diag_list = process->new_commandmsg(cmd); + for (auto diag : diag_list) { logger->log_diagnostic(diag); } } bool SonarArrayDriverNode::changenodestate_service(eros::srv_change_nodestate::Request &req, eros::srv_change_nodestate::Response &res) { diff --git a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNodeProcess.cpp b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNodeProcess.cpp index 0ca88da..c37ffce 100644 --- a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNodeProcess.cpp +++ b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNodeProcess.cpp @@ -42,9 +42,17 @@ eros::eros_diagnostic::Diagnostic SonarArrayDriverNodeProcess::update(double t_d } std::vector SonarArrayDriverNodeProcess::new_commandmsg( eros::command msg) { - (void)msg; - std::vector diag_list; - logger->log_warn("No Command Messages Supported at this time."); + std::vector diag_list = base_new_commandmsg(msg); + if (diag_list.size() == 0) { + // No currently supported commands. + } + else { + for (auto diag : diag_list) { + if (diag.level >= eros::Level::Type::INFO) { + diagnostic_manager.update_diagnostic(diag); + } + } + } return diag_list; } std::vector diff --git a/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp b/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp index 8d7c6f9..7f2f1ed 100644 --- a/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp +++ b/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp @@ -45,7 +45,6 @@ TEST(BasicTest, TestOperation) { Logger::LoggerStatus::LOG_WRITTEN); eros_diagnostic::Diagnostic diag = tester->finish_initialization(); - logger->log_diagnostic(diag); EXPECT_TRUE(diag.level <= Level::Type::NOTICE); tester->reset(); @@ -75,6 +74,40 @@ TEST(BasicTest, TestOperation) { // delete logger; delete tester; } + +TEST(TestCommands, TestAllCommands) { + Logger* logger = new Logger("DEBUG", "UnitTestSonarArrayDriverNodeProcess"); + SonarArrayDriverNodeProcessTester* tester = new SonarArrayDriverNodeProcessTester; + tester->initialize("UnitTestSonarArrayDriverNodeProcess", + "UnitTestSonarArrayDriverNodeProcess", + "MyHost", + System::MainSystem::SIMROVER, + System::SubSystem::ENTIRE_SYSTEM, + System::Component::ENTIRE_SUBSYSTEM, + logger); + std::vector diagnostic_types; + diagnostic_types.push_back(eros_diagnostic::DiagnosticType::SOFTWARE); + diagnostic_types.push_back(eros_diagnostic::DiagnosticType::DATA_STORAGE); + diagnostic_types.push_back(eros_diagnostic::DiagnosticType::SYSTEM_RESOURCE); + diagnostic_types.push_back(eros_diagnostic::DiagnosticType::COMMUNICATIONS); + tester->enable_diagnostics(diagnostic_types); + EXPECT_TRUE(tester->get_logger()->log_warn("A Log to Write") == + Logger::LoggerStatus::LOG_WRITTEN); + + eros_diagnostic::Diagnostic diag = tester->finish_initialization(); + EXPECT_TRUE(diag.level <= Level::Type::NOTICE); + for (uint8_t i = (uint16_t)Command::Type::UNKNOWN; i < (uint16_t)Command::Type::END_OF_LIST; + ++i) { + eros::command new_cmd; + new_cmd.Command = i; + std::vector diag_list = tester->new_commandmsg(new_cmd); + EXPECT_GT(diag_list.size(), 0); + for (auto diag : diag_list) { EXPECT_TRUE(diag.level < Level::Type::WARN); } + } + + delete tester; + delete logger; +} int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); From dd6065c6da171c8298e566f9dc82bfd80137ba23 Mon Sep 17 00:00:00 2001 From: David Gitz Date: Mon, 31 Mar 2025 20:47:02 -0500 Subject: [PATCH 2/3] Major work done. --- nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.h b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.h index 76bc071..c98c9a7 100644 --- a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.h +++ b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.h @@ -35,10 +35,10 @@ class SonarArrayDriverNode : public eros::BaseNode const uint16_t MINOR_RELEASE_VERSION = 0; /*! \brief The Build Number of the Node.*/ - const uint16_t BUILD_NUMBER = 3; + const uint16_t BUILD_NUMBER = 4; /*! \brief A Description of the Firmware.*/ - const std::string FIRMWARE_DESCRIPTION = "Latest Rev: 19-Mar-2025"; + const std::string FIRMWARE_DESCRIPTION = "Latest Rev: 31-Mar-2025"; /*! \brief What System this Node falls under.*/ const eros::System::MainSystem DIAGNOSTIC_SYSTEM = eros::System::MainSystem::ROVER; From 200eda0edea7f6ebfb722a8b61857b3acee244a5 Mon Sep 17 00:00:00 2001 From: David Gitz Date: Mon, 31 Mar 2025 20:58:50 -0500 Subject: [PATCH 3/3] Updates. --- nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp | 2 +- .../node/test/test_SonarArrayDriverNodeProcess.cpp | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp index 0a3a63c..0b9d716 100644 --- a/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp +++ b/nodes/SonarArrayDriverNode/node/SonarArrayDriverNode.cpp @@ -26,7 +26,7 @@ void SonarArrayDriverNode::system_commandAction_Callback( logger->log_diagnostic(diag); } void SonarArrayDriverNode::command_Callback(const eros::command::ConstPtr &t_msg) { - eros::command cmd = eros_utility::ConvertUtility::convert_fromptr(t_msg); + eros::command cmd = eros::eros_utility::ConvertUtility::convert_fromptr(t_msg); auto diag_list = process->new_commandmsg(cmd); for (auto diag : diag_list) { logger->log_diagnostic(diag); } } diff --git a/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp b/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp index 7f2f1ed..07a1cf1 100644 --- a/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp +++ b/nodes/SonarArrayDriverNode/node/test/test_SonarArrayDriverNodeProcess.cpp @@ -58,12 +58,6 @@ TEST(BasicTest, TestOperation) { timer += dt; } - logger->log_warn("Testing Unsupported Command Message"); - { - eros::command cmd; - std::vector diag_list = tester->new_commandmsg(cmd); - EXPECT_EQ(diag_list.size(), 0); - } logger->log_warn("Testing Unsupported Program Variables Check"); { std::vector diag_list = tester->check_programvariables(); @@ -106,7 +100,6 @@ TEST(TestCommands, TestAllCommands) { } delete tester; - delete logger; } int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv);