Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UAVCAN UAVCAN_Subscriber
libuavcan_drivers/linux/apps/test_posix.cpp@0:dfe6edabb8ec, 2018-04-14 (annotated)
- Committer:
- RuslanUrya
- Date:
- Sat Apr 14 10:25:32 2018 +0000
- Revision:
- 0:dfe6edabb8ec
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RuslanUrya | 0:dfe6edabb8ec | 1 | /* |
RuslanUrya | 0:dfe6edabb8ec | 2 | * Copyright (C) 2015 Pavel Kirienko <pavel.kirienko@gmail.com> |
RuslanUrya | 0:dfe6edabb8ec | 3 | */ |
RuslanUrya | 0:dfe6edabb8ec | 4 | |
RuslanUrya | 0:dfe6edabb8ec | 5 | #include <uavcan_posix/dynamic_node_id_server/file_event_tracer.hpp> |
RuslanUrya | 0:dfe6edabb8ec | 6 | #include <uavcan_posix/dynamic_node_id_server/file_storage_backend.hpp> |
RuslanUrya | 0:dfe6edabb8ec | 7 | #include <uavcan_linux/uavcan_linux.hpp> |
RuslanUrya | 0:dfe6edabb8ec | 8 | #include <iostream> |
RuslanUrya | 0:dfe6edabb8ec | 9 | #include <iomanip> |
RuslanUrya | 0:dfe6edabb8ec | 10 | #include "debug.hpp" |
RuslanUrya | 0:dfe6edabb8ec | 11 | |
RuslanUrya | 0:dfe6edabb8ec | 12 | int main(int argc, const char** argv) |
RuslanUrya | 0:dfe6edabb8ec | 13 | { |
RuslanUrya | 0:dfe6edabb8ec | 14 | (void)argc; |
RuslanUrya | 0:dfe6edabb8ec | 15 | (void)argv; |
RuslanUrya | 0:dfe6edabb8ec | 16 | try |
RuslanUrya | 0:dfe6edabb8ec | 17 | { |
RuslanUrya | 0:dfe6edabb8ec | 18 | ENFORCE(0 == std::system("mkdir -p /tmp/uavcan_posix/dynamic_node_id_server")); |
RuslanUrya | 0:dfe6edabb8ec | 19 | |
RuslanUrya | 0:dfe6edabb8ec | 20 | /* |
RuslanUrya | 0:dfe6edabb8ec | 21 | * Event tracer test |
RuslanUrya | 0:dfe6edabb8ec | 22 | */ |
RuslanUrya | 0:dfe6edabb8ec | 23 | { |
RuslanUrya | 0:dfe6edabb8ec | 24 | using namespace uavcan::dynamic_node_id_server; |
RuslanUrya | 0:dfe6edabb8ec | 25 | |
RuslanUrya | 0:dfe6edabb8ec | 26 | const std::string event_log_file("/tmp/uavcan_posix/dynamic_node_id_server/event.log"); |
RuslanUrya | 0:dfe6edabb8ec | 27 | |
RuslanUrya | 0:dfe6edabb8ec | 28 | uavcan_posix::dynamic_node_id_server::FileEventTracer tracer; |
RuslanUrya | 0:dfe6edabb8ec | 29 | ENFORCE(0 <= tracer.init(event_log_file.c_str())); |
RuslanUrya | 0:dfe6edabb8ec | 30 | |
RuslanUrya | 0:dfe6edabb8ec | 31 | // Adding a line |
RuslanUrya | 0:dfe6edabb8ec | 32 | static_cast<IEventTracer&>(tracer).onEvent(TraceError, 123456); |
RuslanUrya | 0:dfe6edabb8ec | 33 | ENFORCE(0 == std::system(("cat " + event_log_file).c_str())); |
RuslanUrya | 0:dfe6edabb8ec | 34 | |
RuslanUrya | 0:dfe6edabb8ec | 35 | // Removing the log file |
RuslanUrya | 0:dfe6edabb8ec | 36 | ENFORCE(0 == std::system(("rm -f " + event_log_file).c_str())); |
RuslanUrya | 0:dfe6edabb8ec | 37 | |
RuslanUrya | 0:dfe6edabb8ec | 38 | // Adding another line |
RuslanUrya | 0:dfe6edabb8ec | 39 | static_cast<IEventTracer&>(tracer).onEvent(TraceError, 789123); |
RuslanUrya | 0:dfe6edabb8ec | 40 | ENFORCE(0 == std::system(("cat " + event_log_file).c_str())); |
RuslanUrya | 0:dfe6edabb8ec | 41 | } |
RuslanUrya | 0:dfe6edabb8ec | 42 | |
RuslanUrya | 0:dfe6edabb8ec | 43 | /* |
RuslanUrya | 0:dfe6edabb8ec | 44 | * Storage backend test |
RuslanUrya | 0:dfe6edabb8ec | 45 | */ |
RuslanUrya | 0:dfe6edabb8ec | 46 | { |
RuslanUrya | 0:dfe6edabb8ec | 47 | using namespace uavcan::dynamic_node_id_server; |
RuslanUrya | 0:dfe6edabb8ec | 48 | |
RuslanUrya | 0:dfe6edabb8ec | 49 | uavcan_posix::dynamic_node_id_server::FileStorageBackend backend; |
RuslanUrya | 0:dfe6edabb8ec | 50 | ENFORCE(0 <= backend.init("/tmp/uavcan_posix/dynamic_node_id_server/storage")); |
RuslanUrya | 0:dfe6edabb8ec | 51 | |
RuslanUrya | 0:dfe6edabb8ec | 52 | auto print_key = [&](const char* key) { |
RuslanUrya | 0:dfe6edabb8ec | 53 | std::cout << static_cast<IStorageBackend&>(backend).get(key).c_str() << std::endl; |
RuslanUrya | 0:dfe6edabb8ec | 54 | }; |
RuslanUrya | 0:dfe6edabb8ec | 55 | |
RuslanUrya | 0:dfe6edabb8ec | 56 | print_key("foobar"); |
RuslanUrya | 0:dfe6edabb8ec | 57 | |
RuslanUrya | 0:dfe6edabb8ec | 58 | static_cast<IStorageBackend&>(backend).set("foobar", "0123456789abcdef0123456789abcdef"); |
RuslanUrya | 0:dfe6edabb8ec | 59 | static_cast<IStorageBackend&>(backend).set("the_answer", "42"); |
RuslanUrya | 0:dfe6edabb8ec | 60 | |
RuslanUrya | 0:dfe6edabb8ec | 61 | print_key("foobar"); |
RuslanUrya | 0:dfe6edabb8ec | 62 | print_key("the_answer"); |
RuslanUrya | 0:dfe6edabb8ec | 63 | print_key("nonexistent"); |
RuslanUrya | 0:dfe6edabb8ec | 64 | } |
RuslanUrya | 0:dfe6edabb8ec | 65 | |
RuslanUrya | 0:dfe6edabb8ec | 66 | return 0; |
RuslanUrya | 0:dfe6edabb8ec | 67 | } |
RuslanUrya | 0:dfe6edabb8ec | 68 | catch (const std::exception& ex) |
RuslanUrya | 0:dfe6edabb8ec | 69 | { |
RuslanUrya | 0:dfe6edabb8ec | 70 | std::cerr << "Exception: " << ex.what() << std::endl; |
RuslanUrya | 0:dfe6edabb8ec | 71 | return 1; |
RuslanUrya | 0:dfe6edabb8ec | 72 | } |
RuslanUrya | 0:dfe6edabb8ec | 73 | } |