Egzamin CLD przykładowe zadania

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
pawhan11
Posty: 67
Rejestracja: 21 wrz 2011 16:25
Wersja środowiska: LabVIEW 2012

Egzamin CLD przykładowe zadania

Post autor: pawhan11 »

Witam,
Na studiach mam możliwość zdania CLD z 75% zniżką :).
Zrobiłem przykładowe zadania i wydaje się że działają, niestety 4 godz to jak na moje możliwości za mało żeby dodać jakąś sensowną dokumentację.
Założyłem sobie że jeżeli zadanie nie będzie zawierało żadnych timerów to zrobię maszynę stanów, w przeciwnym razie kolejki.
Proszę o opinię nt kodów najlepiej kogoś kto już kiedyś pisał ten egzamin - czy te zadania sa ok, jakieś wskazówki dot egzaminu również mile widziane :)
Załączniki
cld.zip
(861.1 KiB) Pobrany 441 razy
CLS - Certified LabVIEW Student
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

Egzamin CLD przykładowe zadania

Post autor: milten »

Odnośnie CLD, to źle do niego podchodzisz według mnie. Rozkład punktów preferuje w znacznym stopniu jakość kodu i dokumentację a niżeli funkcjonalność. Jeżeli twój styl tworzenia kodu jest zgodny z zaleceniami NI (nie zawijające się kable, dokumentacja VI-i i zrobienie ikon), to masz już powiedzmy, że 20 punktów. Do wymaganych 28 punktów brakuje Ci jedynie 8, co jest połową punktów za funkcjonalność.

Dokumentacji:
Głównie chodzi o opis samego VI-a, który nie musi być nawet po angielsku. Wystarczy, że napiszesz, że dany VI wczytuje plik i już masz zaliczoną dokumentację dla tego VI-a. Co do ikonek w VI-ach, to najprostsze obramowanie i tekst File Load się sprawdzi bez problemu, albo cokolwiek innego. Chodzi o to, że nie możesz mieć wszystkich ikonek takich samych, ani nie może być standardowa ikonka.

