Skip to content

[Task] Integracja MemoryMap z VariableTable (System powiadomień) #30

Description

@PEXEL2002

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

  • MemoryMap poprawnie przechowuje referencję do VariableTable.
  • Każda zmiana stanu zmiennej (np. wykonana przez element Coil) automatycznie flaguje ją do wysyłki.
  • Zaimplementowano warunek sprawdzający różnicę wartości przed wysłaniem powiadomienia.
  • System nie generuje nadmiarowych powiadomień, jeśli wartość przypisywana jest identyczna z obecną.

Metadata

Metadata

Assignees

Labels

Type

Fields

No fields configured for Task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions