LibmodbusWrapper.h 918 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <stdio.h>
  3. #include <errno.h>
  4. #include <string>
  5. #include "modbus.h"
  6. namespace modbus
  7. {
  8. class CLibmodbusWrapper
  9. {
  10. public:
  11. CLibmodbusWrapper();
  12. virtual ~CLibmodbusWrapper();
  13. int initialize(const char *ip, int port, int slave_id);
  14. void deinitialize();
  15. public:
  16. int read_registers(int addr, int nb, uint16_t *dest);
  17. int write_registers(int addr, int nb, uint16_t *dest);
  18. int read_register(int addr, uint16_t *dest);
  19. int write_register(int addr, uint16_t *dest);
  20. inline bool is_connected() { return (0 == _ctx) ? false : true; };
  21. inline std::string getIP() { return _ip; };
  22. inline int getPort() { return _port; };
  23. inline int getSlave() { return _slave_id; };
  24. private:
  25. modbus_t* _ctx;
  26. private:
  27. std::string _ip;
  28. int _port;
  29. int _slave_id;
  30. };
  31. };