Hapcan Programmer 2 - dev

Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Hapcan Programmer 2 - dev

Post by Bartek »

Witajcie,

Jak już wspomniałem w którymś wątku, na potrzeby programowania modułów opartych na Arduino zaszła potrzeba stworzenia programatora umożliwiającego obsługę customowych urządzeń. Źródła obecnego Hapcan Progammera nie są dostępne, a nawet jeśli by były to zapewne dorobienie czegokolwiek będzie trudne.

Dlatego postanowiłem rozpocząć projekt nowego programmera, który być może stopniowo byłby w stanie zastąpić obecne rozwiązanie.

Kilka mądrze brzmiących skrótów opisujących projekt:

- Język C#, środowisko Visual Studio 2015 Community (darmowe)
- klasyczny WPF (Windows Presentation Foundation) z wykorzystaniem wzorca MVVM (Model-View-ViewModel)
- XAML jako język tworzenia interfejsu programu
- biblioteka Caliburn.Micro ułatwiająca implementację wzorca MVVM
- MEF (Managed Extensibility Framework), dla ułatwienia implementacji aplikacji jak i pluginów

Brzmi groźnie jeśli ktoś nie jest zorientowany, ale w sumie jest dosyć proste i łatwiejsze niż rzeźbienie tego wszystkiego ręcznie. Zaznaczę od razu, że mistrzem świata w C# też nie jestem, głównie piszę w C++ na co dzień, a naukę powyższych frameworków rozpocząłem 5 dni temu i w miarę bezproblemowo się w nich poruszam, w razie czego posiłkując się googlami ;).

Po co ten wątek?

Otóż chciałem zapytać, czy jest ktoś chętny z tutaj obecnych aby pomóc w implementacji i rozwijaniu nowego programatora - aby projekt mógł się rozwijać nieco szybciej ;). Wymagana oczywiście znajomość podstawowa C# i chęci :). Jeśli ktoś "potrafi MVVM" czy umie tworzyć UI za pomocą XAMLa to dobrze, jeśli nie to są inne zagadnienia do zrealizowania, które nie są stricte związane z interfejsem programu i w zasadzie o MVVM nie trzeba prawie nic wiedzieć.
Podobnie z MEF - służy on do obsługi pluginów w które będzie wyposażony programator i jego znajomość w zasadzie ogranicza się do napisania jednej dodatkowej linijki kodu w pluginie - reszta dzieje się magicznie sama.
Poza tym, dobra chwila aby nauczyć się C#/WPFa czy MVVM używanych praktycznie w każdym nowym programie pisanym na platformie .NET., tworząc program, który ma jakieś faktyczne zastosowanie aniżeli kolejny kalkulator z tutoriala ;).

Dodatkowo fajnie by było przegadać z kimś rozwiązanie takie czy inne i wybrać lepsze niż samemu główkować ;). Nie trzeba też być od razu pełnoetatowym programistą, można pomóc od czasu do czasu, ale z praktyki wiem, że łatwiej się robi poprawki jeśli się ma jako takie pojęcie o architekturze programu - więc takie opowieści można by snuć np. w tym wątku.

Kod za jakiś niedługi zapewne czas pojawi się na githubie, póki co jeszcze prototypuję i sprawdzam co i jak ma szansę zadziałać.
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Hapcan Programmer 2 - dev

Post by Marcin »

PelzaK wrote: ... jeśli nie to są inne zagadnienia do zrealizowania, które nie są stricte związane z interfejsem programu i w zasadzie o MVVM nie trzeba prawie nic wiedzieć.
Ja wchodzę. oczywiście nie pomogę w programowaniu ale w innych zagadnieniach owszem.
Pozdrawiam,
Marcin.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Hapcan Programmer 2 - dev

Post by Bartek »

Zatem jeśli Ty lub ktoś inny ma jakieś sugestie co do poprawy/ulepszenia, być może zupełnie innego podejścia do istniejących w obecnym programatorze funkcji to wpisujcie je tutaj - przynajmniej do czasu aż nie będzie githuba.

Sugestie i pomysły co do wizualnej strony również mile widziane. Jako, że mam ostatnio fazę na ciemne "dezajny" ;) to póki co powstaje wersja Dark UI

Obecnie opracowuję monitor magistrali, potrafi wyświetlać i interpretować już niektóre ramki. Każdy moduł Hapcana to niezależny plugin, który po podłączeniu do programatora potrafi interpretować swoje ramki. Zatem jeśli ktoś stworzy swoje własne urządzenie z własnymi ramkami to będzie mógł dla niego po prostu dopisać plugin (nie jest to skomplikowane - przynajmniej na razie) i dorzucić go do programera a ten już sobie poradzi z rozpoznawaniem ramek w monitorze.

Docelowo chcę, aby każdy plugin zawierał również komendy ułatwiające sterowanie bezpośrednie modułem, formatki ze sterowaniem do danego modułu, funkcje programowania boxów itp.
pawel
Posts: 45
Joined: 04 Sep 2013, 08:13

Re: Hapcan Programmer 2 - dev

Post by pawel »

