Pergunta

Eu tenho trabalhado em um projeto incorporado C / C ++ recentemente usando o shell em Tornado 2 como uma forma de depurar o que está acontecendo em nosso kit. O único problema com esta abordagem é que é um sistema complicado e, como resultado, tem um pouco de saída. Tornado 'prestativamente' rola a janela cada vez alguma informação nova chega o que significa que se você detectar um erro, ele desaparece fora do local muito rapidamente para ver. Cada vez que você vá para cima para olhar, o sistema adiciona mais informações, por isso a única maneira de vê-lo é desconectar o hardware.

Eu adoraria saber se alguém tem uma maneira de redirecionar a saída do Tornado?

Eu estava esperando que pode haver uma maneira de registrar tudo a partir de um aplicativo de python pequeno para que eu possa aplicar filtros para as informações recebidas. Eu tentei ligar para o processo de Tornado, mas a janela com a informação não é um CEditCtrl padrão para que extrair o texto dessa forma era um beco sem saída.

Qualquer idéias alguém?

[Edit] eu deveria ter mencionado que estamos executando apenas Tornado 2.1.0 e atualização para uma versão mais recente está além do meu controle.

[Edit2] A janela em questão Tornado é um 'AfxFrameOrView42' de acordo com WinID.

Foi útil?

Solução

aqui é uma outra maneira potencial:

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

Isto irá redirecionar todas atividade stdout para o arquivo que você abriu. Você pode ter que brincar com o nome do arquivo aberto para torná-lo escrever no host (por exemplo, use "host: /myfile.txt" ou algo assim)

Outras dicas

O shell anfitrião tem uma capacidade de gravação embutido. Existem 3 variáveis ??de ambiente disponíveis (em 6.x - não disponível no 5.x):

Record (on / off): Controlos de gravação do shell
RECORD_TYPE (input / output / all): determina o que você vai gravar
RECORD_FILE:. Nome do arquivo para salvar as coisas

você usar o comando? ShConfig para configurar a variável de ambiente shell. ? ShConfig por si só mostra as variáveis. Aqui está como eu meu set up:


-> ?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'.

Eu estou fazendo a suposição de que você está usando o shell de host para executar esta.

Se você estiver executando um teste lançando-a do shell como "runTest ()", você pode usar o operador de redirecionamento (>) para enviar a saída dessa função para um arquivo de texto em sua máquina host.

 > runTest() > mytestResults.txt

Isto vai poupar qualquer saída que gera runTest ao mytestResults.txt arquivo

Se você gostaria de tudo captura na tela o tempo todo, eu vou ter que cavar mais para isso.

rlogin vxWorks-alvo | tee redirecionada-output.txt

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top