trade.hpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef TRADE_HPP
  2. #define TRADE_HPP
  3. #pragma once
  4. #include <furi.h>
  5. #include <furi_hal.h>
  6. #include <furi_hal_light.h>
  7. #include <gui/view.h>
  8. #include <gui/view_dispatcher.h>
  9. #include "../pokemon_app.h"
  10. #define GAME_BOY_CLK gpio_ext_pb2
  11. #define GAME_BOY_SI gpio_ext_pc3
  12. #define GAME_BOY_SO gpio_ext_pb3
  13. #define DELAY_MICROSECONDS 15
  14. #define PKMN_BLANK 0x00
  15. #define ITEM_1_HIGHLIGHTED 0xD0
  16. #define ITEM_2_HIGHLIGHTED 0xD1
  17. #define ITEM_3_HIGHLIGHTED 0xD2
  18. #define ITEM_1_SELECTED 0xD4
  19. #define ITEM_2_SELECTED 0xD5
  20. #define ITEM_3_SELECTED 0xD6
  21. #define PKMN_MASTER 0x01
  22. #define PKMN_SLAVE 0x02
  23. #define PKMN_CONNECTED 0x60
  24. #define PKMN_WAIT 0x7F
  25. #define PKMN_ACTION 0x60
  26. #define PKMN_TRADE_CENTRE ITEM_1_SELECTED
  27. #define PKMN_COLOSSEUM ITEM_2_SELECTED
  28. #define PKMN_BREAK_LINK ITEM_3_SELECTED
  29. #define TRADE_CENTRE_WAIT 0xFD
  30. typedef unsigned char byte;
  31. typedef enum { NOT_CONNECTED, CONNECTED, TRADE_CENTRE, COLOSSEUM } connection_state_t;
  32. typedef enum {
  33. INIT,
  34. READY_TO_GO,
  35. SEEN_FIRST_WAIT,
  36. SENDING_RANDOM_DATA,
  37. WAITING_TO_SEND_DATA,
  38. START_SENDING_DATA,
  39. SENDING_DATA,
  40. DATA_SENT,
  41. SENDING_PATCH_DATA,
  42. TRADE_PENDING,
  43. TRADE_CONFIRMATION,
  44. DONE
  45. } trade_centre_state_t;
  46. View* trade_alloc(PokemonFap* pokemon_fap);
  47. void trade_free(PokemonFap* pokemon_fap);
  48. extern unsigned char INPUT_BLOCK[405];
  49. extern unsigned char* DATA_BLOCK;
  50. #endif /* TRADE_HPP */