shell redirect embedded vxworks

¿Cómo redirecciono la salida de shell de Tornado/VXWorks?



redirect embedded (4)

Estoy asumiendo que está utilizando el shell host para realizar esto.

Si está ejecutando una prueba al iniciarla desde el shell como "runTest ()", puede usar el operador de redirección (>) para enviar el resultado de esa función a un archivo de texto en su equipo host.

> runTest() > mytestResults.txt

Esto guardará cualquier resultado que runTest genere en el archivo mytestResults.txt

Si desea capturar todo en la pantalla todo el tiempo, tendré que profundizar más en esto.

Recientemente he estado trabajando en un proyecto incrustado de C / C ++ utilizando el shell de Tornado 2 como una forma de depurar lo que está sucediendo en nuestro kit. El único problema con este enfoque es que es un sistema complicado y, como resultado, tiene un poco de rendimiento. Tornado ''amablemente'' recorre la ventana cada vez que llega información nueva, lo que significa que si detecta un error, desaparece del sitio demasiado rápido para ver. Cada vez que te desplazas hacia arriba para mirar, el sistema agrega más información, por lo que la única forma de verlo es desconectando el hardware.

Me encantaría saber si alguien tiene una forma de redirigir la salida de Tornado.

Esperaba que pudiera haber una forma de registrarlo todo desde una pequeña aplicación de Python para poder aplicar filtros a la información entrante. Intenté conectarme con el proceso Tornado, pero la ventana con la información no es un CEditCtrl estándar, por lo que extraer el texto de esa manera era un callejón sin salida.

¿Alguna idea a alguien?

[Editar] Debería haber mencionado que solo estamos ejecutando Tornado 2.1.0 y que la actualización a una versión más reciente está fuera de mi control.

[Editar2] La ventana en cuestión en Tornado es un ''AfxFrameOrView42'' según WinID.


rlogin vxWorks-target | tee redirected-output.txt


aquí hay otra manera potencial:

-> saveFd = open("myfile.txt",0x102, 0777 ) -> oldFd = ioGlobalStdGet(1) -> ioGlobalStdSet(1, saveFd) -> runmytest() ... -> ioGlobalStdSet(1, oldFd)

esto redireccionará toda la actividad stdout al archivo que abrió. Es posible que tenga que jugar con el nombre de archivo abierto para hacerlo escribir en el host (por ejemplo, use "host: /myfile.txt" o algo así)


El shell de host tiene una capacidad de grabación integrada. Hay 3 variables de entorno disponibles (en 6.x, no disponible en 5.x):

RECORD (on / off): Controla la grabación del shell
RECORD_TYPE (entrada / salida / todo): determina lo que grabará
RECORD_FILE: nombre de archivo para guardar cosas en.

utiliza el comando? shConfig para configurar la variable de entorno del shell. ? shConfig por sí mismo muestra las variables. Así es como configuré el mío:

-> ?shConfig ... RECORD = off RECORD_FILE = C:/test.txt RECORD_TYPE = output ... -> ?shConfig RECORD_TYPE all -> ?shConfig RECORD_FILE myData.txt -> ?shConfig RECORD on Started recording commands in ''myData.txt''.