Skip to Content
Tworzenie aplikacji IoTStruktura aplikacji

Struktura aplikacji

Każda aplikacja IronFlock to folder wersjonowany przez Git zawierający kod twojej aplikacji i opcjonalny katalog konfiguracyjny .ironflock.

Układ katalogu

moja-aplikacja/ ├── Dockerfile # Wymagane: definiuje obraz kontenera ├── docker-compose.yml # Opcjonalne: konfiguracja wielu kontenerów ├── main.py # Kod twojej aplikacji (dowolny język) ├── requirements.txt # Zależności └── .ironflock/ ├── board-template.yml # Układ panelu ├── data-template.yml # Schemat bazy danych dla telemetrii ├── env-template.yml # Parametry konfigurowalne przez użytkownika ├── port-template.yml # Definicje portów dostępu zdalnego └── ai-template.yml # Definicje agentów AI

Sześć części aplikacji

1. Kod brzegowy

Podstawowa logika aplikacji. Ten kod działa w kontenerze Docker na urządzeniu i obsługuje komunikację z czujnikami, PLC, kamerami lub dowolnym podłączonym sprzętem.

Kod brzegowy można pisać w dowolnym języku programowania — Python, JavaScript, Go, Rust, C++ lub cokolwiek innego, co działa w kontenerze Docker.

2. Panel (interfejs użytkownika)

Pulpit nawigacyjny w czasie rzeczywistym zbudowany w edytorze paneli bez kodu. Panele wyświetlają dane ze wszystkich urządzeń uruchamiających aplikację w projekcie i aktualizują się automatycznie przez system komunikatów.

Konfiguracja panelu jest przechowywana w board-template.yml i jest automatycznie generowana przez edytor.

3. Przechowywanie danych

Każdy projekt ma własną fizyczną bazę danych (obsługiwaną przez TimescaleDB). Gdy aplikacja definiuje tabele w data-template.yml, te tabele są automatycznie tworzone gdy użytkownik instaluje aplikację. Dane są prywatne per projekt — deweloperzy nie mają dostępu do danych użytkowników.

4. Obszar komunikatów

Po zainstalowaniu aplikacja otrzymuje prywatny obszar komunikatów łączący:

  • Wszystkie instancje aplikacji na urządzeniach brzegowych
  • Bazę danych projektu
  • Interfejs użytkownika panelu

Komunikacja używa WAMP (Web Application Messaging Protocol) przez SDK IronFlock (ironflock-py dla Python, ironflock-js dla JavaScript).

5. Dostęp zdalny

Zdefiniuj porty i protokoły w port-template.yml, aby umożliwić bezpieczne tunelowanie do usług urządzenia. Użytkownicy mogą wtedy włączać/wyłączać te tunele per urządzenie. Zobacz Dostęp zdalny.

6. Agenty AI

Udostępniaj specyficzne dla domeny agenty AI przez ai-template.yml, które rozszerzają asystenta AI IronFlock. Zobacz Funkcje AI.

Trwałe przechowywanie na urządzeniach

Domyślnie dane wewnątrz kontenera są tracone przy restarcie. Dwa katalogi zachowują się między restartami:

ŚcieżkaZakres
/dataPrywatny dla tej aplikacji — inne aplikacje nie mogą uzyskać do niego dostępu
/sharedWspółdzielony między wszystkimi aplikacjami na urządzeniu

Jeśli używasz Docker Compose, skonfiguruj trwałe wolumeny w swoim docker-compose.yml.

Dostęp do sprzętu

Jeśli twoja aplikacja wchodzi w interakcję z lokalnym sprzętem (czujniki, kamery, urządzenia szeregowe), te urządzenia są montowane w /dev wewnątrz kontenera.

Last updated on