[ide]nuovo connettore seriale, da RXTX a JSSC

Da tenere d'occhio questa modifica, inflirà molto positivamente essedo RXTX morta da anni, ma mi apsetto anche taaanti problemi nuovi di upload.
Quindi propongo di creare un unico thread (questo) dove tenere d'occhio tutti i problemi che crediamo possano derivare da questo connettore.

Per maggiori info, ecco direttamente il link alla patch implementata

Spero che l'aggiornamento risolva il mio problema con i permessi di RXTX.

Che connettore, scusa?
JSSC è un driver :sweat_smile:

non esattamente.
I driver veri e prori sono nel SO.
RXTX, come JSSC, è un ibrido: un connettore, detto "native", solitamente scritto in C che si interfaccia al driver di sistema, ma lo manipola offrendo poi una interfaccia unica per ogni OS; e le classi in Java che usano questo oggetti C, e spesso semplificano le cose.

Quindi c'è un componentejava che permette di dialogare con componenti in altri linguaggi, e in quest'altro linguaggio un "driver per java per dialogare con altri driver/librerie", io chiamo questo accrocchio nel suo insieme un connettore.

edit: per esempio LWJGL con questo sistema permette di interfacciarsi a openGL, openCL e openAL che sono libreire che a loro volta usano driver

lesto:
... io chiamo questo accrocchio nel suo insieme un connettore.

BLASFEMO !!!

Questo, e' un connettore :stuck_out_tongue: XD XD XD

(non e' che tu sei uno di quelli che chiamano"operatori ecologici" gli spazini, "consulenti all'alimentazione" i cuochi e "agenti ad architettura unificata" i virus, vero ? ... :stuck_out_tongue: XD)

Lesto, non è che stai descrivendo un "hook"?

Seriamente, non e' che parli di quelli che chiamano "bridge interface" ?

Etemenanki:
(non e' che tu sei uno di quelli che chiamano"operatori ecologici" gli spazini, "consulenti all'alimentazione" i cuochi e "agenti ad architettura unificata" i virus, vero ? ... :stuck_out_tongue: XD)

okok IO li chiamo così, il nome tecnico è "native interface", quindi non connettori ma interfaccie. Java Native Interface - Wikipedia

Cioè nell'IDE sarà sostituito il file rxtxSerial.dll a favore di un qualcosa di nome JSSC ?

quella è la native di RXTX, ovvero il ponte scritto in liguaggio nativo (essendo dll è il ponte usato in windows, poi ci sono le .so i linux, non so per la mac) . Anche la RXTX.jar viene sostituita, e probabilmente anche il codice che usa la seriale ambia un pò (non so se la nuova lib è una "drop and replace", una cosa completamente diversa, o una via di mezzo)

L'importante da sapere è che cambia qualcosa nel "ponte" tra java e la porta seriale(virtuale o fisica che sia), e che già ci sono un pò di segnalazioni, in particolare con la due.

Lesto dove hai preso la notizia? link?

"io non prendo notizie, io leggo il codice"

da notare nella milestone per la prossiva versione l'update di arm-gcc

Se qualcuno volesse già provarlo:

http://downloads.arduino.cc/arduino-jssc-nightly-linux32.tgz
http://downloads.arduino.cc/arduino-jssc-nightly-linux64.tgz
http://downloads.arduino.cc/arduino-jssc-nightly-windows.zip
http://downloads.arduino.cc/arduino-jssc-nightly-macosx.zip

In sostanza è quello che viene chiamato "binding", o wrapper, che viene da incapsulare un codice esistente in un altro. Arduino core per TWI usa una libreria C++ che wrap le librerie C trasformandole in classi.

Con java le cose sono più complesse, ma genericamente si tratta sempre di wrap, ma le cose stanno diversamente perché c'è la macchina virtuale sotto, che di suo offre servizi ai programmatori e questo nuovo wrap deve
"integrarsi" con la JVM, insomma cose di java sono particolari e meritano un nome specifico.

PS: io di java non ci capisco una mazza.

Ciao.

però ci hai preso :slight_smile:

lesto:
però ci hai preso :slight_smile:

Apparentemente ci ho preso, ma in sostanza io ho solo premuto il grilletto di un fucile già puntato con precisione.
Insomma non potevo non prenderci, ma questo non vuol dire che sappia come viene messa in pratica.

Ciao.

MauroTec:
...o wrapper ...

Direi che il termine più chiaro è questo, mi fa pensare subito a qualcosa di software. Connettore mi fa pensare a qualcosa di hw. :smiley:

Ho controllato su ultima versione Processing 2.0.3 continuano ad usare la rxtx... solita.
(per la cronaca, di sicuro frega poco a chi non utilizza il Processing).

public class SerialPort {

    private SerialNativeInterface serialInterface;
    private SerialPortEventListener eventListener;
    private long portHandle;

Questa il servizio offerto al programmatore? giusto
package jssc è il package native, che si basa sul modulo di libreria scritto in C++ che è il wrapper.

Quindi SerialPort --> jscc --> modulo .so o .dll

Se qualcosa cambia nel sistema devono ritoccare solo il modulo di libreria C++.

Basta ho i primi sintomi di allergia a java. Pensavo che con l'andar del tempo la gravità dell'allergia migliorasse, e invece peggiora. :stuck_out_tongue:

Ciao.

Quindi SerialPort --> jssc --> modulo .so o .dll

esatto, lo stesso vale per RXTX o qualsiasi altra necessità non gestita dalla JVM.

JSSC è il wrapper java al wrapper C/C++, in teoria puoi fare a meno del wrapper C/C++ ed andare direttamente a chiamare istruzioni del SO ma è un pò più sbattimento; ogni sistema aggiungi solo il C/C++ specifico, senza toccare java (toccare java vuol dire potenzialmente rompere qualcosa, anche se non dovrebbe se il contetto OO è ben seguito.