Advertisement
nene1234

ip address

Jul 3rd, 2025
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. #include "ipapp.h"
  2. #include "servicemanager.h"
  3. #include "services/network.h"
  4.  
  5. IPApp::IPApp() : App("IP Address") {
  6. }
  7.  
  8. void IPApp::run() {
  9.     while (true) {
  10.         NetworkService* networkService = static_cast<NetworkService*>(ServiceManager::getInstance()->getService<NetworkService>("network"));
  11.         String ipAddress = networkService ? networkService->getIpAddr().c_str() : "";
  12.  
  13.         // Читаємо стан кнопок
  14.         lilka::State state = lilka::controller.getState();
  15.        
  16.         // Якщо натиснуто кнопку A або B - виходимо з програми
  17.         if (state.a.pressed || state.b.pressed) {
  18.             return;
  19.         }
  20.        
  21.         if (!canvas) return;
  22.  
  23.         // Заповнюємо екран чорним кольором
  24.         canvas->fillScreen(canvas->color565(0, 0, 0));
  25.        
  26.         // Виводимо заголовок
  27.         canvas->setTextColor(canvas->color565(255, 255, 255));
  28.         canvas->setTextSize(1);
  29.         canvas->setCursor(10, 30);
  30.         canvas->print("IP Адреса:");
  31.        
  32.         // Виводимо IP адресу
  33.         canvas->setTextSize(1);
  34.         canvas->setCursor(10, 80);
  35.         if (ipAddress.length() > 0 && ipAddress != "0.0.0.0") {
  36.             canvas->setTextColor(canvas->color565(0, 255, 0)); // Зелений колір
  37.             canvas->print(ipAddress);
  38.         } else {
  39.             canvas->setTextColor(canvas->color565(255, 0, 0)); // Червоний колір
  40.             canvas->print("Не підключено");
  41.         }
  42.        
  43.         // Виводимо інструкцію для виходу
  44.         canvas->setTextSize(1);
  45.         canvas->setTextColor(canvas->color565(128, 128, 128));
  46.         canvas->setCursor(10, canvas->height() - 20);
  47.         canvas->print("Натисніть A або B для виходу");
  48.        
  49.         // Повідомляємо Keira про оновлення буфера
  50.         queueDraw();
  51.  
  52.         // Невелика затримка для зменшення навантаження
  53.         vTaskDelay(LILKA_UI_UPDATE_DELAY_MS / portTICK_PERIOD_MS);
  54.     }
  55. }
  56.  
  57.  
  58.  
  59.  
  60.  
  61. #ifndef IPAPP_H
  62. #define IPAPP_H
  63.  
  64. #include <lilka.h>
  65. #include "app.h"
  66. #include "services/network.h"
  67.  
  68. class IPApp : public App {
  69. public:
  70.     IPApp();
  71. private:
  72.     void run() override;
  73. };
  74.  
  75. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement