Interaktywny podgląd VI

Forum poświęcone projektowi opracowania interfejsu do tworzenia podglądu plików VI
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Interaktywny podgląd VI

Post autor: vugie »

Od dłuższego czasu noszę się z pewnym pomysłem. Niniejszy post jest pierwszą próbą pisemnego usystematyzowania sobie tego, więc z góry przepraszam jeżeli wkradnie się tu jakiś chaos.
Opis problemu Jest sobie forum LabVIEW (BTW szczere wyrazy uznania dla administratorów). Na forum użytkownicy opisują swoje problemy ilustrując je bądź screenami swoich programów, bądź pełnymi VI-ami. Jakie te programy bywają - wszyscy wiemy. Te dwa sposoby prezentacji mają swoje wady. Screeny bywają duże i rozwalają wyświetlanie wątku. Często zawierają bloczki, których akurat po ikonce nie rozpoznajemy. Jeżeli program zawiera stacked sequence albo case structure (nie daj Bóg zagnieżdżone), to części kodu w ogóle nie widać. Z kolei dołączony VI trzeba ściągnąć, uruchomić LV, przebrnąć warningi wynikające z brakujących bibliotek, nie mówiąc już o niezgodności wersji LV. Jak sobie człowiek to wszystko przypomni widząc VI dołączony do mętnie sformułowanego pytania, to przestaje mu się chcieć pomagać, choć nierzadko jest to tylko kwestia zerknięcia na diagram. A jak już wygeneruje jakąś odpowiedź w postaci diagramu to znów staje przed dylematem - robić screena czy zamieszczać VI. Najprościej screena, ale jak są jakieś case'y, to trzeba się trochę przy tym napracować. Z kolei po zamieszczeniu VI skorzysta tylko autor pytania i to jak będzie miał odpowiednią wersję LV. Każdy tylko średnio zainteresowany problemem nie zapozna się z jego rozwiązaniem. W efekcie tego ogólna wiedza użytkowników nie przyrasta tak szybko jak by mogła.
Rozwiązanie Rozwiązaniem mogłaby być aplikacja generująca interaktywne podglądy VI-ów. Podstawowe funkcje takiego interaktywnego podglądu to: - daje się w prosty sposów zamieścić w treści postu, nie psując wyświetlania wątku - okienko ze scrollbarami - przełączanie pomiędzy widokiem panelu i diagramu - możliwość oglądania wszystkich zagnieżdżonych i przełączalnych struktur - najechanie kursorem na element powoduje pojawienie się w dymku jego Label i Description - możliwość ściągnięcia pełnego VI
Nasuwają mi się dwa możliwe rozwiązanie techniczne - Flash - DHTML Za Flashem przemawia
większa kompaktowość (1 plik), łatwość umieszczania w poście i możliwość dodatkowej funkcji - skalowanie. Za DHTML-em - łatwość generowania. Oraz dwa możliwe miejsca działania - Client side - rozwiązanie najprostsze - użytkownik ściąga sobie program, generuje podgląd VI-a i umieszcza go w poście. Wada - trzeba go tego nauczyć - Server side - serwer za pomocą CGI sam generuje podgląd na podstawie VI zamieszczonego przez użytkownika. Wada - na serwer musi mieć CGI, musi stać na nim LV z pełnym dostępem do bibliotek (inaczej np. nie odczyta ikon).
Ja skłaniam się raczej do kombinacji Flash/Client side.
Implementacja Bez Scriptingu (niech będzie przeklęty na wieki) ani rusz. Porobiłem już pierwsze próby i przy pomocy LV8.2 i różnych narzędzi spod ciemnej gwiazdy wygrzebanych w mrocznych zakamarkach LAVY jestem w stanie mniej lub bardziej sprawnie dobrać się do diagramu i rozebrać go na części.
Można w zasadzie wykorzystać też drukowanie diagramu do HTMLa i generowane przy tej okazji obrazki, ale jakoś to mniej eleganckie i mniej mroczne. Przyjrzałem się też kilku narzędziom do dynamicznego generowania Flashek. Szczególnie obiecujące wydaje się SSWF - generuje swf-y na podstawie skryptów z pliku tekstowego.
Zasada działania generatora podglądów byłaby taka: Analiza Front Panelu i generowanie obrazków (liczba mnoga, bo zakładki) -> analiza diagramu i generowanie obrazków -> tworzenie skryptu na podstawie przygotowanego wcześniej szablonu i drzewa diagramu -> generacja Flashki. Proste jak drut, niestety kupa roboty
Proponuję więc stworzenie zespołu, który zająłby się takim projektem jako wkładem dla polskiej społeczności LV i nie tylko - te same problemy muszą przecież występować na wszystkich innych forach dotyczących LV. Oczywiście na jakiejś opensourcowej licencji. Potrzebni będą w szczególności - ktoś znający się na zarządzaniu projektem informatycznym, żeby można to było sensownie zaplanować i ogarnąć - ktoś znający się na Flashu, jakby miał praktykę w dynamicznej generacji, to byłaby poezja - ktoś mający pojęcie o Scriptingu, szczególnie jeżeli miałby dostęp do LV7 - każdy inny kto będzie miał czas, chęć i umiejętności by w sensowny sposób do projektu się przyłożyć.
Dużym problemem może tu być czas i dostęp do narzędzi, ponieważ LV nie należy do programów, które miewa się w domu. Ja osobiście spróbuję poprosić swojego pracodawcę by pozwolił mi wygospodarować trochę czasu na ten projekt w zamian za umieszczenie w programie logo firmy i kilku informacji - jako rodzaj promocji, mam nadzieję że ogólnoświatowej. Myślę, że MGI to sobie w taki sposób niezłą reklamę zrobiło.
Rozwój W dalszej perspektywie widzę przekształcenie takiego narzędzia w coś w rodzaju programu do automatycznej dokumentacji kodu. O ile wiem to jeszcze nic takiego nie ma, a drukowanie do HTML-a jest dosyć ubogie. Co prawda wpadło mi gdzieś w oko, że podobno w OpenG gdzieniegdzie używano czegoś w tym rodzaju, ale jest to w baaardzo wczesnej fazie rozwoju.
To z grusza tyla. Pomożecie?
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: wino »

