Pagina 1 di 2

GUI per interfacciare PC e controllore

MessaggioInviato: 10 gen 2018, 13:40
da pusillus
Ciao A tutti!

Da qualche giorno sono riuscito a far funzionare la USB del modulino cinese STM32F103 come virtual COM.
Mi è venuto lo schiribizzo di fare un interfaccia su PC che comunichi con il micro.
Ho utilizzato il framework QT5 (https://www1.qt.io/developers/)
In pochi giorni ho afferrato i concetti base, pur non essendo il genio del C++, e sono riuscito a fare una simpatica GUI. Devo dire che le potenzialità delle QT sono enormi! è cross platform : windows, linux, mac, ios e android.
QT Creator è una figata e ci sono un sacco di Widget pronti all'uso come il display LCD e il grafico cartesiano che ho utilizzato nella mia GUI!!!
Il programmino non fa nulla di speciale: si connette al micro tramite la USB, chiede al micro di fornirgli dei dati (random) che poi vengono riportati sul grafico.

mi riprometto di testarlo su linux e magari su android... pare che la libreria seriale funziona sulla OTG degli smarphone Android

Nessuno di voi usa le QT?

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 10 gen 2018, 14:56
da DarwinNE
Interessante! Hai pensato di mettere il codice a disposizione su Github?

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 10 gen 2018, 15:47
da francesco2011
potrebbe visualizzare una tensione analogica in un ingresso del micro?

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 10 gen 2018, 16:42
da pusillus
DarwinNE ha scritto:Interessante! Hai pensato di mettere il codice a disposizione su Github?


Sì potrei farlo... devo prima riordinare e commentare il codice... sono comunque poche righe di codice. Praticamente fa tutto lui :D
Devo aprire anche un account github...

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 10 gen 2018, 16:43
da pusillus
francesco2011 ha scritto:potrebbe visualizzare una tensione analogica in un ingresso del micro?

Certamente!

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 21 feb 2018, 14:27
da pusillus
Ho testato il sw su Linux e funziona benissimo senza modifiche al codice:
viewtopic.php?f=15&t=72365
Screenshot_2018-01-21_15-20-41.png


Con il MAC non ho provato perché non ne possiedo uno

Android e IOS non sono supportati.
Android in particolare non ha delle API pubbliche per poter utilizzare le porte seriali. Qualcuno ha fatto dei wrapper in Java, ma è troppo complicato per i miei gusti.

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 21 feb 2018, 14:42
da xyz
pusillus ha scritto:Android in particolare non ha delle API pubbliche per poter utilizzare le porte seriali

No sono pubbliche, Android è open source in molte sue parti, sono quelle di Linux (Android usa Linux come kernel) ma dipende dal produttore del dispositivo. Hardware deve sopportare USB OTG, il kernel deve avere il modulo per gestire la seriale compilato altrimenti non poi usare facilmente la seriale sotto Android (in alcuni dispositivi serve avere root attivo).

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 21 feb 2018, 16:44
da pusillus
Foto Utentexyz
forse ho fatto un po di confusione ma mi pare di aver capito questo:
QT5 sotto android usa le NDK che permettono di programmare in codice nativo C e C++.
Le NDK non ti permettono di lavorare con le seriali.

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 21 feb 2018, 18:53
da pusillus
pusillus ha scritto:Foto Utentexyz
forse ho fatto un po di confusione ma mi pare di aver capito questo:
QT5 sotto android usa le NDK che permettono di programmare in codice nativo C e C++.
Le NDK non ti permettono di lavorare con le seriali.


no non è così ?% non ci sto capendo nulla...
Con le NDK si puo accedere alla seriale. Sono le QT5 che hanno un supporto parziale x Android.
Ci sarebbe da perderci parecchio tempo... che purtroppo non ho. mi accontento di windows e Linux

Re: GUI per interfacciare PC e controllore

MessaggioInviato: 21 feb 2018, 19:17
da xyz
pusillus ha scritto:Le NDK non ti permettono di lavorare con le seriali.

Come no, NDK permette di accedere alla seriale, programmi direttamente in C/C++ e assembler col GCC, via software non hai limitazioni se chi ha progettato hardware ha compilato il kernel con tutto quello che serve (come ho detto prima).

Ad esempio questa libreria accede alla seriale con NDK e rende disponibile un API Java via JNI:

https://github.com/chzhong/serial-android

Esistono porting di librerie più complesse per USB che supportano anche altri dispositivi USB come la libusb per Andorid, anche questa usa NDK:

https://github.com/libusb/libusb/tree/master/android