flip_weather.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. FlipWeatherSubmenuIndexWeather, // Click to view the weather
  11. FlipWeatherSubmenuIndexGPS, // Click to view the GPS
  12. FlipWeatherSubmenuIndexAbout, // Click to view the about screen
  13. FlipWeatherSubmenuIndexSettings, // Click to view the settings screen
  14. } FlipWeatherSubmenuIndex;
  15. // Define a single view for our FlipWeather application
  16. typedef enum {
  17. FlipWeatherViewSubmenu, // The main submenu
  18. FlipWeatherViewAbout, // The about screen
  19. FlipWeatherViewSettings, // The wifi settings screen
  20. FlipWeatherViewTextInputSSID, // The text input screen for SSID
  21. FlipWeatherViewTextInputPassword, // The text input screen for password
  22. //
  23. FlipWeatherViewPopupError, // The error popup screen
  24. FlipWeatherViewWidgetResult, // The text box that displays the random fact
  25. FlipWeatherViewLoader, // The loader screen retrieves data from the internet
  26. } FlipWeatherView;
  27. // Each screen will have its own view
  28. typedef struct {
  29. ViewDispatcher* view_dispatcher; // Switches between our views
  30. View* view_loader; // The screen that loads data from internet
  31. Submenu* submenu; // The main submenu
  32. Widget* widget; // The widget (about)
  33. Widget* widget_result; // The widget that displays the result
  34. Popup* popup_error; // The error popup
  35. VariableItemList* variable_item_list; // The variable item list (settngs)
  36. VariableItem* variable_item_ssid; // The variable item
  37. VariableItem* variable_item_password; // The variable item
  38. TextInput* uart_text_input_ssid; // The text input
  39. TextInput* uart_text_input_password; // The text input
  40. char* uart_text_input_buffer_ssid; // Buffer for the text input
  41. char* uart_text_input_temp_buffer_ssid; // Temporary buffer for the text input
  42. uint32_t uart_text_input_buffer_size_ssid; // Size of the text input buffer
  43. char* uart_text_input_buffer_password; // Buffer for the text input
  44. char* uart_text_input_temp_buffer_password; // Temporary buffer for the text input
  45. uint32_t uart_text_input_buffer_size_password; // Size of the text input buffer
  46. } FlipWeatherApp;
  47. extern char lat_data[32];
  48. extern char lon_data[32];
  49. extern char* total_data;
  50. extern char* weather_data;
  51. // Function to free the resources used by FlipWeatherApp
  52. void flip_weather_app_free(FlipWeatherApp* app);
  53. extern FlipWeatherApp* app_instance;
  54. #endif