Commenti a: ITDevCon 2017: slide e sorgenti su Clean Code e Information Radiator con Delphi https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/ Il blog tecnico di Marco Breveglieri, Software and Web Developer Sat, 25 Jan 2020 08:56:04 +0000 hourly 1 https://wordpress.org/?v=6.1.1 Di: Enrico https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-26791 Sat, 25 Jan 2020 08:56:04 +0000 https://www.compilaquindiva.com/?p=746#comment-26791 In risposta a Marco Breveglieri.

Ciao Marco, dopo aver sospeso per diverso tempo lo sviluppo della mia applicazione su Raspberry, finalmente sono ripartito.
Sto sviluppando una valigetta particolare (in pratica un generatore di frequenze più svariate) in cui convivono un micro ARM PSoC 5 della Cypress e Raspberry. Il micro si occupa delle gestioni di basso livello, mentre il Raspberry implementa l’interfaccia utente con tutti i comandi per guidare il lavoro del Cypress. I comandi viaggiano tra i due a mezzo seriale TTL.
Una delle funzioni è un mixer a cui fanno capo ben 7 generatori di frequenze, che miscela i 7 segnali ognuno regolabile da un potenziometro slider su schermo touch.
E qui è il mio problema attuale.
Funziona tutto correttamente (sto usando Delphi 10.3.2 RIO e Android Emteria ultimo aggiornamento per Raspberry Pi3 B+) ma gli eventi generati dal touch vengono elaborati con lentezza, tanto che i potenziometri slider si impostano con notevole ritardo rispetto ai movimento del dito sullo schermo. La stessa cosa succede però anche con il mouse.
Inoltre, se metto su una form una trackbar ruotata di 180 gradi, su Windows funziona correttamente, mentre se lo mando su Android del Raspberry il controllo letteralmente scompare!
Secondo te il problema è su Android o nasce da qualche incompatibilità su Delphi? Bel dilemma, eh?
Ciao.
Enrico Miani.

]]>
Di: Marco Breveglieri https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25798 Fri, 11 May 2018 15:14:18 +0000 https://www.compilaquindiva.com/?p=746#comment-25798 In risposta a Enrico Miani.

Ciao Enrico,
scusa se ti rispondo solo ora ma questo commento mi era sfuggito. 🙂

Onestamente mi trovi impreparato sul controllo dei pin di I/O del Raspberry, sia in generale che nello specifico con Delphi: il mio utilizzo del dispositivo è orientato all’uso come sostituto di un PC vero e proprio (sia nelle dimensioni che nella complessità) sfruttando però la possibilità di comunicare via WiFi e via Bluetooth, mentre la connettività a sensori e device analogici/digitali non l’ho ancora sperimentata.

Sto affrontando questo mondo con Arduino (vedi i post più recenti sul mio blog) ma sono ancora nella fase di “gioco” e scoperta.

Non ho molto tempo di approfondire al momento, ma scommetto che facendo ricerche mirate con Google si possono scoprire molte cose a riguardo, data l’ampia diffusione del Raspberry nel mondo IoT.

Se avrò delle novità a riguardo da comunicarti, interverrò di nuovo qui ben volentieri oppure scriverò un post più articolato per descrivere le mie esperienze, ma per il momento ho poco da trasmettere. 🙂

Un saluto!
Marco.

]]>
Di: Enrico Miani https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25716 Sat, 21 Apr 2018 17:09:41 +0000 https://www.compilaquindiva.com/?p=746#comment-25716 In risposta a Marco Breveglieri.

Ciao Marco, ti disturbo di nuovo. Ho fatto qualche piccolo esercizio su Delphi e l’ho ricompilato per Raspberry sotto Android. Funziona! Ma ora viene il problema vero…
Come posso controllare i pin di I/O del Raspberry in maniera efficiente e rapida, specialmente se voglio scrivere in Delphi e far girare sotto Android? Ovviamente sotto Windows non si dispongono degli I/O di Raspberry!
Questo di pilotare gli input/output è sempre un argomento misterioso quando si lavora con certe piattaforme ad alto livello. Ho notato che su qualunque documentazione Delphi ma anche di altri ambienti, parole come USB, HID e GPIO sono quasi messi al bando.
Per me che ho sempre sviluppato in C nascente per vari microcontrollori, il poter accedere direttamente ed in real-time agli I/O è fondamentale. Posso fare affidamento su Delphi, ed in che modo?
Grazie e rimango in curiosa attesa.

Enrico.

]]>
Di: Marco Breveglieri https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25678 Thu, 12 Apr 2018 20:03:09 +0000 https://www.compilaquindiva.com/?p=746#comment-25678 In risposta a Enrico Miani.

Ciao Enrico,
sono contento che tu sia riuscito a muovere altri passi nel fantastico mondo dello sviluppo Android con Delphi.

Condivido con te l’entusiasmo di riuscire, con relativamente pochissimo sforzo, a produrre qualcosa e a farne il deploy vedendola funzionare su una piattaforma completamente diversa da quella a cui sono stati da sempre abituati gli sviluppatori Delphi, ossia Windows.

Per rispondere alle tue domande, direi che la strada di lanciare ogni volta ADB è quella corretta, perché il programma mi risulta debba essere in esecuzione per potersi collegare al dispositivo in rete, e ADB è l’agente attraverso il quale ci si interfaccia ad esso.

Per velocizzare le operazioni, se non lo hai ancora fatto, puoi mettere il percorso del file ADB.exe nel PATH di Windows, così puoi lanciarlo senza doversi spostare all’interno della directory.