spoko pomysł, ja z chęcią sie przyłącze. ale musimy sie dogadać jakoś czasowo :D
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: jogurt_owocowy »

Też mi się taki pomysł-wyzwanie podoba, ale dużo tu wątpliwości. Co jak ktoś zrobi diagram 10000*10000 pikseli? Co z subviajami czy klockami których konfiguracji nie widać "z wierzchu". No, ale ciekawe to to, ciekawe... Mógłbym się przyczynić do części scriptingowej (musi być mrocznie).

W końcu do odważnych świat należy :)
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: wino »

jogurt jak sie kiedyś spotkamy to każdy pewnie wrzuci swoje wątpliwości...
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: jogurt_owocowy »

Racja. Zapomniałem, że forum przecież nie jest od tego.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Interaktywny podgląd VI

Post autor: Mikrobi »

Istnieje mechanizm webowy (wiem brzydkie slowo) pozwalający na sprawdzenie on-line nowych wersji LabVIEW:
Kto wie (własnie....) o możliwości użytkowania, wymaganiach i ograniczeniach...?

Co do "mrocznych" pomysłów: myślę, że taki sposób na wykorzystanie Ciemnej Strony LabVIEW 8) uzyskał by dyspensę NI ;)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Interaktywny podgląd VI

Post autor: vugie »

Co jak ktoś zrobi diagram 10000*10000 pikseli?
To pies z niem tańcował. I tak by mu nikt nie pomógł
Co z subviajami czy klockami których konfiguracji nie widać "z wierzchu"
Można to sobie darować. Wiele tego typu rzeczy można wywnioskować z kontekstu, np. z grubosci przewodów.
Zapomniałem, że forum przecież nie jest od tego.
To od czego jest?
Istnieje mechanizm webowy (wiem brzydkie slowo) pozwalający na sprawdzenie on-line nowych wersji LabVIEW
Faktycznie, natknąłem się na to kiedyś. Java o ile pamiętam. Myślę, że jest to coś w rodzaju terminala VNC
Walczę teraz, żeby zrobić jakąś flashową demonstrację, przy użyciu swftools. Dzięki za deklaracje pomocy. Myślę, że powinniśmy to dokładniej obgadać w przyszłym tygodniu.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: jogurt_owocowy »

