In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Ayuda con comando RUN

Foro público de Xailer en español
Responder
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Ayuda con comando RUN

Mensaje por perolero »

Hola:
Necesito enviar un mandato MS-DOS al puerto serie y gao lo siguiente:
RUN "MODE COM1:19200,N,8,1"
y funciona perefctamente, pero lo que necesito es que este mandato se ajuste a las caracteristicas del puerto serie al que lo quiero enviar, para lo cual tengo en el fichero Empresa los valores adecuados.
Doy el siguiente mandato y no funciona:
RUN "MODE COM1:" + LTRIM(STR(::oEmpresa:Velocidad)) + "," + ::oEmpresa:Paridad + "," + LTRIM(STR(::oEmpresa:BitsDatos)) + "," + LTRIM(STR(::oEmpresa:BitsStop)))
pruebo de esta otra forma y tampoco:
RUN "'MODE COM1:' + LTRIM(STR(::oEmpresa:Velocidad)) + ',' + ::oEmpresa:Paridad + ',' + LTRIM(STR(::oEmpresa:BitsDatos)) + ',' + LTRIM(STR(::oEmpresa:BitsStop)"
alguien me puede decir que estoy haciendo mal.
Un saludo.
Emilio Gil.
Avatar de Usuario
emeasoft
Mensajes: 1094
Registrado: Mié Abr 01, 2009 4:12 pm
Ubicación: emeasoft
Contactar:

Ayuda con comando RUN

Mensaje por emeasoft »

