Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Linux embedded] Profesjonalna aplikacja na Linuxie Embedded

bartosz.tarnowski 30 Lis 2017 21:17 966 30
  • #1 30 Lis 2017 21:17
    bartosz.tarnowski
    Poziom 15  

    Dziś następujące zapytanko:

    Jaki sprzęt i platforma softwearowa pod linuxa aby stworzyć profesjonalnie wyglądającą aplikację?

    Aplikacją ma zawierać średnio zaawansowane menu i ma móc możliwość wyświetlania filmików w czasie braku interakcji z użytkownikiem.
    Interakcja poprzez ekran i do tego niewielka współpraca z dodatkowym sprzętem przez peryferia.

    0 29
  • #2 30 Lis 2017 21:24
    Piotrus_999
    Poziom 40  

    bartosz.tarnowski napisał:
    Jaki sprzęt i platforma softwearowa pod linuxa aby stworzyć profesjonalnie wyglądającą aplikację
    Zależy od tego co potrafisz. Sprzęt - pytanie, na które nie ma odpowiedzi - zależy od aplikacji

    bartosz.tarnowski napisał:
    stworzyć profesjonalnie wyglądającą aplikację
    To mi się podoba :)

    0
  • #3 30 Lis 2017 21:26
    mongoł2000
    Poziom 18  

    Jak dla mnie QT framework :
    - masz QML - bardzo wydajne i ładnie wyglądające grafiki (wymagany OpenGL)
    - licencja dla StartUpów około 100 USD/mc
    - dużo dokumentacji
    - łatwy do nauki
    - framework kontroluje najważniejszy sprzęt (to zależy od platformy - czasem wymagane są dodatkowe biblioteki)

    Co do sprzętu, to raczej $ tu ma znaczenie. Fajnie mieć akcelerację graficzną w takiej aplikacji. Jak nie ma ograniczenia co do budżetu to wybrałbym coś z Freescale (iMX).

    0
  • #4 30 Lis 2017 21:44
    bartosz.tarnowski
    Poziom 15  

    Czyli python i inne kwiatki raczej odpadają?
    Czy QT jest wart tej ceny?
    Czy może jest jeszcze coś innego wartego polecenia?

    0
  • #5 30 Lis 2017 22:05
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Z Qt można korzystać za darmo, jeśli tylko aplikacja będzie używała samego Qt za pomocą dynamicznych bibliotek (.so) do których nie wprowadziłeś żadnych zmian. Chyba że coś się zmieniło.

    W Pythonie nie ma żadnego "natywnego" frameworka graficznego, praktycznie wszystkie są wrapperami na coś innego (np. na Qt czy na GTK+). Oczywiście jeśli Python Ci pasuje, to oczywiście można go użyć, ale trzeba pamiętać, że napisanie zabezpieczonej aplikacji w Pythonie (tzn. takiej której ktoś nie jest w stanie łatwo "zdekompilować" do pełnego kodu źródłowego) nie jest trywialne. No i jest jeszcze kwestia wydajności takiej aplikacji - natywna prędkość to raczej nie będzie...

    Ewentualnie można postawić na nowoczesność w każdym calu i technologie webowe, czyli użyć Electron.

    0
  • #6 30 Lis 2017 23:47
    Piotrus_999
    Poziom 40  

    Freddie Chopin napisał:
    Z Qt można korzystać za darmo, jeśli tylko aplikacja będzie używała samego Qt za pomocą dynamicznych bibliotek (.so)
    Chyba tak (w sensie że się zmieniło) bo free jest tylko przy projektach typu open source.

    0
  • #7 01 Gru 2017 06:31
    grko
    Poziom 32  

    Piotrus_999 napisał:
    Freddie Chopin napisał:
    Z Qt można korzystać za darmo, jeśli tylko aplikacja będzie używała samego Qt za pomocą dynamicznych bibliotek (.so)
    Chyba tak (w sensie że się zmieniło) bo free jest tylko przy projektach typu open source.


    Chyba jednak nie. Jest tak jak napisał FCh.

    Wracając do tematu. Mając linuxa embedded na platformie z rozsądnymi zasobami sprzętowymi można wybrać w zasadzie dowolną technologię do aplikacji. Ja używałem QT jednak widziałem projekty gdzie aplikacja była w JS. Tak naprawdę to programowanie niewiele różni się od pisania na PC więc kryteria wyboru nie powinny być różne od normalnego PCtowego linuxa.

    Jak ktoś planuje robić własny hardware to również polecam procesory z rodziny iMX od NXP(Freescale). Mają dobrą (i dostępną publicznie) dokumentację i całkiem niezłe wsparcie w kernelu.

    0
  • #8 01 Gru 2017 08:26
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Piotrus_999 napisał:
    Chyba tak (w sensie że się zmieniło) bo free jest tylko przy projektach typu open source.

    https://www1.qt.io/licensing-comparison/

    "Possible to keep your application private with dynamic linking" - opcja dostępna w licencji LGPL.

    Niemniej jednak jeśli kogoś średnio interesują meandry licencji LGPL i burzliwa historia samego Qt, to warto nadmienić, że Electron ma licencję MIT.

    0
  • #10 02 Gru 2017 15:08
    JacekCz
    Poziom 33  

    Freddie Chopin napisał:
    W Pythonie nie ma żadnego "natywnego" frameworka graficznego, praktycznie wszystkie są wrapperami na coś innego (np. na Qt czy na GTK+). Oczywiście jeśli Python Ci pasuje...


    Stosunkowo najbardziej "natywny" w Pythonie był przynajmniej w pewnym czasie Tk (drugi braciszek z "nierozłącznej pary" Tcl/Tk). Dobrze pasuje/pasował do filozofii skryptowej, w bardzo małej ilości kodu się uzyskiwało okna z automatycznymi layoutami.

    0
  • #12 02 Gru 2017 20:26
    bartosz.tarnowski
    Poziom 15  

    mongoł2000 napisał:
    Jak dla mnie QT framework :
    ....
    - licencja dla StartUpów około 100 USD/mc


    Jak to jest w praktyce?
    Czy taką licencję można wykupić na czas określony np 4 miesiące?
    A dla ścisłości to wykupując licencję na cały rok wychodzi 79$/mc

    0
  • #13 02 Gru 2017 20:41
    Piotrus_999
    Poziom 40  

    Zanim kupisz zadaj sobie pytanie: co umiem? Jakie języki znam? Czu potrafię programować na wybrany system. Jeżeli na jakiekolwiek pytanie jest odpowiedź słabo albo nie - ćwicz sobie na free,

    0
  • #14 02 Gru 2017 21:37
    bartosz.tarnowski
    Poziom 15  

    wiadomo kasiure trzeba szanować,
    interesuje mnie opcja stworzenia projektu w wersji free, wykupienie po pewnym czasie licencji i przeniesienie projektu do wersji licencjonowanej i zakończenie w nim projektu.

    Czy poza oficjalnymi zasobami dokumentacji znacie jakieś dobre tutoriale dla QT na systemy embedded?

    0
  • #15 02 Gru 2017 21:39
    mongoł2000
    Poziom 18  

    Albo miesiąc albo rocznie:
    https://www1.qt.io/start-up-plan/

    Zgadzam się z Piotrus_999 - najpierw możesz potrenować ten framework jeśli jeszcze go nie znasz. QML nieco irytuje słabą dokumentacją, ale daje całkiem fajne efekty. Robiąc takie rzeczy na Linux z QT potrzebujesz na pewno C/C++ oraz znajomość bash. Jak coś to zawsze można się ratować forum dla iMX'a.

    Cytat:
    Czy poza oficjalnymi zasobami dokumentacji znacie jakieś dobre tutoriale dla QT na systemy embedded?


    Taka aplikacja to nie jest embedded Qt, więc informacje które znajdziesz w sieci dotyczące qt dla desktop, będą dla Ciebie właściwe. Nie korzystasz z Qt dla embedded, bo to kosztuje znacznie więcej i chyba za free nie jest dostępne :) Korzystasz z Linuxa, więc piszesz aplikację desktopową w Twoim przypadku. Równie dobrze możesz aplikację napisać na Windows, a potem przenieść kod na Linuxa (cross kompilacja lub po prostu przenieść kod i skompilować na docelowej maszynie).

    0
  • #16 03 Gru 2017 13:23
    bartosz.tarnowski
    Poziom 15  

    W grę wchodzi croos kompilacja, jestem uzależniony kilkoma programami od Windowsa.
    Oczywiście bym mógł tworzyć projekt już na docelowej platformie ale po doświadczeniach z Raspberry nie wydaje mi się to zbyt wygodne.

    0
  • #18 05 Gru 2017 09:11
    bartosz.tarnowski
    Poziom 15  

    Wygodnie się pracuje tym libavg?
    Jest wszystko co trzeba i jest z czego wybierać?
    nie brakuje czasem komponentów?

    0
  • #19 05 Gru 2017 13:08
    sawitar
    Poziom 17  

    Hmm,
    W libavg brak jest większości komponentów znanych z desktopow (takich jak przyciski, pola tekstowe itp), są za to komponenty jak ImageNode czy VideoNode. libavg wspiera tez dotyk (ale z tego akurat nie miałem szansy jeszcze korzystać).
    Moja aplikacje są embedded i więcej mi nie potrzeba.

    Wszystko zależy co to za aplikacja ma być.

    0
  • #20 06 Gru 2017 15:40
    bartosz.tarnowski
    Poziom 15  

    To w libavg nie ma możliwości utworzenia nawet prostego menu przyciskowego?

    0
  • #21 06 Gru 2017 17:51
    JacekCz
    Poziom 33  

    bartosz.tarnowski napisał:
    To w libavg nie ma możliwości utworzenia nawet prostego menu przyciskowego?

    Osobiście nie znam, ale wiele "środowisk graficznych" z segmentu "embedded" ma wąski zamiar twórców. Np grafika w sensie multimedialnym, inżynierskim (wykresy) a GUI to mocno się różniące grupy zastosowań.
    Pamiętam jakiś elektrodowy kolega zamierzał robić GUI w Open GL (chyba - coś z tego segmentu: grafika w sensie wykresów inżynierskich) argumentował 'bo to znam".
    Zapamiętałem, bo specjalnie przestudiowałem Doxygen API, były wyłącznie pełne i puste prostokąty i "surowe" czytanie klawiszy.

    jak się niewłaściwie wybierze, to boli.

    0
  • #22 07 Gru 2017 11:58
    sawitar
    Poziom 17  

    bartosz.tarnowski napisał:
    To w libavg nie ma możliwości utworzenia nawet prostego menu przyciskowego?

    Nie w sensie klasycznego przycisku znanego z aplikacji desktopowych.

    Nie wiemy jak chcesz aby twoja aplikacja wyglądała? Czy ma być obsługiwana przy pomocy klawiatury, dotyku czy jeszcze w jakiś inny sposób? W jakim środowisku ma pracować? Czy to ma być aplikacja full screen, czy ma używać X-ów?

    Embedded LInux to dośc szerokie pojęcie :-)

    0
  • #23 07 Gru 2017 13:10
    bartosz.tarnowski
    Poziom 15  

    Tryb Full Screen bez okienka.
    ekran dotykowy
    dla użytkownika bez opcji wyjścia do systemu
    trochę zewnętrznego sprzętu podłączonego przez UART i GPIO
    Powiedzmy że coś takiego jak w bankomatach.

    0
  • #25 07 Gru 2017 13:32
    bartosz.tarnowski
    Poziom 15  

    A w praktyce jak to wygląda?
    Jak z licencją i z dostępnością dokumentacji?

    0
  • Pomocny post
    #26 07 Gru 2017 13:39
    Piotrus_999
    Poziom 40  

    MIT + trochę BSD + malutko Apache 2 - czyli bardzo dobre. Microsoft zobowiązał się do nie czepiać się MONO (w oficjalnej umowie z MONO). Dokumentacja - w sieci jest cała masa + fora - ale raczej tylko angielskojęzyczne.

    C# kod mimo że komilowany w locie / interpretowany pcode - działa naprawdę szybko.

    0
  • #27 07 Gru 2017 13:52
    bartosz.tarnowski
    Poziom 15  

    pod linuxem tez pracuje skoro produkt Microsoftowy?
    Cross kompilacja tez jest mozliwa ?

    0
  • #28 07 Gru 2017 13:57
    Piotrus_999
    Poziom 40  

    bartosz.tarnowski napisał:
    pod linuxem tez pracuje skoro produkt Microsoftowy?
    nawet Ci się nie chciało zajrzeć na ich stronę http://www.mono-project.com/

    IDE - www.monodevelop.com/

    0
  • #29 07 Gru 2017 14:06
    bartosz.tarnowski
    Poziom 15  

    Tak zgadza się, nie mam dziś na to czasu bo męczę kilka spraw na raz.
    Może wieczorkiem na spokojnie zagłębie się w szczegóły.
    Dzięki za wskazanie tego produktu nie wiedziałem że jest coś takiego.

    0
  • Pomocny post
    #30 07 Gru 2017 17:51
    michcior
    Poziom 29  

    bartosz.tarnowski napisał:
    pod linuxem tez pracuje skoro produkt Microsoftowy?


    Jeśli nie piszesz aplikacji, która ma chodzić na wielu platformach, to to jest przerost formy nad treścią. Poza tym, .NET i linux to brzmi jak prośba o kłopoty.

    bartosz.tarnowski napisał:
    Powiedzmy że coś takiego jak w bankomatach.

    Czyli robisz klasyczny "KIOSK" i pod taką nazwą szukaj rozwiązań, ustawień, tricków itd.

    Jak stawiam kioski na przeglądarce, wykorzystując ich tryb "kiosk", na malinkach jest "kweb", czasami wykorzystuję komponent WebKit w QT w pythonie, czasami chromium jeśli trzeba nieco żwawiej.

    Zwykle serwer to WebPy, rzadziej ligthttp, nigdy Apache - to kloc na serwery webowe a nie kioski. Kiedyś pisywałem pluginy do przeglądarek ale odkąd pogrzebali NPAPI to już mi się nie chce, WebPy jest w zupełności wystarczający.

    Aplikacja to czysty (0 HTML) SVG + JS + CSS(kompilator less). W grafice wektorowej SVG można robić śliczne rzeczy, szybko i wygodnie. Niestety nie biega to tak płynnie jak natywny kod ale też jest nieźle. Animacje/transakcje CSS wystarczają do efektownych animacji, cienie, przeźroczystości i jest ładnie. Przyciski się tworzy samemu.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo