Opis zadania i szczegółowe wymagania
Należy zmodyfikować klasę MemoryMap, aby każda zmiana wartości zmiennej była odnotowywana przez system streamingu danych. Celem jest przekształcenie MemoryMap z pasywnego kontenera w komponent współpracujący z VariableTable. W tym zadaniu musi zawierać się:
- Powiązanie klasy
MemoryMap z VariableTable poprzez wskaźnik lub referencję.
- Modyfikacja setterów (
setBool, setInt itp.) w taki sposób, aby po aktualizacji wartości w wewnętrznej mapie następowało wywołanie metody powiadomienia w VariableTable (lub bezpośrednio w DeltaTracker).
- Oznaczenie zmiennej jako „brudnej” (dirty), co zasygnalizuje konieczność wysłania jej aktualnego stanu do frontendu.
- Implementacja optymalizacji: powiadomienie o zmianie powinno być generowane tylko w sytuacji, gdy nowa wartość faktycznie różni się od poprzednio przechowywanej.
Dodatkowy kontekst i źrodła pomocnicze
Integracja ta jest kluczowa dla zapewnienia responsywności interfejsu użytkownika w React. Dzięki mechanizmowi "dirty flag", backend nie musi przesyłać całej tablicy zmiennych w każdym cyklu, a jedynie te elementy, które uległy zmianie w wyniku wykonania logiki szczebli (np. przez operacje na cewkach Coil). Należy upewnić się, że porównanie wartości (nowa vs stara) odbywa się przed wywołaniem systemu powiadomień, aby zminimalizować ruch sieciowy i obciążenie procesora.
Definicja wykonania zadania
Opis zadania i szczegółowe wymagania
Należy zmodyfikować klasę
MemoryMap, aby każda zmiana wartości zmiennej była odnotowywana przez system streamingu danych. Celem jest przekształcenieMemoryMapz pasywnego kontenera w komponent współpracujący zVariableTable. W tym zadaniu musi zawierać się:MemoryMapzVariableTablepoprzez wskaźnik lub referencję.setBool,setIntitp.) w taki sposób, aby po aktualizacji wartości w wewnętrznej mapie następowało wywołanie metody powiadomienia wVariableTable(lub bezpośrednio wDeltaTracker).Dodatkowy kontekst i źrodła pomocnicze
Integracja ta jest kluczowa dla zapewnienia responsywności interfejsu użytkownika w React. Dzięki mechanizmowi "dirty flag", backend nie musi przesyłać całej tablicy zmiennych w każdym cyklu, a jedynie te elementy, które uległy zmianie w wyniku wykonania logiki szczebli (np. przez operacje na cewkach
Coil). Należy upewnić się, że porównanie wartości (nowa vs stara) odbywa się przed wywołaniem systemu powiadomień, aby zminimalizować ruch sieciowy i obciążenie procesora.Definicja wykonania zadania