Styl:
Głównie chodzi o to, żeby był jakiś wzorzec projektowy widziany na pierwszy rzut oka. Masz LV 2012, to zobacz sobie jak powinna wyglądać maszyna stanów zgodna z zaleceniami NI (w oknie startowym klikasz Create Project i wybierasz Simple State Maschine. Na samym egzaminie możesz bez problemu zrobić w ten sposób maszynę stanów, choć szybciej według mnie jest zrobić ją przy pomocy Quick Dropa (Ctrl+Spacja) i skrótów do niego (https://decibel.ni.com/content/docs/DOC-8344). Z tym zrobienie podstawy takiej maszyny stanów jak przykładowa to na oko 1 minuta jak się zna je dobrze (choć znam takich, co to w 20 sekund zrobią).
Dobrą rzeczą jest także tworzenie projektu, ponieważ przyśpiesza on samo tworzenie i mamy podgląd na mierząco co już mamy zaimplementowane (jeżeli robisz VI-e do funkcjonalności).
O niepołamanych kablach, zakrywających VI-ach i obsłudze błędów chyba nie muszę pisać.

Funkcjonalność:
Najogólniej każdy punkcik, podpunkcik itd. w instrukcji, to jest funkcjonalność i zwykłe uruchomienie i zamykanie aplikacji, to już daje Ci coś do puli. Oczywiście podstawą jest, żeby aplikacja się uruchomiła, bo jeeli tego nie będziesz miał, to już lecisz prawie z wszystkimi funkcjonalnościami, a przynajmniej z większością.

Odnośnie kodu, który stworzyłeś, to na pierwszy rzut oka wygląda ok, choć za mało dokumentacji. Nie używaj Use default if unwired, ponieważ przy każdym takim połączeniu musisz dodać komentarz dlaczego tak. Lepiej zrób przy każdym takim stałą i bedzie ok. Kod też jest za duży, co biorą też pod uwagę przy ocenianiu. Jak będziesz stosował maszynę stanów, to spokojnie się zmieścisz.

A teraz najlepsze: każde zadanie z CLD da się zrobić na maszynie stanów i każde zadanie z CLD ma jakieś timery (chyba, że coś innego wymyślili). Producent/konsument jest za duży na te aplikacje i dlatego się nie wyrabiasz. Pewnie zastanawiasz się jak zrobić. Otóż masz bardzo dobry pomysł z timerem FGV. Należy go użyć w innym miejscu. Maszyna stanów powinna mieć stan WaitForEvents w którym masz Event Structure służący do zbierania eventów od guzików itd. Event Structure ma też wejście timeout, które jest w tym przypadku bardzo pomocne.
Załóżmy, że masz aplikację myjni i samochód ma cię myć powiedzmy 5 sekund. Po ustawieniu wszystkiego ustawiasz timer FGV na 5 sekund i przechodzisz do stanu WaitForEvents. Timeout oczywiście ustawiany na 5000 ms. jeżeli użytkownik w czasie tych 5 sekund coś zrobi, to obsługujesz zdarzenie i mówisz timerowi, żeby zwrócił czas jaki pozostało do końca tych 5 sekund. Wiem, że może trochę zagmatwane w opisie, ale może dasz sobie radę. Jeżeli nie wiesz o co chodzi, to mogę dodać przykład.

Jeżeli ktoś ma jakieś ale, albo gdzieś coś źle napisałem, to informować, bo nie wszystko może być jasne, albo coś źle ja zrozumiałem.
Obrazek
pawhan11
Posty: 67
Rejestracja: 21 wrz 2011 16:25
Wersja środowiska: LabVIEW 2012

Egzamin CLD przykładowe zadania

Post autor: pawhan11 »

Dzieki,
zakładałem że program musi działać poprawnie żeby go oceniono ...
Czyli teoretycznie da się zdać ten egz mając tylko kilka pkt funkcjonalności to że program się uruchomi :D :D ?
Niestety okazało się że egz będzie można napisać dopiero w nast roku akademickim.

ps. dodałbym pochwale ale nie mam uprawnień
Ostatnio zmieniony 15 lip 2013 18:31 przez pawhan11, łącznie zmieniany 1 raz.
CLS - Certified LabVIEW Student
Awatar użytkownika
Quark-t
Posty: 9
Rejestracja: 29 sie 2011 18:47
Wersja środowiska: LabVIEW 2012
Lokalizacja: Będzin

Egzamin CLD przykładowe zadania

Post autor: Quark-t »

Ponieważ mam egzamin CLD "na świeżo" dorzucę swoje 3 grosze.

Warto przerobić "CLD Success Package" - 17 zadań sprawdzających różną tematykę - timery, pliki, FGV itd. Do tego w Preparation Guide jest opisane ładnie co jest sprawdzane i jaka funkcjonalność jest wymagana. No i najważniejsze chyba - w tym dokumencie na końcu masz przykładowe tematy zadań. Warto się nad nimi chwilę zastanowić.

Ja zdecydowałem się na użycie struktury producent-konsument z obsługą eventów w producencie a konsument jako kolejkowana maszyna stanów. Załatwia to praktycznie większą część problemów z obsługą GUI, a stworzenie jej poprzez wyciągnięcie z przykładów trwa bardzo krótko. Przy czym zgadzam się ze stwierdzeniem padającym praktycznie w każdym helpie do CLD, że użyj takiej struktury (ze stanami, bo bez tego ani rusz) w jakiej czujesz się najmocniejszy i nie kombinuj w czasie egzaminu.

Co do samego terminu CLD - był teraz 8.07, w sierpniu ma nie być ze względu na małe zainteresowanie (urlopy) a kolejny termin przewidywany jest na wrzesień. Taką informację uzyskałem w czasie Dnia Programistów w Katowicach od pana Dariusza Jaworowskiego. Więc jeszcze masz szansę w tym roku akademickim.
Pozdrawiam, Quark-t Obrazek
ODPOWIEDZ