Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-11-2007, 15:35   #1
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
[c++] come gestire una porta seriale....

da un pò di tempo ho in mente di costruire un sistema di acquisizione dati tramite una porta seriale e di interfacciare un PIC con il Pc... Dato che conoscevo il basic ed il pascal ed avevo voglia di crescere ho deciso di implementare un programma in c++. Volevo realizzare qualcosa cross platform e pensai di usare WXdev-cpp con una libreria free la libwxctb, decisi inoltre di leggere un libro sul c++ [Horstmann] ma mi accorsi che c'era ben poco di quello che volevo trattare....
Qualcuno di voi ha fatto delle esperienze del genere?
Poi una considerazione o meglio uno sfogo, in effetti ho capito che, mentre negli anni 80-90 con un pò di inventiva riuscivi a fare tanto oggi non è più così. Per esempio secondo quanto ho letto, se nn ho capito male, per gestire una seriale in win32 con la benedizione M$ devo usare le API WIN32 ma può essere????? Ma a cosa servono i s.O. di ultima generazione se rendono così difficile gestire l'hW???
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 15:44   #2
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Ma a cosa servono i s.O. di ultima generazione se rendono così difficile gestire l'hW???
In realtà i sistemi operativi di ultima generazione semplificano l'accesso all'hardware esponendo delle API standard, in tal modo evitano (o comunque cercano di limitare le possibilità) che un programmatore inesperto/sbadato/con cattive intenzioni/etc mandi in crash il sistema accedendo nel modo sbagliato a risorse fisiche. Chi ha usato sistemi privi di un HAL sa a cosa mi riferisco...

Se hai proprio bisogno/voglia di bypassare le funzioni dell'API ad alto livello messa a tua disposizione dall'OS puoi sempre implementare un bel device driver. Ci sono drivers (GiveIO, PortIO, etc) che consentono di accedere all'hardware in modo più diretto.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 15:53   #3
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
ma adesso nn vorrei sbagliare ma... cmq se non sbaglio, il vecchio QB apriva banalmente un flusso su porta aprendo un file di lettura-scrittura, cosa che mi sembra ragionata e compatibile con il concetto di stream (cout e cin). Il driver è una soluzione ma nn so se in effetti quanto è poi compatibile con un programma cross platform.. meglio la libreria libwxctb... Ma a proposito di crash, a me le API nn sembrano trasparenti e chi dice che siano affidabili e poi su Linux come lo ricompilo...devo mettere nelle mie macchine un pizzo per la M$ ?(ma sono in effetti delle macro??).
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:04   #4
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da norih43 Guarda i messaggi
ma adesso nn vorrei sbagliare ma... cmq se non sbaglio, il vecchio QB apriva banalmente un flusso su porta aprendo un file di lettura-scrittura, cosa che mi sembra ragionata e compatibile con il concetto di stream (cout e cin). Il driver è una soluzione ma nn so se in effetti quanto è poi compatibile con un programma cross platform.. meglio la libreria libwxctb... Ma a proposito di crash, a me le API nn sembrano trasparenti e chi dice che siano affidabili e poi su Linux come lo ricompilo...devo mettere nelle mie macchine un pizzo per la M$ ?(ma sono in effetti delle macro??).
per interfacciarti all'hardware devi sempre passare per il s.o. (per i motivi che ti hanno già esposto)... quindi in ogni caso in windows fai una cosa e in linux ne fai un'altra...

poi con le api win32 può benissimo essere che ti diano in mano uno stream di ingresso e uno in uscita: tu gestisci i flussi, il s.o. si arrangia a dialogare con la porta seriale.

