Domanda

Di recente ho lavorato su un progetto C / C ++ incorporato usando la shell in Tornado 2 come modo per eseguire il debug di ciò che sta succedendo nel nostro kit. L'unico problema con questo approccio è che è un sistema complicato e, di conseguenza, ha un discreto output. Tornado 'utile' scorre la finestra ogni volta che arrivano nuove informazioni, il che significa che se si rileva un errore, scompare dal sito troppo rapidamente per vederlo. Ogni volta che scorri verso l'alto per cercare, il sistema aggiunge ulteriori informazioni, quindi l'unico modo per visualizzarlo è disconnettere l'hardware.

Mi piacerebbe sapere se qualcuno ha un modo per reindirizzare l'output di Tornado?

Speravo che ci potesse essere un modo per registrare tutto da una piccola app Python in modo da poter applicare i filtri alle informazioni in arrivo. Ho provato a collegarmi al processo Tornado, ma la finestra con le informazioni non è un CEditCtrl standard, quindi estrarre il testo in quel modo era un vicolo cieco.

Qualche idea?

[Modifica] Avrei dovuto menzionare che stiamo eseguendo solo Tornado 2.1.0 e che l'aggiornamento a una versione più recente è fuori dal mio controllo.

[Modifica2] La finestra in questione in Tornado è un 'AfxFrameOrView42' secondo WinID.

È stato utile?

Soluzione

ecco un altro potenziale modo:

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

questo reindirizzerà tutte l'attività stdout al file che hai aperto. Potresti dover giocare con il nome del file dell'open per farlo scrivere sull'host (ad esempio usa " host: /myfile.txt" o qualcosa del genere)

Altri suggerimenti

La shell host ha una capacità di registrazione integrata. Sono disponibili 3 variabili di ambiente (in 6.x - non disponibile in 5.x):

RECORD (on / off): controlla la registrazione della shell
RECORD_TYPE (input / output / all): determina cosa registrerai
RECORD_FILE: nome file in cui salvare le cose.

si utilizza il comando? shConfig per configurare la variabile di ambiente shell. ? shConfig da solo visualizza le variabili. Ecco come ho impostato il mio:


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

Sto assumendo che tu stia usando la shell host per eseguire ciò.

Se stai eseguendo un test avviandolo dalla shell come " runTest () " ;, puoi usare l'operatore di reindirizzamento (>) per inviare l'output di quella funzione a un file di testo sul tuo computer host.

 > runTest() > mytestResults.txt

Ciò salverà qualsiasi output generato da runTest nel file mytestResults.txt

Se vuoi catturare tutto sullo schermo per tutto il tempo, dovrò scavare di più in questo.

rlogin vxWorks-target | tee redirected-output.txt

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top