2017-01-12 1 views
0

Ich führe ein T32 CMM-Skript wie folgt über die Befehlszeile (in eine Python-Wrapper), aber ich möchte den Status von T32 wissen, ob das Skript erfolgreich ausgeführt wurde oder gab es einen Fehler, wie kann ich das Feedback von T32?Wie bekomme ich nach dem Ausführen von cmm-Skripten Feedback von T32?

cd C:\T32\bin\windows64 

Config.t32:

RCL=NETASSIST 
PORT=20000 
PACKLEN=1024 

; Environment variables 
OS= 
ID=T32 
TMP=C:\Users\jhigh\AppData\Local\Temp 
SYS=C:\T32 


PBI= 
USB 

; Printer settings 
PRINTER=WINDOWS 

Nutzung: -

t32marm.exe -s c:\Temp\vi_chip_cmd_line.cmm \\Filerlocation\data\files 

enter image description here

enter image description here

+0

Sollte die TRACE32-Anwendung auch beendet werden, wenn das Skript fertig ist? Oder möchten Sie den Ausführungsstatus Ihres Skripts über die Remote-API von TRACE32 überprüfen? – Holger

+0

Holger - Danke für Ihre Antwort ... es sollte nicht quittieren, wollen den Ausführungszustand zu überprüfen, sobald fertig ist die TRACE32-Anwendung im laufenden Zustand in einem erfolgreichen Fall – kemosabee

Antwort

2

Die TRACE32 „API für Remote Control und JTAG Access "ermöglicht Ihnen die Kommunikation mit einer laufenden TRACE32-Anwendung.

Um die API für Ihre TRACE32-Anwendung zu aktivieren, fügen Sie einfach die folgenden zwei Zeilen zu Ihrer TRACE32-Startkonfigurationsdatei ("config.t32") hinzu. Leere Zeilen vor und nach den beiden Zeilen sind Pflichtfelder.

RCL=NETASSIST 
PORT=20000 

Die Nutzung der API ist in der PDF api_remote.pdf beschrieben, die im PDF-Ordner Ihrer TRACE32-Installation ist, oder Sie können es von http://www.lauterbach.com/manual.html

downloaden Sie Beispiele finden, wie man verwendet der Remote-API mit Python auf http://www.lauterbach.com/scripts.html (einfach die Seite für "Python" suchen)

wenn Ihre Praxis Skript zu überprüfen ("vi_chip_cmd_line.cmm") läuft noch, verwenden Sie die API-Funktion T32_GetPracticeState();

Ich schlage auch vor, eine künstliche Variable am Anfang Ihres Skripts mit Var.NEWGLOBAL int \state zu erstellen. Setzen Sie die Variable "\ state" während des Skripttests mit Var.Set \state=42 auf ansteigende Werte. Über den TRACE32-Befehl EVAL Var.VALUE(\state) und den API-Aufruf T32_EvalGet() können Sie den aktuellen Wert der Variablen "\ state" ermitteln und so überprüfen, ob Ihr Skript seinen Endzustand erreicht hat. Ein anderer Ansatz wäre, eine Protokolldatei von Ihrem PRACTICE-Skript ("vi_chip_cmd_line.cmm") zu schreiben, indem Sie den TRACE32-Befehl APPEND verwenden und die Protokolldatei aus Ihrem Python-Skript lesen.

+0

Wenige Fragen 1.Ich schaute auf die Python-Skripte, konnte ich nicht Finde einen mit 'T32_GetPracticeState' 2.Kannst du' Var.Set \ state = 42' erklären, warum müssen wir 42 benutzen? Ich muss immer noch versuchen, um zu sehen, ob ich mit allem, was Sie festgelegt haben, – kemosabee

+0

einbauen kann. Ich habe die DLL in der t32apicmd.py fest programmiert, um 't32api = r'C zu verwenden: \ T32 \ demo \ api \ capi \ dll \ t32api.dll'', bekomme ich den untenstehenden Fehler, wie kann ich herausfinden, die richtige dll zu verwenden und wo bekomme ich es? 'Traceback (jüngste Aufforderung zuletzt): File "t32apicmd.py", Linie 152, in main (sys.argv [1:]) File "t32apicmd.py", Zeile 87, in dem Haupt t32api.T32_Config (b "NODE =", node.encode ('latin-1')) AttributError: 'str' Objekt hat kein Attribut 'T32_Config' ' – kemosabee

+0

Über 42: Dies war nur ein Beispiel. Sie können einen beliebigen numerischen Wert zuweisen. Sie können auch den Namen der Variablen ändern. (Es muss nur mit einem Backslash beginnen) – Holger

1

Überprüfen Sie Ihre T32-Installation für eine Demo zur Verwendung der T32-API (demo/api/python). Beachten Sie, dass es ohne eine gültige Lizenz nicht funktioniert. Es ist auch wichtig, dass Sie die 32-Bit-DLL laden müssen, wenn Sie Python innerhalb von 32-Bit-Cygwin auf einem 64-Bit-Host verwenden.

Konfiguration:

RCL=NETASSIST 
PORT=20000 
PACKLEN=1024 

Python-Skript:

import platform 
import ctypes 

# Adjust the path/name to the DLL 
t32api = ctypes.CDLL("./t32api64.dll") 

t32api.T32_Config(b"NODE=",b"localhost") 
t32api.T32_Config(b"PORT=",b"20000") 
t32api.T32_Config(b"PACKLEN=",b"1024") 

t32api.T32_Init() 
t32api.T32_Attach(1) 
t32api.T32_Ping() 

t32api.T32_Cmd(b"AREA") 

t32api.T32_Exit() 

Dann können Sie die Befehle/Techniken verwenden, die Holger vorgeschlagen hat:

T32_GetPracticeState() 

den aktuellen Laufzustand zu versetzen der Praxis.Und/oder eine Variable in Ihrem Skript gesetzt

Var.Assign \state=1 
Var.Assign \state=2 
.... 

und dann T32_ReadVariableValue abfragen mit()

+0

dev15 - Danke für Ihre Antwort ... Ich habe keine t32rem.exe, ich sehe nur t32marm.exe, t32pbi.exe, t32start.exe, t32win.exe, trace32.api Ich bin auf einem Windows7-Rechner und mit t32api. dll, meine Firewall ist aus und ich habe eine Lizenz .... aktualisiert die Frage mit Screenshots..I führen Sie das Skript, das Sie zur Verfügung gestellt ..es wirft keinen Fehler weder es führt den Befehl "AREA", Ich vermisse etwas sehr offensichtlich .... kann ich Remote-Support auf diesem einen? wirklich zu schätzen wissen, wenn Sie mich auf eine Person verweisen, die Remote-Support bieten kann – kemosabee

Verwandte Themen