Emilio:
NOTA: Esto no funcionará en Windows Vista / 7.
Tendrá que utilizar HBCOMM.LIB.
Sin embargo probar:
RUN( 'MODE COM1:' + LTRIM(STR(::oEmpresa:Velocidad)) + ',' + ::oEmpresa:Paridad + ',' + LTRIM(STR(::oEmpresa:BitsDatos)) + ',' + LTRIM(STR(::oEmpresa:BitsStop) )
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Ayuda con comando RUN

Mensaje por perolero »

Hola Mario:
Efectivamente yo tengo instalado Windows 7 y no funciona, me podrí­as decir como hacerlo con HBCOMM.LIB
Anticipadamente gracias.
Emilio Gil.
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Ayuda con comando RUN

Mensaje por Christian »

nHandle:=Init_Port( 'COM1', 9600, 8, 0, 0, 250 )
Init_Port("Com","Núm.Baudios","Bits de Datos","Paridad","Bits de Parada")
El 26/04/2011 11:18 a.m., Emilio Gil escribió:
> Hola Mario:
>
> Efectivamente yo tengo instalado Windows 7 y no funciona,
> me podrí­as decir como hacerlo con HBCOMM.LIB
>
> Anticipadamente gracias.
>
> Emilio Gil.
>
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Ayuda con comando RUN

Mensaje por perolero »

Hola Mario:
Si precisamente ese post lo escribí­ yo mismo, pero ya le digo, no consigo abrir el puerto si no es con la orden directa
RUN "MODE COM1:19200,N,8,1"
Un saludo,
Emilio Gil.
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Ayuda con comando RUN

Mensaje por zeasoftware »

Hace unas lunas, alguien puso el codigo siguiente, yo lo uso y me funciona
para comandos DOS.
/----------------------------------------------------------- -------------------
FUNCTION MYRUN(cComando, nStyle, lWait, lShowResult)
LOCAL oShell, RET, lRetorno:=.T., oErro
*
IF OS_IsWin9x() .or. OS_IsWin98()
RUN (cComando)
ELSE
IF valtype( nStyle ) != "N"
nStyle := 0
ENDIF
IF ValType( lWait ) != "L"
lWait := .T.
ENDIF
IF ValType( lShowResult ) != "L"
lShowResult := .F.
ENDIF
*
TRY
oShell := CreateObject( "WScript.Shell" )
IF !GetEnv( "OS" ) == "Windows_NT"
cComando += "start " + cComando
ENDIF
RET := oShell:Run( "%comspec% /c " + cComando, nStyle, lWait )
IF lShowResult .AND. RET > 0 .and. RET <= 32
MessageBox(,"Erro Win_Run(): " + Str( RET,,, .t. ))
ENDIF
oShell := NIL
lRetorno:=(RET==0)
CATCH oErro
TRY
RUN (cComando)
CATCH oErro
MessageBox(,'Erro ao rodar MYRUN()')
END
END
ENDIF
RETURN lRetorno
//---------------------------------------------------------- --------------------
"Emilio Gil" escribió en el mensaje de
noticias:4db70343$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola Mario:
Si precisamente ese post lo escribí­ yo mismo, pero ya le
digo, no consigo abrir el puerto si no es con la orden
directa
RUN "MODE COM1:19200,N,8,1"
Un saludo,
Emilio Gil.
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
Avatar de Usuario
xhermita
Mensajes: 177
Registrado: Vie Feb 18, 2011 10:05 pm
Ubicación: Las Palmas de Gran Canaria
Contactar:

Ayuda con comando RUN

Mensaje por xhermita »

Prueba a poner un logDebug ("MODE COM1:" +
LTRIM(STR(::oEmpresa:Velocidad)) + "," + ::oEmpresa:Paridad + "," +
LTRIM(STR(::oEmpresa:BitsDatos)) + "," + LTRIM(STR(::oEmpresa:BitsStop)))
Y comprueba si la cadena corresponde con lo que tu quieres que se
ejecute en el RUN
Cuidado con los paréntesis que aquí­ sobra uno
> Doy el siguiente mandato y no funciona:
>
> RUN "MODE COM1:" + LTRIM(STR(::oEmpresa:Velocidad)) + "," +
> ::oEmpresa:Paridad + "," + LTRIM(STR(::oEmpresa:BitsDatos))
> + "," + LTRIM(STR(::oEmpresa:BitsStop)))
>
Y aquí­ falta uno
> pruebo de esta otra forma y tampoco:
>
> RUN "'MODE COM1:' + LTRIM(STR(::oEmpresa:Velocidad)) + ',' +
> ::oEmpresa:Paridad + ',' + LTRIM(STR(::oEmpresa:BitsDatos))
> + ',' + LTRIM(STR(::oEmpresa:BitsStop)"
>
Pedro Amaro
2PC Service

Xailer / Néfele / MySQL-MariaDB / SQLServer
Avatar de Usuario
Marcelo Coelho Silva
Mensajes: 269
Registrado: Sab May 31, 2008 4:49 pm
Ubicación: Brasil
Contactar:

Ayuda con comando RUN

Mensaje por Marcelo Coelho Silva »

Emilio,
A melhor solução para conecção serial (COM1,COm2,etc) é utilizar a
HBCOMM.LIB.
No caso do comando RUN, voce esta abrindo uma nova seção no emulador de
DOS do Windows (XP/VISTA/7) e após a execução do comando solicitado,
esta seção será fechada perdendo seus efeitos.
Atenciosamente,
Marcelo Coelho Silva
Brasil.
Em 26/04/2011 07:51, Emilio Gil escreveu:
> Hola:
>
> Necesito enviar un mandato MS-DOS al puerto serie y gao
> lo siguiente:
>
> RUN "MODE COM1:19200,N,8,1"
>
> y funciona perefctamente, pero lo que necesito es que este
> mandato se ajuste a las caracteristicas del puerto serie al
> que lo quiero enviar, para lo cual tengo en el fichero
> Empresa los valores adecuados.
>
> Doy el siguiente mandato y no funciona:
>
> RUN "MODE COM1:" + LTRIM(STR(::oEmpresa:Velocidad)) + "," +
> ::oEmpresa:Paridad + "," + LTRIM(STR(::oEmpresa:BitsDatos))
> + "," + LTRIM(STR(::oEmpresa:BitsStop)))
>
> pruebo de esta otra forma y tampoco:
>
> RUN "'MODE COM1:' + LTRIM(STR(::oEmpresa:Velocidad)) + ',' +
> ::oEmpresa:Paridad + ',' + LTRIM(STR(::oEmpresa:BitsDatos))
> + ',' + LTRIM(STR(::oEmpresa:BitsStop)"
>
> alguien me puede decir que estoy haciendo mal.
>
> Un saludo.
>
> Emilio Gil.
>
Att.

Marcelo Coelho Silva
Brasil.
Responder