Beiträge von michael1959

    Hallo blackjack,

    ich was die ersten 3 Wochen im Januar unterwegs und habe Deine Antwort erst jetzt gelesen.

    Danke dafür!

    Allerdings fange ich mit Python gerade erst an und ich muss sagen, dass Dein Code mich schwindelig gemacht hat ;)

    Ich werde mir das in den nächsten Tagen mal ansehen und versuchen, zu verstehen.

    Beste Grüße, Michael

    Ich bin immer an Return-Anweisung gescheitert. Auch im Python 3 Buch von Michael Weigend habe ich nichts Entscheidendes gefunden. Gestern Abend habe ich dann in einem anderen Forum den wichtigen Hinweis gefunden: Mit Return wird die Variable nur an die aufrufende Funktion zurückgegeben.

    Darum haben auch meine "Schnipsel", die ich ich geschrieben habe, um Teile des Programms zu testen, nicht funktioniert.

    Jetzt komme ich bestimmt ein Stück weiter. Die Abfrage der A/D-Wandler über I2C funktioniert jedenfalls.....

    Vielen Dank und eine schöne Zeit,

    Michael

    Hallo,

    der Plan ist, mit den Abfragen nach FRAM, Reader und Sonderbauform entsprechende Variablen zu setzen. Anhand dieser Variablen, wird dann im späteren Ablauf des Programms entschieden, ob z.B. das FRAM getestet werden soll. Dies würde durch einen Befehl via RS232 an die zu testende Baugruppe angeregt werden. Den Test des FRAMs übernimmt dann der Prozessor dieser Baugruppe und meldet das Ergebnis über die RS232 zurück.

    Beim Reader wird ähnlich verfahren.

    Das Programm auf der Baugruppe gibt es schon und funktioniert. Das ist natürlich nicht von mir. Ich bekomme lediglich eine Tabelle, mit welchen Befehlen ich was anstoßen kann.

    Grüße und frohe Weihnachten an alle,

    Michael

    Vorweg mal ein paar Infos, was dieses Testsystem am Ende tun soll:

    Es soll eine Baugruppe getestet werden, die ich entwickelt und designed habe und die es inzwischen in 10 Hardware-Versionen gibt. Was diese Baugruppe macht, kann man hier nachlesen: https://www.indyon.com/de/track-race/hardware/

    Die Baugruppe wird über 56 Kontakte an die Testhardware adaptiert. Die Outputs des RPi schalten die Relais der Test-HW. Über den I2C-Bus frage ich zwei A/D-Wandler der Test-HW ab.

    Über eine serielle Schnittstelle des RPi (USB-RS232-Wandler) kommuniziert die Test-SW mit der zu testenden Baugruppe.

    Zudem kann die Baugruppe (und das in allen Versionen ) zusätzlich mit einem FRAM und/oder mit einem RFID-Reader-Modul ausgestattet sein. Außerdem gibt es eine Sonderbauform, bei der 2 Kontakte als Sabotagekontakte ausgelegt sind.

    Jetzt zur Test-SW.

    1. Abfrage der HW-Version

    2. 3 Abfragen nach FRAM, Reader und Sonderform

    3. Schalten der Relais, um die Test-HW an die HW-Version der Baugruppe anzupassen

    4. Mit Relais Versorgungsspannung einschalten

    5. 4 Abfragen nach den LED der verschiedenen Spannungen auf der Baugruppe


    Das ist das, was der Code zur Zeit machen soll.

    Alles verständlich soweit?

    Hallo Dennis,

    so ganz verstehe ich den Vorgang nicht. Wird ja auch, wenn man bedenkt, dass in jedem Testschritt 3 Variablen (testschritt, testpass und testfail) nur für die spätere Testauswertung benötigt werden, ziemlich aufwändig. Das geht wahrscheinlich einfacher....allein mir fehlt das Wissen ;)

    Grüße

    Michael

    Danke für den Hinweis, ich lösche meinen vorherigen Post.

    Hallo zusammen,

    ich hatte hier schon mal zum Testprogramm nachgefragt. Dann hat mir ein freundlich User seinen Code zugeschickt. Den habe ich nun erstmal so umgeschrieben, damit ich besser verstehe wieso, weshalb und warum.

    Hier zuerst der Code und dann meine Frage:

    test_t+r_V0_02.py

    Wenn ich das Programm auf der Konsole starte und bei den Frage nach den verbauten Elementen ankomme, wird das Ergebnis der Frage in der Konsole ausgegeben und das Programm wartet auf ein Enter.

    Wenn dann im Programm die 3V3 abgefragt werden, wird ebenfalls das Ergebnis in der Konsole ausgegeben. Nach d Eingabe von Enter erscheint dann folgende Fehlermeldung: UnboundLocalError: local variable 'testschritt' referenced before assignment

    Soweit ich das verstehe, beruht das Ausgeben der Ergebnisse auf dem return in Zeile 107.Ich weiß nur nicht, wie ich das abfangen und an eine Variable übergeben kann.

    Die Fehlermeldung verstehe ich überhaupt nicht. Ich habe die Variable testschritt doch schon in Zeile 23 definiert.

    Beste Grüße

    Michael

    hyle: Ist tatsächlich Python 3.7.3

    Python 3.7.3 (/usr/bin/python3)

    >>> %Run test2.py

    TERM environment variable not set.

    Welche Version soll getestet werden (z.B. 2.1)? 2.1

    Leuchtet die 5V-LED? j/n j

    Leuchtet die 3,3V-LED? j/n n

    Versorgungsspannung 5V ........................... pass

    Versorgungsspannung 3V ........................... fail

    >>>

    Hallo,

    danke für die vielen Tipps.

    Ich benutze python 3.7.3, nicht python 2.

    @DeaD_EyE : Vielen Dank für Deinen Code. Da muss ich mich erstmal durcharbeiten, um ihn zu verstehen. Läuft in Thonny einwandfrei, im Terminal meckert Linux über die Umlaute.

    Beste Grüße, Michael

    Hallo nochmal,

    die Fehlermeldung kommt aber schon, wenn ich im Terminal auf die Abfrage, ob ein FRAM verbaut ist, mit j oder n antworte.

    in Zeile 38 wird die Version abgefragt. Eingabe 2.1

    In Zeile 39 wird nach dem FRAM gefragt.

    Hier nochmal die komplette Ausgabe:

    Welche Version soll getestet werden (z.B. 2.1)? 2.2

    Ist ein FRAM verbaut? j/n j

    Traceback (most recent call last):

    File "testprogramm.py", line 39, in <module>

    fram = str(input("Ist ein FRAM verbaut? j/n "))

    File "<string>", line 1, in <module>

    NameError: name 'j' is not defined

    Hier folgt der ganze Code (soweit wie ich bin):

    Hallo zusammen,

    ich fange gerade an ein Prüfprogramm zu erarbeiten. In diesem Programm werden vor Beginn des eigentlichen Tests der Baugruppe ein paar Abfragen zur Version etc des Prüflings gestellt.

    Die Abfrage:

    fram = str(input("Ist ein FRAM verbaut? j/n "))

    läuft in Thonny ohne Fehlermeldung durch.

    Wenn ich das Programm in der Konsole starte, erhalte ich folgende Meldung:

    Traceback (most recent call last):

    File "testprogramm.py", line 39, in <module>

    fram = str(input("Ist ein FRAM verbaut? j/n "))

    File "<string>", line 1, in <module>

    NameError: name 'j' is not defined

    Da ich gerade erst mit Python begonnen habe, kann ich mir keinen Reim auf diese Meldung machen. Recherche im Netz hat bis jetzt auch nichts ergeben.

    Ich hoffe, es kann mir jemand helden.

    Grüße

    Michael

    Hallo zusammen,

    hier eine kurze Vorstellung meinerseits:

    Mein Name ist Michael und ich bin 61 Jahre alt. Ich wohne in Rechtenfleth, einem kleinen Dorf an der Weser zwischen Bremen und Bremerhaven.

    Während meines Berufslebens habe ich Hardware entwickelt. Jetzt, da ich in Pension bin, werde ich mich mehr mit Software ( Python) beschäftigen.

    Ich habe mir einen Raspberry angeschafft, da ich mit ihm Prüfsysteme für Hardware bauen möchte. Dafür muss ich mich aber noch reichlich in Python einarbeiten, wobei ich schon gemerkt habe, dass das eine völlig andere Herangehensweise ist als bei der Hardware-Entwicklung.

    Ich bin gespannt.....

    Liebe Grüße, Michael