ndi.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #define BOOST_TEST_DYN_LINK
  2. #define BOOST_TEST_MAIN // in only one cpp file
  3. #include "utility/variable_helper.hpp"
  4. #include "core/basic_obj_types.hpp"
  5. #include <boost/asio/co_spawn.hpp>
  6. #include <boost/asio/detached.hpp>
  7. #include <boost/asio/this_coro.hpp>
  8. #include <boost/asio/use_awaitable.hpp>
  9. #include <boost/test/unit_test.hpp>
  10. #include <spdlog/spdlog.h>
  11. #include <chrono>
  12. #include <fstream>
  13. #include <iostream>
  14. #include <vector>
  15. using boost::asio::awaitable;
  16. using boost::asio::co_spawn;
  17. using boost::asio::detached;
  18. using boost::asio::use_awaitable;
  19. using namespace sophiar;
  20. using namespace std::chrono_literals;
  21. //awaitable<void> coro_ndi_test() {
  22. // auto interface = std::make_unique<ndi_interface>();
  23. // auto init_config = nlohmann::json::parse(
  24. // R"({"address_type":"ethernet","ip":"169.254.132.51","tcp_port":8765,"com_port":"COM3","tool_list":[{"rom_path":"D:\\Program\\Robot\\Tools\\roms\\Probe_Small_4Ball.rom","outputs":{"transform":"tracker_probe_transform","marker_uncertainty":"tracker_probe_transform_uncertainty"}},{"rom_path":"D:\\Program\\Robot\\Tools\\roms\\Head_3Ball_2.rom","outputs":{"transform":"tracker_model_ref_transform","marker_uncertainty":"tracker_model_ref_transform_uncertainty"}}]})");
  25. // auto start_config = nlohmann::json::parse(
  26. // R"({"allow_unreliable":true,"prefer_stream_tracking":true})");
  27. //
  28. // BOOST_TEST(co_await interface->init(init_config));
  29. // BOOST_TEST(co_await interface->start(start_config));
  30. // auto trans_obj = global_obj_auto_sync_delegate<transform_obj>(
  31. // global_sophiar_manager,
  32. // "tracker_probe_transform");
  33. // int cnt = 0;
  34. // FILE_LINE_TRACE
  35. // for (;;) {
  36. // co_await trans_obj.coro_wait_update();
  37. //// if (!trans_obj.empty()) {
  38. //// std::cout << trans_obj->value.matrix() << std::endl;
  39. //// } else {
  40. //// std::cout << "empty" << std::endl;
  41. //// }
  42. // if (++cnt == 250) break;
  43. // }
  44. // FILE_LINE_TRACE
  45. // co_await interface->reset();
  46. //
  47. // start_config = nlohmann::json::parse(
  48. // R"({"allow_unreliable":true,"prefer_stream_tracking":false})");
  49. // BOOST_TEST(co_await interface->init(init_config));
  50. // BOOST_TEST(co_await interface->start(start_config));
  51. // cnt = 0;
  52. // FILE_LINE_TRACE
  53. // for (;;) {
  54. // co_await trans_obj.coro_wait_update();
  55. // if (++cnt == 60) break;
  56. // }
  57. // FILE_LINE_TRACE
  58. // co_await interface->reset();
  59. //
  60. // co_return;
  61. //}
  62. BOOST_AUTO_TEST_CASE(test_ndi) {
  63. spdlog::set_level(spdlog::level::trace);
  64. std::ifstream config_file("data/ndi_interface_config.json");
  65. assert(config_file.is_open());
  66. auto config = nlohmann::json::parse(config_file);
  67. auto ok = initialize(config);
  68. assert(ok);
  69. global_context->run();
  70. }