Zapomniałem, że forum przecież nie jest od tego.
To od czego jest?
Ja nie wiem. Wino wie :P
A co do tych wątpliwości to wiadomo, że wszystkiego się tam nie da upchać, ale z drugiej strony jakąś idiotoodporność musi to posiadać. W sumie subviaje można ostatecznie obsłużyć tak samo jak "topa" albo nie robić tego wcale (opcja), a niewidoczne opcje klocków może uda się jakoś wyciągnąć na wierzch. Obaczym.
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Interaktywny podgląd VI

Post autor: vugie »

Takie coś wysmażyłem:

KLIK

Na razie użyłem drukowania do HTML-u i ręcznie napisałem skrypt w swftools
Naciska się normalnie na strzałeczki. Case'y na razie się nia zawijają.

A TU skrypt, który to generuje.

Czemu nie działa zamieszcznie flashek na forum?
[flash]http://vugie.republika.pl/mult.swf[/flash]
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Interaktywny podgląd VI

Post autor: jogurt_owocowy »

Dobre! Podoba mi się to. Jeśli chodzi o automatyczne wygenerowanie takiego skryptu to nie powinno być problemu (dużo nas, mamy duże motyki, a Słońce tylko jedno ;) ). Nie znam się na Flashu, ale z tego co tu pokazałeś nie wygląda to źle.

W wersji 1.0 można by się ograniczyć do:
- przewijania struktur (także scrollem myszy - jak w edytorze)
- wyświetlania labelek klocków przy zawieszeniu nad nimi kursora

W kolejnych dołożyć Front Panel i możliwość wchodzenia do subviajów, a w następnych... strach pomyśleć :D
Jordan
Posty: 6
Rejestracja: 18 wrz 2007 00:00
Lokalizacja: Radom

Re: Interaktywny podgląd VI

Post autor: Jordan »

Witam,
jestem na tym forum od ok. 2-ch tygodni, ponieważ od miesiąca dopiero pracuję w miejscu, gdzie potrzebne mi jest labview bardzo. Ten interaktywny podgląd to jest pierwsza rzecz o której pomyślałem, że byłaby przydatna. vugie, bardzo fajne jest to co pokazałeś - tak trzymać.
Pomysł
z wyświetlaniem labelek jak bardzo fajny, chociaż chętniej bym widział coś w rodzaju <Ctrl+H>. To pewnie dlatego, że jeszcze nie przegryzłem LV na wylot - ale to kwestia czasu. Nie wiem czy mogę być w jakikolwiek sposób pomocny, ponieważ raczej się znam na Matlabie i C/C++ a nie na flashu, ale chętnie się przyłączę do projektu.

Pozdrawiam
Jordan
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Interaktywny podgląd VI

Post autor: Mikrobi »

Jestem pod wrażeniem. Dobrze bylo by to jednak sprawdzić dla 'wiekszych' diagramow nawet takich z którymi tańcują zwierzeta ;)
Co do pomocy kontekstowej <Ctrl+H>:
National Instruments udostępnia pomoc on-line do funkcji LabVIEW: na przykład dla Call By Reference Node LAVA ma mechanizm wyświetlania stron snap shots
Czy mozna to połączyć?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Interaktywny podgląd VI

Post autor: vugie »

Prace się posuwają, ostatnie efekty mozna obejrzeć tutaj.

Od poprzedniego przykładu różni się tym, że został wygenerowany automatycznie. Jak widać jest jescze sporo niedostatków...

Bogdani, da się zrobić, żeby to działało:
[flash width=754 height=337]http://vugie.republika.pl/mult2.swf[/flash]
(wygenerowane przy użyciu guziczka do wstawiania flasha w oknie edycji postu)
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Interaktywny podgląd VI

Post autor: bogdani »

vugie jak zmniejszysz rozmiary to się flashka pokazuje (600 x 337)
[flash width=600 height=337]http://vugie.republika.pl/mult2.swf[/flash]
PS. Próbuje znaleźć przyczynę lub ograniczenie
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Interaktywny podgląd VI

Post autor: bogdani »

W związku z nowym modułem do projektów dobrze byłoby określić zadania (związane z funkcjonalnością) które należy wykonać w tym projekcie.

Wtedy pozakładam takie zadania i będzie sprawa się rozwijać w określonym kierunku i będzie można śledzić postępy.

bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
ODPOWIEDZ