Per altri dispositivi come smartphone e tablet, il vantaggio di poter agire via USB è ovviamente un enorme vantaggio, soprattutto per la velocità del collegamento.

Devo comunque dire che in genere cerco di alleggerire questo passaggio strutturando l’applicazione in modo da separare la “business logic” dalla UI e utilizzando controlli e componenti dei quali sono abbastanza certo dell’aspetto che avranno, costruendo dei “mock” dove necessario: in questo modo, testando su Windows sono (abbastanza) confidente che il risultato sia affine e coerente anche sulle altre piattaforme, come Android e iOS. Le possibilità dipendono anche sensibilmente dal tipo di applicazione che si deve realizzare.

Buona programmazione!
Marco.

]]>
Di: Enrico Miani https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25675 Thu, 12 Apr 2018 12:58:34 +0000 https://www.compilaquindiva.com/?p=746#comment-25675 In risposta a Marco Breveglieri.

Non so come ringraziarti. Ho già sviluppato la mia prima app sotto Android con Delphi! Anche se fa solo “Hello” per me è un mondo che si apre.
Solo un dubbio mi rimane: oni volta che accendo il Raspberry occorre andare a ricercare il file ADB.exe e lanciarlo con i relativi parametri per poter riconoscere il dispositivo in rete sotto Delphi. E’ proprio così che si deve fare o ci sono delle scorciatoie dall’ambiente di Delphi?

p.s.- Ho compilato e lanciato il tuo IR e viene effettivamente compilato e caricato ma poi in fase di esecuzione mi da un errore dopo l’altro di codici non validi ecc. ma non ti disturbare oltre, era solo una curiosità e non lo devo certo mettere in funzione per forza!

Ciao.
Enrico

]]>
Di: Marco Breveglieri https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25669 Wed, 11 Apr 2018 15:19:51 +0000 https://www.compilaquindiva.com/?p=746#comment-25669 In risposta a Enrico Miani.

In effetti, ora che me lo ricordi, non usavo la USB nemmeno io (mi sono confuso con un altro dispositivo).

Però nella mia risposta precedente c’è un link alla documentazione di Delphi per collegarsi al dispositivo tramite ADB.

Seguendo quei passaggi si riesce a far apparire il Raspberry nella lista dei device su cui fare deploy in Delphi e quindi a lanciare sia il debug che l’installazione dell’applicativo direttamente sul device.

Magari parti con un prototipo di applicazione semplice, senza fronzoli, giusto per testare il meccanismo, e poi aggiungi via via funzionalità prendendo il mio sorgente come esempio (senz’altro migliorabile). 😉

Ciao!

]]>
Di: Enrico Miani https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25667 Wed, 11 Apr 2018 12:29:59 +0000 https://www.compilaquindiva.com/?p=746#comment-25667 Sono io che ringrazio te per la velocissima risposta.
Qualche difficoltà in effetti ce l’ho. Il Raspberry (tranne il PW 0) non ha una usb slave e se fosse collegata ad un PC andrebbero in conflitto le due usb master (a meno che non mi sfugge qualcosa!). Tu come lo collegasti per realizzare il Radiotor con Delphi? In ogni caso, è possibile fare debugging da remoto come con un cellulare?
Grazie ancora.

]]>
Di: Marco Breveglieri https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25666 Wed, 11 Apr 2018 11:31:17 +0000 https://www.compilaquindiva.com/?p=746#comment-25666 In risposta a Enrico Miani.

Ciao Enrico, grazie mille per il tuo feedback. 🙂

Esistono diverse distribuzioni del progetto AOSP (Android Open Source Project) che si possono reperire e installare sul Raspberry. Si possono trovare assieme a tutorial correlati facendo una ricerca mirata su Google. Se preferisci qualcosa di più strutturato e curato, che riceve periodicamente aggiornamenti, puoi usare emteria.OS: è disponibile una versione gratuita che effettua un riavvio periodico ma è completamente funzionante, distribuito con un software che prepara automaticamente tutto quello che serve per l’installazione.

Per fare il deploy di un’app sul dispositivo, la procedura da seguire è la stessa degli smartphone: si può collegare il Raspberry al PC via USB con i relativi driver, oppure fare il deploy via ADB nella rete locale, oppure ancora pubblicare il pacchetto compilato – il file .APK per intenderci – su qualche storage (es. Google Drive, Dropbox, ecc.) e scaricarlo dal Raspberry per procedere poi con l’installazione, così come avviene per qualsiasi altro software Android.

Prova a sperimentare un pochino facendo qualche ricerca e fammi sapere se ce l’hai fatta!

Un saluto!
~/|/|arco

]]>
Di: Enrico Miani https://www.compilaquindiva.com/2017/10/17/itdevcon-2017-slide-sorgenti/#comment-25665 Wed, 11 Apr 2018 11:17:22 +0000 https://www.compilaquindiva.com/?p=746#comment-25665 Ho scoperto solo ora questo interessante progetto e ho tentato qualche esperimento ma non riesco a trovare un Android funzionante sul mio Raspberry P3 B+, quale potrei utilizzare? Cosa occorre per mettere in comunicazione Delphi Berlin da windows 7 per programmare il Raspberry con Android? Sulla guida in linea si accenna ai cellulari ma con un mini pc come Raspberry come si fa?
Grazie e complimenti per il blog.

Enrico Miani

]]>