mag_state.h 915 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <string.h>
  3. #include <stddef.h>
  4. #include <stdint.h>
  5. #include <stdbool.h>
  6. #include <furi_hal_resources.h>
  7. #include <furi_hal_rtc.h>
  8. #include <storage/storage.h>
  9. #include <flipper_format/flipper_format.h>
  10. #include "helpers/mag_types.h"
  11. #define MAG_STATE_HEADER "Mag State"
  12. #define MAG_STATE_VER 1
  13. #define MAG_STATE_DIR STORAGE_APP_DATA_PATH_PREFIX
  14. #define MAG_STATE_PATH MAG_STATE_DIR "/mag_state.txt"
  15. typedef struct {
  16. MagTxState tx;
  17. MagTrackState track;
  18. MagReverseState reverse;
  19. uint32_t us_clock;
  20. uint32_t us_interpacket;
  21. MagPin pin_input;
  22. MagPin pin_output;
  23. MagPin pin_enable;
  24. bool allow_uart;
  25. bool is_debug;
  26. } MagState;
  27. const GpioPin* mag_state_enum_to_pin(MagPin pin);
  28. bool mag_state_gpio_is_valid(MagState* state);
  29. void mag_state_gpio_reset(MagState* state);
  30. bool mag_state_load(MagState* out_state);
  31. void mag_state_save(MagState* state);