flip_weather.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef FLIP_WEATHER_E_H
  2. #define FLIP_WEATHER_E_H
  3. #include <flipper_http/flipper_http.h>
  4. #include <easy_flipper/easy_flipper.h>
  5. #include <jsmn/jsmn.h>
  6. #define TAG "FlipWeather"
  7. #define MAX_TOKENS 64 // Adjust based on expected JSON size (50)
  8. // Define the submenu items for our FlipWeather application
  9. typedef enum
  10. {
  11. FlipWeatherSubmenuIndexWeather, // Click to view the weather
  12. FlipWeatherSubmenuIndexGPS, // Click to view the GPS
  13. FlipWeatherSubmenuIndexAbout, // Click to view the about screen
  14. FlipWeatherSubmenuIndexSettings, // Click to view the settings screen
  15. } FlipWeatherSubmenuIndex;
  16. // Define a single view for our FlipWeather application
  17. typedef enum
  18. {
  19. FlipWeatherViewWeather, // The weather screen
  20. FlipWeatherViewGPS, // The GPS screen
  21. FlipWeatherViewSubmenu, // The main submenu
  22. FlipWeatherViewAbout, // The about screen
  23. FlipWeatherViewSettings, // The wifi settings screen
  24. FlipWeatherViewTextInputSSID, // The text input screen for SSID
  25. FlipWeatherViewTextInputPassword, // The text input screen for password
  26. //
  27. FlipWeatherViewPopupError, // The error popup screen
  28. } FlipWeatherView;
  29. // Each screen will have its own view
  30. typedef struct
  31. {
  32. ViewDispatcher *view_dispatcher; // Switches between our views
  33. View *view_weather; // The weather view
  34. View *view_gps; // The GPS view
  35. Submenu *submenu; // The main submenu
  36. Widget *widget; // The widget (about)
  37. Popup *popup_error; // The error popup
  38. VariableItemList *variable_item_list; // The variable item list (settngs)
  39. VariableItem *variable_item_ssid; // The variable item
  40. VariableItem *variable_item_password; // The variable item
  41. UART_TextInput *uart_text_input_ssid; // The text input
  42. UART_TextInput *uart_text_input_password; // The text input
  43. char *uart_text_input_buffer_ssid; // Buffer for the text input
  44. char *uart_text_input_temp_buffer_ssid; // Temporary buffer for the text input
  45. uint32_t uart_text_input_buffer_size_ssid; // Size of the text input buffer
  46. char *uart_text_input_buffer_password; // Buffer for the text input
  47. char *uart_text_input_temp_buffer_password; // Temporary buffer for the text input
  48. uint32_t uart_text_input_buffer_size_password; // Size of the text input buffer
  49. } FlipWeatherApp;
  50. extern char city_data[48];
  51. extern char region_data[48];
  52. extern char country_data[48];
  53. extern char lat_data[32];
  54. extern char lon_data[32];
  55. extern char ip_data[32];
  56. extern char temperature_data[32];
  57. extern char precipitation_data[32];
  58. extern char rain_data[32];
  59. extern char showers_data[32];
  60. extern char snowfall_data[32];
  61. extern char time_data[32];
  62. extern char ip_address[16];
  63. // Function to free the resources used by FlipWeatherApp
  64. void flip_weather_app_free(FlipWeatherApp *app);
  65. #endif