esiste persino una soluzione per java (se ti interessa la portabilità), ma ovviamente fa uso di JNI e di driver specifici per ciascun s.o. (attualmente il pacchetto javax.comm è alla versione 3, la quale supporta linux ma non windows... per quest'ultimo devi cercare la versione 2 (non sul sito Sun, ma nel sito di qualche università mi pare... cerca con google))
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:07   #5
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
da cancellare

Ultima modifica di variabilepippo : 08-11-2007 alle 16:15.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:11   #6
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
cmq se non sbaglio, il vecchio QB apriva banalmente un flusso su porta aprendo un file di lettura-scrittura
Quale "vecchio QB"? Quello per DOS?

Quote:
Il driver è una soluzione ma nn so se in effetti quanto è poi compatibile con un programma cross platform
Un driver è quanto di meno cross-platform esista, è legato a doppio nodo al sistema operativo e all'hardware specifico. Ovviamente se vuoi implementare un software multi-piattaforma dovrai utilizzare (o scrivere) delle librerie portabili: non esistono dei metodi "standard" per accedere all'hardware...

Quote:
Ma a proposito di crash, a me le API nn sembrano trasparenti e chi dice che siano affidabili
Di sicuro sono molto più affidabili del codice che potrebbe scrivere un "casual programmer", poggiano su un paio di decenni abbondanti di utilizzo su vasta scala e sul lavoro di un numero imprecisato di sviluppatori professionisti.

Fanno esattamente ciò che è descritto nella relativa documentazione, basta studiarsela un po'.

Quote:
e poi su Linux come lo ricompilo...devo mettere nelle mie macchine un pizzo per la M$ ?
Sei liberissimo di scegliere la tua piattaforma di sviluppo, ma se pretendi di usare codice non banale specifico per Linux su Windows (e viceversa) senza alcuna modifica allora forse stai sbagliando qualcosina.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:32   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Purtroppo (o per fortuna) con i sistemi operativi Windows attuali non è possibile accedere direttamente all'hardware...quindi su Windows o usi le API Win32 o usi una libreria che usa le API Win32...non ci sono alternative
Un programma che accede direttamente all'hardware scritto per DOS o per i vecchi Windows da Windows 2000 in poi non funziona più...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:35   #8
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
conosci la libreria libwxctb, è una libreria per la gestione delle porte seriali crossplatform, vai a vedere su www.iftools.com. In effetti i casual programmer sono una versione free del professional programmer e spesso sono i primi a creare qualcosa di innovativo.. poi molti (come me) ritengono che il valore aggiunto del software sia nel codice che forma l'applicazione e non nei so che li devono far girare.. e il cross platform dovrebbe essere l'obiettivo di tutti
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:39   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non la conoscevo, ma se è cross platform dovrebbe fare al caso tuo. Mi immagino che la utilizzerai insieme alle wxWidgets
Hai già fatto qualche prova ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:49   #10
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
Working in slow progress.. cmq se funziona (e spero di si) realizzare un programma che gestisca un sistema embed dovrebbe essere un gioco da ragazzi. Nel senso che i Pic hanno una porta usb e che il driver microchip trasforma in una seriale ed una seriale vera , per cui sotto qualsiasi s.o (WINZOZ compreso) dovrebbe essere facile creare un sw crossplatform con questa libreria...
speriamo che funzioni..
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 16:55   #11
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da norih43 Guarda i messaggi
Working in slow progress.. cmq se funziona (e spero di si) realizzare un programma che gestisca un sistema embed dovrebbe essere un gioco da ragazzi. Nel senso che i Pic hanno una porta usb e che il driver microchip trasforma in una seriale ed una seriale vera , per cui sotto qualsiasi s.o (WINZOZ compreso) dovrebbe essere facile creare un sw crossplatform con questa libreria...
speriamo che funzioni..
non QUALSIASI: solo quelli supportati (che, stando alla documentazione, sono linux e win32).
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 20:57   #12
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
si solo linux e windows ma senza driver ed api ..... Mi chiedo se funzionerà....cmq sarebbe bello sapere se qualcuno è riuscito!
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 21:19   #13
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da norih43 Guarda i messaggi
si solo linux e windows ma senza driver ed api ..... Mi chiedo se funzionerà....cmq sarebbe bello sapere se qualcuno è riuscito!
non e' possibile accedere all'hardware senza passare per il s.o. quindi le api le usano per forza
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2007, 22:33   #14
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da cionci Guarda i messaggi
Non la conoscevo, ma se è cross platform dovrebbe fare al caso tuo. Mi immagino che la utilizzerai insieme alle wxWidgets
Hai già fatto qualche prova ?
In realtà il nome crea confusione, non capisco perchè abbiano chiamato tutte le classi con il prefisso wx, forse intendevano integrarla nella libreria, in realtà è completamente indipendente.
Ho avuto modo di usarla per delle prove a lavoro e fa il suo sporco lavoro wrappando tutto il casino che serve alle Win32 per realizzare una comunicazione seriale non bloccante.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2007, 13:54   #15
Stev-O
Senior Member
 
L'Avatar di Stev-O
 
Iscritto dal: Sep 2005
Città: Opinions are like assholes: anybody has one...
Messaggi: 34290
Quote:
Originariamente inviato da norih43 Guarda i messaggi
da un pò di tempo ho in mente di costruire un sistema di acquisizione dati tramite una porta seriale e di interfacciare un PIC con il Pc... Dato che conoscevo il basic ed il pascal ed avevo voglia di crescere ho deciso di implementare un programma in c++. Volevo realizzare qualcosa cross platform e pensai di usare WXdev-cpp con una libreria free la libwxctb, decisi inoltre di leggere un libro sul c++ [Horstmann] ma mi accorsi che c'era ben poco di quello che volevo trattare....
Qualcuno di voi ha fatto delle esperienze del genere?
Poi una considerazione o meglio uno sfogo, in effetti ho capito che, mentre negli anni 80-90 con un pò di inventiva riuscivi a fare tanto oggi non è più così. Per esempio secondo quanto ho letto, se nn ho capito male, per gestire una seriale in win32 con la benedizione M$ devo usare le API WIN32 ma può essere????? Ma a cosa servono i s.O. di ultima generazione se rendono così difficile gestire l'hW???
con mfc & vs ci sono 3 funzioni da usare e sono le stesse per i file stream
createfile readfile writefile

come stream devi mettere la porta in questo modo:
"COM1:\0" ecc

poi ci sono i vari param tipo numero di caratteri letti e scritti overlap o meno ecc

per l'overlap oltre all'handle devi anche creare la funzione che gestisce l'overlap

per testare puoi usare come controparte hyperterminal settato ansi ecc

se è quello che ti interessava...
__________________
Ну давай !! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cina, bugiardo - stolen conto: non paghi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NON CERCO PIU' UN ALIMENTATORE DECENTE ----------------> LINK
Stev-O è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2007, 18:26   #16
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
mi fai un taglia ed incolla di esempio di una comunivcazione su porta com1 a 2400 bps e fullduplex?
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2007, 20:45   #17
Stev-O
Senior Member
 
L'Avatar di Stev-O
 
Iscritto dal: Sep 2005
Città: Opinions are like assholes: anybody has one...
Messaggi: 34290
qui non posso perchè il codice ce l'ho su un altro pc e riguarda la comunicazione 115200 8N1 senza controllo di flusso

qui non ho neanche i segnalibri sottomano, lunedi' direi

cmq guardi sul tutorial microsoft trovi gli esempi con overlap e senza e i prototipi e parametri li trovi premendo f1 su visualstudio

per i parametri che dici c'e' la classe che gestisce l'handle della porta, basta semplicemente assegnare i parametri, una boiata davvero

più complicato a dirsi che a farsi: si complica leggermente la cosa con overlap
tu per non bloccante intendevi quello ???

perchp la readfile è effettivamente "bloccante" (blocca il controllo del codice) se non usi lìoverlap
__________________
Ну давай !! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cina, bugiardo - stolen conto: non paghi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NON CERCO PIU' UN ALIMENTATORE DECENTE ----------------> LINK
Stev-O è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2007, 11:10   #18
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Stev-O Guarda i messaggi
con mfc & vs ci sono 3 funzioni da usare e sono le stesse per i file stream
createfile readfile writefile

come stream devi mettere la porta in questo modo:
"COM1:\0" ecc

poi ci sono i vari param tipo numero di caratteri letti e scritti overlap o meno ecc

per l'overlap oltre all'handle devi anche creare la funzione che gestisce l'overlap

per testare puoi usare come controparte hyperterminal settato ansi ecc

se è quello che ti interessava...
Scusa ma se c'è già una libreria che gli consente di fare tutto questo semplicemente istanziando un oggetto e usando i metodi open/read/write e oltretutto funzionante anche su linux, non vedo perchè andarsi a sporcarsi le mani con le WIN32.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2007, 17:10   #19
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
Ho provato ad usare sta benedetta libreria..... Ma nn riesco ad installarla su dev-cpp ... qualcuno può aiutarmi........???


norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2007, 17:29   #20
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Ma nn riesco ad installarla su dev-cpp ... qualcuno può aiutarmi.
Premessa: Dev-C++ ormai può essere definito un "giocattolo", ti suggerisco di passare ad un ambiente di sviluppo più recente, meno buggato e soprattutto più professionale.

Cosa intendi con "non riesco ad installarla"? L'hai compilata con MinGW?

Se posso darti un ulteriore suggerimento: installa la nightly build di Code::Blocks, configura l'IDE per usare MinGW ed usa il CodeBlocks project file di libwxctb per compilare la libreria ed il relativo programma dimostrativo.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
Partnership EOLO-Qualcomm: connettivit&a...
Fanatec senza freni: ufficiali il nuovo ...
Instagram, arriva la classificazione PG-...
Microsoft rimuove il blocco all'aggiorna...
Annunciati i vincitori del Leica Oskar B...
Polemiche per il ritorno della Mad Max M...
Leapmotor non si ferma: nuova ammiraglia...
Impulse Space svilupperà un lande...
I 2 mini aspirapolvere più potent...
The Crew 2 diventa finalmente giocabile ...
Sta succedendo davvero: Assetto Corsa Ra...
I 5 smartphone più scontati su Amazon: m...
Disponibilità OxygenOS 16: ecco q...
OxygenOS 16 ufficiale: tutte le novit&ag...
Nio sotto pressione: azioni crollano dop...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v