RE:Comunicacion con serial
/*------------------------------------------------------------------------------
Purpose: inicializar el control mscomm32.ocx para que abra el puerto
adecuado con los parametros indicados en este caso yo lo manejo asi:
[Bascula]
PUERTO=com2
PUERTOCONFIG=9600,8,n,1
;BAUD=9600
;PARITY=No
;STOPBITS=1
;DATABITS=8
Parameters: <none>
Notes:
------------------------------------------------------------------------------*/
DEFINE VAR vPORT AS CHAR NO-UNDO.
DEFINE VAR vPORTCONFIG AS CHAR NO-UNDO.
DEFINE VAR vPortNumber AS INTEGER NO-UNDO.
GET-KEY-VALUE SECTION "Bascula"
KEY "PUERTO"
VALUE vPort.
IF vPORT = ? THEN DO:
PUT-KEY-VALUE SECTION "Bascula" KEY "PUERTO" VALUE "COM2".
ASSIGN vPORT = "COM2".
END.
ASSIGN vPortNumber = INTEGER(SUBSTRING(vPORT, 4, 1)) NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
END.
MESSAGE vPortNumber.
GET-KEY-VALUE SECTION "Bascula"
KEY "PUERTOCONFIG"
VALUE vPortConfig.
IF vPortConfig = ? THEN DO:
PUT-KEY-VALUE SECTION "Bascula" KEY "PUERTOCONFIG" VALUE "9600,8,n,1".
ASSIGN vPortConfig = "9600,8,n,1".
END.
ASSIGN chCtrlFrame:CommPort = vPortNumber
chCtrlFrame:SETTINGS = vPortConfig.
ya una vez que tienes configurado el puerto comm haces lo siguiente
en este caso tengo un bascula muy comun tore----
y para mandar y recibir la informacion se hace de la siguiente manera
DEFINE VAR vd-capturapeso AS CHAR NO-UNDO.
IF NOT chCtrlFrame:MSComm:PortOpen THEN
ASSIGN chCtrlFrame:MSComm:PortOpen = TRUE.
PAUSE 0.
ASSIGN
chCtrlFrame:MSComm:OUTPUT = "P"
vCaptura = chCtrlFrame:MSComm:INPUT.
ESPERO QUE TE SEA DE UTILIDAD