PDA

Visualizza la versione completa : [C] Porta seriale


RaouL_BennetH
04-01-2005, 16:18
Salve ragazzi, buon anno a tutti per prima cosa

Ora, vi espongo il mio piccolo problema:

In visual basic 6, ho fatto una piccola applicazione che mi permette di leggere e memorizzare su un file alcuni input che mi vengono da un dispositivo collegato alla porta seriale.

Il mio problema adesso č che dovrei fare la stessa cosa ma in linguaggio C. Il motivo č che il programma deve girare su una macchina linux. QUello che dovrei fare č piuttosto semplice (per chi ovviamente č esperto di C ).

Si tratta semplicemente di leggere l'input da un dispositivo collegato alla porta seriale. Ho scaricato tonnellate di guide ma, sembra che siano quasi tutte orientate al turbo C, con la conseguenza che includono delle librerie non presenti in ambito linux. Quello che io dovrei realizzare invece, dev'essere in ANSI C 99, quindi, rispettare in pieno quello che č lo standard. Mi aiutate per favore?

Thx.

RaouL.

P.S.: ho fatto delle ricerche nel forum ma non hanno avuto esito. Plz. help me!!

netarrow
05-01-2005, 15:21
Potresti usare serial.h (http://www.italios.it/os1/serial_8h-source.html), nello stesso sito si trova anche serial.c (http://www.italios.it/os1/serial_8c-source.html) che ne mostra l'utilizzo.

:ciauz:

netarrow
05-01-2005, 15:30
QUI (http://www.easysw.com/~mike/serial/serial.html) c'č una bella guida per uasre la porta seriale che usa altri metodi.

:ciauz:

netarrow
05-01-2005, 15:38
da quel poco che capisco io, in linux basta aprire i file

/dev/ttyS0
/dev/ttyS1

e scriverci/leggerci dentro :master:

Cmq i linik sopra sono per standar POSIX, per l'ANSI prova ad intervenire cmq sui file.

:ciauz:

i'mshady
06-01-2005, 13:03
alcuni compilatori ti permettono di inserire righe asm, ad esempio:



asm {
mov dx, 3F8h ;l'indirizzo di una porta seriale
mov al, 255
out dx, al
}

...

RaouL_BennetH
07-01-2005, 00:38
Grazie mille per le risposte ragazzi :)

Comincerņ a leggere le guide che mi avete postato.

Thx. in caso di problemi vi ri-rompo :D

Loading