para fox de dos
run mode COM1,9600,E,7,1
abre=fopen('COM1',12)
if abre>0
leer=fread(abre,8) && asi lees el puerto com1
cierra=fclose(abre)
endif
evidentemente faltan muchas cosas pero es la idea ..
para visual :
m.puerto=1 && el numero del comm por supuesto dentro de un form y con el mscomm32.ocx
thisform.puerto.commport=m.puerto
thisform.puerto.settings='9600,e,7,1'
&& Estas dos lineas anteriores equivalen en dos a 'run mode com1,9600,e,7,1' , es decir
&& abrir el puerto y pasarle los parametros de comunicaciones
thisform.puerto.portopen=.T.
&& Esta linea anterior equivale a 'abre=fopen("COM1",X)' donde X sera el modo de apertura
if thisform.puerto.portopen
thisform.puerto.inputlen=8 && este el tamaño de lo que quiero leer (no siempre lo sabes)
m.leido=""
m.leido=thisform.puerto.input
thisform.leido.refresh && solo para comprobar que esta leyendo
thisform.puerto.portopen=.F. && cerramos el puerto
else
m.leido="Puerto erróneo"
endif
por supuesto te puedes complicar mucho mas