one_wire_device.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * @file one_wire_device.h
  3. *
  4. * 1-Wire slave library, device interface. Currently it can only emulate ID.
  5. */
  6. #pragma once
  7. #include <stdint.h>
  8. #include <stdbool.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. typedef struct OneWireSlave OneWireSlave;
  13. typedef struct OneWireDevice OneWireDevice;
  14. /**
  15. * Allocate onewire device with ID
  16. * @param id_1
  17. * @param id_2
  18. * @param id_3
  19. * @param id_4
  20. * @param id_5
  21. * @param id_6
  22. * @param id_7
  23. * @param id_8
  24. * @return OneWireDevice*
  25. */
  26. OneWireDevice* onewire_device_alloc(
  27. uint8_t id_1,
  28. uint8_t id_2,
  29. uint8_t id_3,
  30. uint8_t id_4,
  31. uint8_t id_5,
  32. uint8_t id_6,
  33. uint8_t id_7,
  34. uint8_t id_8);
  35. /**
  36. * Deallocate onewire device
  37. * @param device
  38. */
  39. void onewire_device_free(OneWireDevice* device);
  40. /**
  41. * Send ID report, called from onewire slave
  42. * @param device
  43. */
  44. void onewire_device_send_id(OneWireDevice* device);
  45. /**
  46. * Attach device to onewire slave bus
  47. * @param device
  48. * @param bus
  49. */
  50. void onewire_device_attach(OneWireDevice* device, OneWireSlave* bus);
  51. /**
  52. * Attach device from onewire slave bus
  53. * @param device
  54. */
  55. void onewire_device_detach(OneWireDevice* device);
  56. /**
  57. * Get pointer to device id array
  58. * @param device
  59. * @return uint8_t*
  60. */
  61. uint8_t* onewire_device_get_id_p(OneWireDevice* device);
  62. #ifdef __cplusplus
  63. }
  64. #endif