Nie wiem w czym będę mógł pomóc, ale na bieżąco będę śledził.
Pozdrawiam
Pawel
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Hapcan Programmer 2 - dev

Post by Jacek »

Brzmi rzeczywiście groźnie, ale pomysł mi się podoba. Pomogę w ramach umiejętności i wolnego czasu.
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Hapcan Programmer 2 - dev

Post by Bartek »

Wrzuciłem kod na githuba: https://github.com/Onixarts/HapcanProgrammer

Do skompilowania kodu potrzeba naturalnie Visual Studio 2015 Community.

W chwili obecnej:
- program nie wygląda ;)
- w zasadzie nic nie robi

Do tej pory (prócz ogarniania frameworków) zrobiłem monitor magistrali - zna tylko te wiadomości, które są oprogramowane (obecnie kilkanaście z bootloadera, relaya, butona, ir).

Działa również wyszukiwanie urządzeń na magistrali.

Gdyby ktoś był na tyle szalony aby uruchamiać to w tej chwili ;), to w klasie Onixarts.Hapcan.Communication.EthernetConnector trzeba wpisać IP i port modułu Ethernet, u mnie jest to 192.168.0.100:1001 - jeszcze nie ma zapamiętywania ustawień itp.

Jakby wystąpiły jakieś inne problemy przy uruchamianiu to dajcie znać. Póki co binariów gotowych do uruchomienia nie dystrybuuję, bo program jeszcze daleki od działania.
pawel
Posts: 45
Joined: 04 Sep 2013, 08:13

Re: Hapcan Programmer 2 - dev

Post by pawel »

Postaram się sprawdzić ale nie obiecuję.
Pozdrawiam
Pawel
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Hapcan Programmer 2 - dev

Post by kompio »

Biorąc pod uwagę że do końca nie wiem co się dzieje :)), mam coś takiego :
hp1.jpg
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Hapcan Programmer 2 - dev

Post by Bartek »

Spróbuj w podfolderze HapcanProgrammer/bin/debug utworzyć ręcznie folder "Plugins". Poprawka wrzucona na gita.

Potem dajesz Rebuild na całej solucji.

Jak się uda uruchomić to jedyny działający obecnie przycisk "SC" skanuje magistralę w poszukiwaniu podłączonych urządzeń.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Hapcan Programmer 2 - dev

Post by kompio »

WOW
Poszło super szybko, za 1 razem nie wykrył 1 urządzenia.
hp2.jpg
pawel
Posts: 45
Joined: 04 Sep 2013, 08:13

Re: Hapcan Programmer 2 - dev

Post by pawel »

No i jednak udało mi się potestować :)
Uwagi:
1. Fajne :)
2. z tego co udało mi się zauważyć to button 'SC' skanuje do grupy 9. troche mi to zajęło żeby wywnioskować dlaczego nie znajduje wszystkich modułów.
3. w komunikatach obcina mi nazwy modułów
4. raz przy skanowaniu z hapcan programatora moduły pojawiły się w programie ale więcej nie udało mi się tego powtórzyć.

Wygląda zachęcająco z niecierpliwością czekam na postępy
Pozdrawiam
Pawel
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Hapcan Programmer 2 - dev

Post by Bartek »

Tak, na razie skanuje do 9 żeby było szybciej podczas testów. Docelowo chcę zrobić tak aby wszystkie moduły były zapisywane, aby nie trzeba ich było szukać od nowa.

3. W jaki sposób Ci obcina? Czy po ponownym skanie masz pełne nazwy czy nadal ucięte? Jeśli mówisz o monitorze magistrali po prawej to tam będą ucięte nazwy bo moduły zwracają je w dwóch osobnych ramkach po 8 znaków. Jeśli po lewej w modułach są całe to jest ok.

4. Czy to znaczy, że przy kolejnych uruchomieniach już nic nie zwraca skanowanie? W monitorze magistrali widać jakieś odpowiedzi modułów? Jeśli nie, to prawdopodobnie coś z połączeniem jest nie tak.
pawel
Posts: 45
Joined: 04 Sep 2013, 08:13

Re: Hapcan Programmer 2 - dev

Post by pawel »

3. tak obcina po prawej stronie :) potem zauważyłem że poniżej jest ciąg dalszy.
4. widać ramkę czasu z modułu a jak skanuję w 'starym' programatorze to w 'nowym' raz widzę ramki a raz nie. Będę to jeszcze sprawdzał
Pozdrawiam
Pawel
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Hapcan Programmer 2 - dev

Post by Bartek »

Dzisiejsza wersja prócz zmian pod spodem rozpoznaje pluginy i podłącza je pod urządzenia. Na liście urządzeń te nieobsługiwane (czyli do których nie znaleziono plugina) są lekko wyszarzone. Na razie nic z tego dalej nie wynika, ale będzie potrzebne w dalszej części programu :).

Generalnie powinno się wyszarzyć wszystko co nie jest Buttonem, Relayem i IR, bo na razie testowo takie pluginy są zawarte.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Hapcan Programmer 2 - dev

Post by kompio »

Działa jak piszesz ... roleta wyszarzona ;]
Post Reply