You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.cc 1.6 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. extern "C"
  2. {
  3. #include "../../../apis/c/node/node_api.h"
  4. }
  5. #include <iostream>
  6. #include <vector>
  7. int run(void *dora_context)
  8. {
  9. unsigned char counter = 0;
  10. for (int i = 0; i < 20; i++)
  11. {
  12. auto input = dora_next_input(dora_context);
  13. if (input == NULL)
  14. {
  15. return 0; // end of input
  16. }
  17. counter += 1;
  18. char *id_ptr;
  19. size_t id_len;
  20. read_dora_input_id(input, &id_ptr, &id_len);
  21. std::string id(id_ptr, id_len);
  22. char *data_ptr;
  23. size_t data_len;
  24. read_dora_input_data(input, &data_ptr, &data_len);
  25. std::vector<unsigned char> data;
  26. for (size_t i = 0; i < data_len; i++)
  27. {
  28. data.push_back(*(data_ptr + i));
  29. }
  30. std::cout
  31. << "Received input "
  32. << " (counter: " << (unsigned int)counter << ") data: [";
  33. for (unsigned char &v : data)
  34. {
  35. std::cout << (unsigned int)v << ", ";
  36. }
  37. std::cout << "]" << std::endl;
  38. free_dora_input(input);
  39. std::vector<unsigned char> out_vec{counter};
  40. std::string out_id = "counter";
  41. int result = dora_send_output(dora_context, &out_id[0], out_id.length(), (char *)&counter, 1);
  42. if (result != 0)
  43. {
  44. std::cerr << "failed to send output" << std::endl;
  45. return 1;
  46. }
  47. }
  48. return 0;
  49. }
  50. int main()
  51. {
  52. std::cout << "HELLO FROM C++ (using C API)" << std::endl;
  53. auto dora_context = init_dora_context_from_env();
  54. auto ret = run(dora_context);
  55. free_dora_context(dora_context);
  56. return ret;
  57. }

DORA (Dataflow-Oriented Robotic Architecture) is middleware designed to streamline and simplify the creation of AI-based robotic applications. It offers low latency, composable, and distributed datafl