protocol_dallas_base.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "../protocol_common_i.h"
  3. #include <one_wire/one_wire_host.h>
  4. #include <one_wire/one_wire_slave.h>
  5. #include <flipper_format/flipper_format.h>
  6. typedef bool (*iButtonProtocolDallasReadWriteFunc)(OneWireHost*, iButtonProtocolData*);
  7. typedef void (*iButtonProtocolDallasEmulateFunc)(OneWireSlave*, iButtonProtocolData*);
  8. typedef bool (*iButtonProtocolDallasSaveFunc)(FlipperFormat*, const iButtonProtocolData*);
  9. typedef bool (*iButtonProtocolDallasLoadFunc)(FlipperFormat*, uint32_t, iButtonProtocolData*);
  10. typedef void (*iButtonProtocolDallasRenderDataFunc)(FuriString*, const iButtonProtocolData*);
  11. typedef bool (*iButtonProtocolDallasIsValidFunc)(const iButtonProtocolData*);
  12. typedef void (
  13. *iButtonProtocolDallasGetEditableDataFunc)(iButtonEditableData*, iButtonProtocolData*);
  14. typedef void (*iButtonProtocolDallasApplyEditsFunc)(iButtonProtocolData*);
  15. typedef struct {
  16. const uint8_t family_code;
  17. const uint32_t features;
  18. const size_t data_size;
  19. const char* manufacturer;
  20. const char* name;
  21. iButtonProtocolDallasReadWriteFunc read;
  22. iButtonProtocolDallasReadWriteFunc write_blank;
  23. iButtonProtocolDallasReadWriteFunc write_copy;
  24. iButtonProtocolDallasEmulateFunc emulate;
  25. iButtonProtocolDallasSaveFunc save;
  26. iButtonProtocolDallasLoadFunc load;
  27. iButtonProtocolDallasRenderDataFunc render_data;
  28. iButtonProtocolDallasRenderDataFunc render_brief_data;
  29. iButtonProtocolDallasRenderDataFunc render_error;
  30. iButtonProtocolDallasIsValidFunc is_valid;
  31. iButtonProtocolDallasGetEditableDataFunc get_editable_data;
  32. iButtonProtocolDallasApplyEditsFunc apply_edits;
  33. } iButtonProtocolDallasBase;