Skip to content

Commit

Permalink
added config folder argv; print unique id
Browse files Browse the repository at this point in the history
  • Loading branch information
serges147 committed Jan 28, 2025
1 parent b61ff0d commit b612772
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 9 deletions.
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@
[submodule "submodules/libcyphal"]
path = submodules/libcyphal
url = https://github.com/OpenCyphal-Garage/libcyphal.git
branch = sshirokov/412_rpc_clients
4 changes: 2 additions & 2 deletions libcyphal_demo/src/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ alignas(O1HEAP_ALIGNMENT) std::array<cetl::byte, HeapSize> s_heap_arena{};

} // namespace

Application::Application()
Application::Application(const char* const root_path)
: o1_heap_mr_{s_heap_arena}
, storage_{"/tmp/" NODE_NAME}
, storage_{root_path}
, registry_{o1_heap_mr_}
, media_block_mr_{*cetl::pmr::new_delete_resource()}
, regs_{o1_heap_mr_, registry_, media_block_mr_}
Expand Down
2 changes: 1 addition & 1 deletion libcyphal_demo/src/application.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ class Application final
Regs::StringParam<MaxNodeDesc>& description;
};

Application();
explicit Application(const char* const root_path);
~Application();

Application(const Application&) = delete;
Expand Down
33 changes: 28 additions & 5 deletions libcyphal_demo/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@
#include <libcyphal/types.hpp>

#include <algorithm>
#include <array>
#include <chrono>
#include <cstdint>
#include <cstring>
#include <ios>
#include <iomanip>
#include <iostream>
#include <unistd.h> // execve
#include <utility>
Expand Down Expand Up @@ -100,11 +104,20 @@ enum class ExitCode : std::uint8_t

}; // ExitCode

libcyphal::Expected<bool, ExitCode> run_application()
void PrintUniqueIdTo(const std::array<std::uint8_t, 16>& unique_id, std::ostream& os)
{
for (const auto byte : unique_id)
{
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<std::uint32_t>(byte);
}
}

libcyphal::Expected<bool, ExitCode> run_application(const char* const root_path)
{
std::cout << "\n🟢 ***************** LibCyphal demo *******************\n";
std::cout << "Root path : '" << root_path << "'\n";

Application application;
Application application{root_path};
auto& executor = application.executor();
auto& general_mr = application.general_memory();
auto& media_block_mr = application.media_block_memory();
Expand All @@ -130,9 +143,13 @@ libcyphal::Expected<bool, ExitCode> run_application()

// 2. Create the presentation layer object.
//
const auto unique_id = application.getUniqueId();
(void) transport_iface->setLocalNodeId(node_params.id.value()[0]);
std::cout << "Node ID : " << transport_iface->getLocalNodeId().value_or(65535) << "\n";
std::cout << "Node Name : '" << node_params.description.value().c_str() << "'\n";
std::cout << "Unique-ID : ";
PrintUniqueIdTo(unique_id, std::cout);
std::cout << "\n";
libcyphal::presentation::Presentation presentation{general_mr, executor, *transport_iface};

// 3. Create the node object with name.
Expand All @@ -156,7 +173,7 @@ libcyphal::Expected<bool, ExitCode> run_application()
.setName(node_params.description.value())
.setSoftwareVersion(VERSION_MAJOR, VERSION_MINOR)
.setSoftwareVcsRevisionId(VCS_REVISION_ID)
.setUniqueId(application.getUniqueId());
.setUniqueId(unique_id);
//
// Update node's health according to states of memory resources.
node.heartbeatProducer().setUpdateCallback([&](const auto& arg) {
Expand Down Expand Up @@ -213,9 +230,15 @@ libcyphal::Expected<bool, ExitCode> run_application()

} // namespace

int main(const int, char* const argv[])
int main(const int argc, char* const argv[])
{
const auto result = run_application();
const char* root_path = "/tmp/" NODE_NAME; // NOLINT
if (argc > 1)
{
root_path = argv[1]; // NOLINT
}

const auto result = run_application(root_path);
if (const auto* const err = cetl::get_if<ExitCode>(&result))
{
return static_cast<int>(*err);
Expand Down
2 changes: 2 additions & 0 deletions libcyphal_demo/src/platform/storage.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#include <cerrno>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <sys/stat.h>

Expand Down
2 changes: 1 addition & 1 deletion submodules/libcyphal
Submodule libcyphal updated 26 files
+98 −128 include/libcyphal/transport/can/can_transport_impl.hpp
+369 −100 include/libcyphal/transport/can/delegate.hpp
+16 −38 include/libcyphal/transport/can/msg_rx_session.hpp
+5 −3 include/libcyphal/transport/can/msg_tx_session.hpp
+44 −0 include/libcyphal/transport/can/rx_session_tree_node.hpp
+98 −97 include/libcyphal/transport/can/svc_rx_sessions.hpp
+10 −6 include/libcyphal/transport/can/svc_tx_sessions.hpp
+221 −0 include/libcyphal/transport/session_tree.hpp
+111 −0 include/libcyphal/transport/svc_rx_session_base.hpp
+310 −161 include/libcyphal/transport/udp/delegate.hpp
+8 −15 include/libcyphal/transport/udp/msg_rx_session.hpp
+4 −3 include/libcyphal/transport/udp/msg_tx_session.hpp
+129 −0 include/libcyphal/transport/udp/rx_session_tree_node.hpp
+0 −227 include/libcyphal/transport/udp/session_tree.hpp
+93 −93 include/libcyphal/transport/udp/svc_rx_sessions.hpp
+8 −6 include/libcyphal/transport/udp/svc_tx_sessions.hpp
+84 −45 include/libcyphal/transport/udp/udp_transport_impl.hpp
+26 −0 include/libcyphal/types.hpp
+40 −26 test/unittest/transport/can/test_can_delegate.cpp
+78 −30 test/unittest/transport/can/test_can_svc_rx_sessions.cpp
+4 −0 test/unittest/transport/can/test_can_transport.cpp
+206 −0 test/unittest/transport/test_session_tree.cpp
+0 −145 test/unittest/transport/udp/test_session_tree.cpp
+42 −35 test/unittest/transport/udp/test_udp_delegate.cpp
+69 −13 test/unittest/transport/udp/test_udp_svc_rx_sessions.cpp
+4 −0 test/unittest/transport/udp/test_udp_transport.cpp

0 comments on commit b612772

Please sign in to comment.