Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Linux embedded] Profesjonalna aplikacja na Linuxie Embedded

30 Lis 2017 21:17 1842 30
  • Poziom 17  
    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.
  • PCBway
  • Użytkownik usunął konto  
  • 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).
  • PCBway
  • Poziom 17  
    Czyli python i inne kwiatki raczej odpadają?
    Czy QT jest wart tej ceny?
    Czy może jest jeszcze coś innego wartego polecenia?
  • 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.
  • Użytkownik usunął konto  
  • Poziom 33  
    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.
  • 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.
  • Poziom 37  
    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.
  • Poziom 17  
    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
  • Użytkownik usunął konto  
  • Poziom 17  
    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?
  • 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).
  • Poziom 17  
    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.
  • Poziom 17  
    Wygodnie się pracuje tym libavg?
    Jest wszystko co trzeba i jest z czego wybierać?
    nie brakuje czasem komponentów?
  • 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ć.
  • Poziom 17  
    To w libavg nie ma możliwości utworzenia nawet prostego menu przyciskowego?
  • Poziom 37  
    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.
  • 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 :-)
  • Poziom 17  
    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.
  • Użytkownik usunął konto  
  • Poziom 17  
    A w praktyce jak to wygląda?
    Jak z licencją i z dostępnością dokumentacji?
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 17  
    pod linuxem tez pracuje skoro produkt Microsoftowy?
    Cross kompilacja tez jest mozliwa ?
  • Poziom 17  
    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.
  • Pomocny post
    Poziom 30  
    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.