swd_probe_app.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef __ARHA_FLIPPERAPP_DEMO
  2. #define __ARHA_FLIPPERAPP_DEMO
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include <stdio.h>
  6. #include <furi.h>
  7. #include <furi_hal.h>
  8. #include <furi_hal_speaker.h>
  9. #include <gui/gui.h>
  10. #include <input/input.h>
  11. #include <lib/subghz/receiver.h>
  12. #include <lib/subghz/transmitter.h>
  13. #include <lib/subghz/subghz_file_encoder_worker.h>
  14. #include <notification/notification.h>
  15. #include <notification/notification_messages.h>
  16. #define TAG "SWD"
  17. #define TIMER_HZ 50
  18. typedef enum { KeyNone, KeyUp, KeyRight, KeyDown, KeyLeft, KeyOK } KeyCode;
  19. typedef enum {
  20. EventTimerTick,
  21. EventKeyPress,
  22. } EventType;
  23. typedef struct {
  24. EventType type;
  25. InputEvent input;
  26. } AppEvent;
  27. typedef struct {
  28. KeyCode last_key;
  29. FuriTimer* _timer;
  30. FuriMessageQueue* _event_queue;
  31. NotificationApp* notification;
  32. uint8_t current_mask_id;
  33. uint32_t current_mask;
  34. uint8_t io_swc;
  35. uint8_t io_swd;
  36. uint32_t dpidr;
  37. uint32_t detected_timeout;
  38. bool detected;
  39. bool detected_device;
  40. bool detected_notified;
  41. char state_string[32];
  42. } AppFSM;
  43. const NotificationSequence seq_c_minor = {
  44. &message_note_c4,
  45. &message_delay_100,
  46. &message_sound_off,
  47. &message_delay_10,
  48. &message_note_ds4,
  49. &message_delay_100,
  50. &message_sound_off,
  51. &message_delay_10,
  52. &message_note_g4,
  53. &message_delay_100,
  54. &message_sound_off,
  55. &message_delay_10,
  56. &message_vibro_on,
  57. &message_delay_50,
  58. &message_vibro_off,
  59. NULL,
  60. };
  61. #endif