Cast Clustera - przechowywanie konfiguracji przy zmianie str
: 15 sty 2016 00:39
Witam serdecznie,
Od razu przedstawię problem z jakim się borykam.
Otóż mamy dosyć sporą aplikację, komunikującą się ze sprzętem.
Konfiguracja sprzętu przechowywana jest jako Cluster, w którym znajdują się inne clustery, w nich konkretne pola (wartości liczbowe, enumy, tekst, uchwyty do sprzętu i inne). Konfiguracja taka (aby za każdym razem nie ustawiać wszystkich parametrów przy prowadzeniu serii pomiarów) musi być zapisywana do pliku.
Obecnie realizowane jest to na zasadzie takiej, że cluster jest zapisywany w postaci "binarnej" za pomocą funkcji Write Datalog i read Datalog.
Rozwiązanie ma to jednak pewną wadę - otóż aplikacja nasza zmienia się dosyć często - jakiś sprzęt jest dodawany, jakiś modyfikowany, jakiś permanentnie usuwany - pociąga to za sobą odpowiednie modyfikacje clustera z konfiguracją. No i niestety po takiej modyfikacji stary plik konfiguracyjny nie nadaje się do niczego...
I tu właśnie moje pytanie - jak w LabVIEW osiągnąć efekt taki, że:
Po wczytaniu danych konfiguracyjnych w jakimś formacie, jeśli dane pole istnieje w clusterze w programie to ma być ustawione na daną wartość, jeśli pole z pliku nie istnieje w clusterze to jest pomijane, jeśli w clusterze istnieje pole nie zawarte w pliku to ma zostać uzupełnione wartością domyślną.
Myślałem, że nada się do tego zapis w formacie json/XML (flatten to JSON/XML string), ale niestety bloczki w wersji 2015 nie obsługują ostatniego punktu - jeśli w clusterze jest pole nie opisane w pliku to funkcja nie zmienia wartości żadnych pól.
Czy macie pomysł jak osiągnąć taki efekt? Wiem, ze zawsze zostaje ręczne kodowanie i dekodowanie danych, ale wtedy dodając jakieś pole konfiguracyjne musimy prowadzić też modyfikacje systemu zapisu/odczytu konfiguracji. Tymczasem pożądaną rzeczą jest to, aby działało to względem rozszerzania programu jak najbardziej automatycznie.
Z góry dziękuję za wszelkie pomysły.
Od razu przedstawię problem z jakim się borykam.
Otóż mamy dosyć sporą aplikację, komunikującą się ze sprzętem.
Konfiguracja sprzętu przechowywana jest jako Cluster, w którym znajdują się inne clustery, w nich konkretne pola (wartości liczbowe, enumy, tekst, uchwyty do sprzętu i inne). Konfiguracja taka (aby za każdym razem nie ustawiać wszystkich parametrów przy prowadzeniu serii pomiarów) musi być zapisywana do pliku.
Obecnie realizowane jest to na zasadzie takiej, że cluster jest zapisywany w postaci "binarnej" za pomocą funkcji Write Datalog i read Datalog.
Rozwiązanie ma to jednak pewną wadę - otóż aplikacja nasza zmienia się dosyć często - jakiś sprzęt jest dodawany, jakiś modyfikowany, jakiś permanentnie usuwany - pociąga to za sobą odpowiednie modyfikacje clustera z konfiguracją. No i niestety po takiej modyfikacji stary plik konfiguracyjny nie nadaje się do niczego...
I tu właśnie moje pytanie - jak w LabVIEW osiągnąć efekt taki, że:
Po wczytaniu danych konfiguracyjnych w jakimś formacie, jeśli dane pole istnieje w clusterze w programie to ma być ustawione na daną wartość, jeśli pole z pliku nie istnieje w clusterze to jest pomijane, jeśli w clusterze istnieje pole nie zawarte w pliku to ma zostać uzupełnione wartością domyślną.
Myślałem, że nada się do tego zapis w formacie json/XML (flatten to JSON/XML string), ale niestety bloczki w wersji 2015 nie obsługują ostatniego punktu - jeśli w clusterze jest pole nie opisane w pliku to funkcja nie zmienia wartości żadnych pól.
Czy macie pomysł jak osiągnąć taki efekt? Wiem, ze zawsze zostaje ręczne kodowanie i dekodowanie danych, ale wtedy dodając jakieś pole konfiguracyjne musimy prowadzić też modyfikacje systemu zapisu/odczytu konfiguracji. Tymczasem pożądaną rzeczą jest to, aby działało to względem rozszerzania programu jak najbardziej automatycznie.
Z góry dziękuję za wszelkie pomysły.