read_res.cpp 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "read_res.h"
  2. #include <status_codes.h>
  3. #include <iostream>
  4. #include <stdexcept>
  5. #include <vector>
  6. #define SEPARATOR " "
  7. #define READ_VALUES_MESSAGE "Data: "
  8. using std::cout;
  9. using std::endl;
  10. using std::runtime_error;
  11. using std::vector;
  12. read_res::read_res()
  13. {
  14. }
  15. read_res::~read_res()
  16. {
  17. }
  18. command_type read_res::get_command()
  19. {
  20. return command_type::READ_CMD;
  21. }
  22. int read_res::perform(response *res)
  23. {
  24. if (res->response_u.read.response != status::VALID)
  25. throw runtime_error(
  26. status_codes::get(res->response_u.read.response));
  27. float *src = res->response_u.read.values.values_val;
  28. size_t size = res->response_u.read.values.values_len;
  29. vector<float> values(src, src + size);
  30. cout << READ_VALUES_MESSAGE;
  31. for (float i : values)
  32. cout << i << SEPARATOR;
  33. cout << endl;
  34. memset(&values, 0, sizeof values);
  35. return status::VALID;
  36. }