luat_onewire.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef LUAT_ONEWIRE_H
  2. #define LUAT_ONEWIRE_H
  3. #define LUAT_ONEWIRE_MODE_GPIO 1
  4. #define LUAT_ONEWIRE_MODE_HW 2
  5. typedef struct luat_onewire_ctx
  6. {
  7. int32_t id;
  8. int32_t mode;
  9. void* userdata;
  10. }luat_onewire_ctx_t;
  11. int luat_onewire_setup(luat_onewire_ctx_t* ctx);
  12. int luat_onewire_read(luat_onewire_ctx_t* ctx, char* buff, size_t len);
  13. int luat_onewire_write(luat_onewire_ctx_t* ctx, const char* buff, size_t len);
  14. int luat_onewire_close(luat_onewire_ctx_t* ctx);
  15. int luat_onewire_setup_gpio(luat_onewire_ctx_t* ctx);
  16. int luat_onewire_read_gpio(luat_onewire_ctx_t* ctx, char* buff, size_t len);
  17. int luat_onewire_write_gpio(luat_onewire_ctx_t* ctx, const char* buff, size_t len);
  18. int luat_onewire_close_gpio(luat_onewire_ctx_t* ctx);
  19. typedef int (*onewire_setup)(luat_onewire_ctx_t* ctx);
  20. typedef int (*onewire_read)(luat_onewire_ctx_t* ctx, char* buff, size_t len);
  21. typedef int (*onewire_write)(luat_onewire_ctx_t* ctx, const char* buff, size_t len);
  22. typedef int (*onewire_close)(luat_onewire_ctx_t* ctx);
  23. typedef struct luat_onewire_opt {
  24. int32_t mode;
  25. onewire_setup setup;
  26. onewire_read read;
  27. onewire_write write;
  28. onewire_close close;
  29. }luat_onewire_opt_t;
  30. int luat_onewire_set_hw_opt(const luat_onewire_opt_t* ctx);
  31. int luat_onewire_ds18b20(luat_onewire_ctx_t* ctx, int check_crc, int32_t *re);
  32. int luat_onewire_dht(luat_onewire_ctx_t* ctx, int32_t* temp, int32_t* hm, int check_crc);
  33. #endif