Newsgroup: it.comp.aiuto
Titolo: RICHIESTA DI AIUTO: come si gestisce sotto interrupt la linea seriale in MsWindows

 Inizio con un saluto per chi sta leggendo questa mia piccola richiesta di
informazioni e passo quindi immediatamente all'oggetto in questione: avrei la
necessita` di scrivere un software che utilizzi la linea seriale (COMx:) sotto
Windows 3.11 (e magari W95) per gestire un protocollo di comunicazione (anche
questo auto costruito) con un qualsiasi dispositivo di mia creazione connesso
fisicamente al PC via RS232 ovviamente; dove posso trovare informazioni su come
utilizzare questa risorsa sotto Windows, magari scrivendo una funzione sotto 
interrupt che serva direttamente l`interfaccia hardware (le UART)? 
Come risultato finale vorrei poter scrivere un driver che gestisca un 
protocollo
qualsiasi su una COM a scelta; questo driver lo richiamerei, all`occorrenza, 
allo start-up di Windows nel qual caso dova` funzionare in background; 
qualsiasi 
programma che abbia necessita` di comunicare con il dispositivo connesso
alla COM dovra` passare per questo driver.
 Un mille grazie a chiunque mi dara` informazioni.....
                                             Ciao, Marco.

interrupt che serva direttamente l`interfaccia hardware (le UART)? 
ho gia' postato un follow-up ad un altro tuo messaggio simile,
comunque lo ripeto anche qui
.
non ho ben capito se devi scrivere un programma o un driver. Se devi
scrivere un programma di comunicazione non ci sono grossi problemi,
windows ha una serie funzioni per gestire le comunicazioni sulle perte
seriali, non sono un gran che ma funzionano per cui non c'e' nessun
bisogno di scrivere del software a basso livello. In win3.1 le seriali
sono in genere gestite dal comm.drv che non e' il massimo
dell'efficenza, anche perche' non riconosce le UART 16550, comunque
funziona abbastanza bene fino a 19200bps. Win95 funziona molto meglio
e oltretutto potendo lavorare in multithreading e' possibile
realizzare delle comunicazioni in background in modo molto piu'
semplice con in win3.1. Le comunicazioni con altri programmi possono
poi essere gestite in modo standard ad esempio via Ole Automation
oppure via DDE.
Se invece devi scrivere un driver le cose sono decisamente piu'
complesse perche' devi conoscere bene la struttura e il funzionamento
dei drivers di windows, in particolar modo i VXD. Oltretutto i vxd
sono stati pensati per essere scritti in assembly e non e' proprio
semplicissimo scriverli in C.
     _______ _____         
    / _____// ___ \     Gianpaolo Bottin  - 
bott...@mbox.vol.it
 
   / /____ / /__/ /     Bruino (TO) - Italy
  / //_  // ___  <      
 / /__/ // /__/ /       "Se il programma e' stato concepito in modo tale che i dati
/______//______/        incorretti siano rifiutati, ci sara' sempre un idiota 
                        abbastanza ingegnoso per trovare il modo di farli passare."

alla COM dovra` passare per questo driver.
Salve,
io ho scritto un programmino che leggeva dati da una tavoletta via seriale e 
se non hai necessita' estremamente particolari puoi usare tranquillamente il 
COMM.DRV di windows, che ti consente di gestire la linea e di agganciarti 
tramite il messaggio WM_COMMNOTIFY a qualsiasi evento in terssi la porta.
Se questa possibilità non fosse sufficiente non ti resta, credo, che scrive un 
vxd (virtual driver) usando un po' di assembler e sostituirlo ai driver 
normali della seriale (mi pare pero' che in questo modo riinventersti l'acqua 
calda).
Saluti
Francesco

, 
l...@labtele.die.unifi.it
 says...

Grazie Francesco... provero' senz'altro.