small_modbus_rtthread.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef _SMALL_MODBUS_RTTHREAD_H_
  2. #define _SMALL_MODBUS_RTTHREAD_H_
  3. #include <rtthread.h>
  4. #include "string.h"
  5. #include "small_modbus.h"
  6. /*
  7. *modbus port device
  8. */
  9. #define SMALL_MODBUS_RTTHREAD_USE_DEVICDE
  10. #ifdef SMALL_MODBUS_RTTHREAD_USE_DEVICDE
  11. #include <rtdevice.h>
  12. typedef struct _small_modbus_port_device small_modbus_port_device_t;
  13. struct _small_modbus_port_device
  14. {
  15. struct _small_modbus_port base;
  16. const char *device_name;
  17. struct rt_device *device;
  18. struct rt_semaphore rx_sem;
  19. rt_size_t rx_size;
  20. int oflag;
  21. int (*rts_set)(int on);
  22. };
  23. int modbus_port_device_init(small_modbus_port_device_t *port,const char *device_name);
  24. small_modbus_port_device_t *modbus_port_device_create(const char *device_name);
  25. small_modbus_port_device_t *modbus_port_device_get(small_modbus_t *smb);
  26. int modbus_set_rts(small_modbus_t *smb,int (*rts_set)(int on));
  27. int modbus_set_serial_config(small_modbus_t *smb,struct serial_configure *serial_config);
  28. int modbus_set_oflag(small_modbus_t *smb,int oflag);
  29. #endif
  30. /*
  31. *modbus port socket
  32. */
  33. //#define SMALL_MODBUS_RTTHREAD_USE_SOCKET
  34. #ifdef SMALL_MODBUS_RTTHREAD_USE_SOCKET
  35. typedef struct _small_modbus_port_socket small_modbus_port_socket_t;
  36. struct _small_modbus_port_socket
  37. {
  38. struct _small_modbus_port base;
  39. const char *hostname;
  40. const char *hostport;
  41. void *device;
  42. int32_t socket_fd;
  43. };
  44. int modbus_port_socket_init(small_modbus_port_socket_t *port,char *hostname,char *hostport);
  45. small_modbus_port_socket_t *modbus_port_socket_create(char *hostname,char *hostport);
  46. small_modbus_port_socket_t *modbus_port_socket_get(small_modbus_t *smb);
  47. #endif
  48. /*
  49. *modbus_init
  50. */
  51. int modbus_init(small_modbus_t *smb,uint8_t core_type,void *port);
  52. small_modbus_t *modbus_create(uint8_t core_type,void *port);
  53. #endif /* _SMALL_MODBUS_RTTHREAD_H_ */