Nota: Sebbene questa domanda menzioni Java e persino una specifica libreria Java, ha davvero niente da fare con Java ed è molto più di comunicazione seriale e driver di dispositivo . In quanto tale, penso che questo possa essere risolto da chiunque abbia esperienza in quei campi.
Sono in "Enterprise Java Land" da un po 'di tempo e sto cercando di raggiungere i livelli più bassi e capire le cose più vicine al bare metal. Sto cercando di capire le porte seriali ei driver dei dispositivi, e come si relazionano tra loro, e non vedo la foresta tra gli alberi su alcune cose.
Ho riflettuto a lungo su come porre una domanda succinta su questo argomento per i miei principali bloccanti mentali, e penso che il modo migliore per farlo sia chiedere un esempio specifico, e quindi provare a generalizzare la soluzione ( s).
Prendi il seguente esempio:
Esiste una libreria Java per leggere / scrivere dati da / verso le porte seriali chiamata JSerialComm . Se volevo che la mia app Java potesse comunicare direttamente con una porta seriale, posso usare JSerialComm per portare a termine il lavoro.
Dire che sono un ragazzo di elettronica e ho costruito un circuito davvero impressionante su una breadboard. Non importa ciò che fa questo circuito, a parte che ha un sacco di componenti IO (LED, forse alcuni motori, ecc.). Voglio connettere questo circuito al mio portatile tramite la porta seriale, e quindi controllarlo dalla mia app tramite JSerialComm (o qualche lib comparabile / alternativa):
- Questo circuito dovrebbe essere conforme a RS232? Perché perché no? E se sì, come?
- Questo circuito avrebbe bisogno del proprio driver di dispositivo nativo? Perché perché no? Se sì, allora perché dovrei avere bisogno di un driver quando posso comunicare con la porta attraverso JSerialComm? E se no, allora cosa stabilisce se è possibile parlare con un dispositivo esterno direttamente tramite la porta (JSerialComm) o quando è necessario utilizzare un driver di dispositivo nativo?
Ancora una volta, non penso che dovrebbe importare quale linguaggio di cui stiamo parlando (Java, C ++, Python, ecc.). Grazie in anticipo!