Jörg W. schrieb: > Veit D. schrieb: >> habe mal nach deinen Testdaten geschaut. > > Die waren noch für den SET PORT Befehl, der ja alle Bits auf einmal > setzen sollte. Okay, Falschinterpretation meinerseits. Sorry. > Weiß nicht, wenn man den Flash des AVRs, der da auf der Steuerung ist, > auslesen könnte, könnte ich mir hier einen Simulator bauen … so ist das > irgendwie ein Fischen im Trüben. Ohne Karte muss man sich auf die Beschreibung verlassen. Wenn das nicht klappt, hat man ein Problem. Wenn da allerdings ein AVR draufsitzt, kann man den eigentlich selbst nach eigenen Wünschen komplett neu programmieren. Müßte allerdings der TO für sich machen. Wenn nicht und der Karten TOGGLE Befehl ein Problem hat, wonach es aktuell aussieht und ich mir das dennoch nicht so richtig vorstellen kann, aber egal, muss man mit SET_SINGLE und DEL_SINGLE leben, was meiner Meinung nach für Relais auch kein Problem darstellt. Werden die entsprechenden Relais kurz nacheinander geschalten und nicht zeitgleich. Allerdings sollte der TO nochmal mit gezielten Mustern testen. Ob aktuell alle Bits nur eingeschalten werden können und nie aus. Oder ob irgendwas ganz anders reagiert wie gedacht. Noch eine Frage. Die Karte ist nicht defekt oder so? Die hat bis "jetzt" immer genauso funktioniert wie gewünscht? Bis später ...
Veit D. schrieb: > Allerdings sollte der TO nochmal mit gezielten Mustern testen. Ob > aktuell alle Bits nur eingeschalten werden können und nie aus. Oder ob > irgendwas ganz anders reagiert wie gedacht. Noch eine Frage. Die Karte > ist nicht defekt oder so? Die hat bis "jetzt" immer genauso funktioniert > wie gewünscht? Mahlzeit zusammen. Vergessen den Wecker zu stellen und gerade erst aus dem Bett gekrabbelt, ist das zu glauben ? :) Also ich mache erst mal Kaffee und teste dann die Karte. Die Karte die ich zum Testen nehme ist ein Schwestermodell, habe also 2 Stück davon. Habe es Gegengeprüft, die Ersatzkarte funktioniert am COM pc mit dem Programm von Thomas Dohl 1:1 so wie die im Einsatz befindliche Karte. Da diese sich aber in der Küche befindet ist es mit der Schwesterkarte die neben mir liegt einfacher das Verhalten zu beobachten. Ich lege gleich los Poste dann gegen 1400 die Ergebnisse. Falls alle Stricke reißen könnte ich die Schwesterkarte auch eintüten und Verschicken. LG
:
Bearbeitet durch User
So, los gehts: Sequenz 1 : /relais -d /dev/ttyUSB0 -e -s xxxxxxxx got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 0 Connection timeout (select failed). FAIL: 253 1 0 255 Sequenz 2 : ./relais -d /dev/ttyUSB0 -e -s 00000000 got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 0 Connection timeout (select failed). FAIL: 253 1 0 255 Sequenz 3 : ./relais -d /dev/ttyUSB0 -e -s xxxxxxx1 got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 0 Setze Bits 1 FAIL: 249 1 1 0 Sequenz 4 :./relais -d /dev/ttyUSB0 -e -s 11111111 got file descriptor fd=3 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 1 Setze Bits 255 FAIL: 249 1 255 0 Sequenz 5 : ./relais -d /dev/ttyUSB0 -e -s 00000000 Firmware-Version 11 OK, Aktuelle Kontaktstellung: 255 Connection timeout (select failed). FAIL: 253 1 255 255 Hmm also ausschalten geht jetzt garnimmer. da haben wir wieder ein timeout jetzt. LG EDIT: habe mal bitweise von rechts nach links eingeschaltet ergebnis im anhang.
:
Bearbeitet durch User
Ich kann immer noch nen ssh Zugang zu meinem Laptop anbieten. Der ist Isoliert im Netzwerk und die Karte hängt an dem drann. Ich häng auch gern noch ne webcam auf die Platine. Ist zumindest einfacher als verschicken :) LG
Hmm, so mimosenhaft, wie sich das Teil benimmt, wäre das natürlich 'ne Option. Ich maile dir mal einen pubkey zu. Soll ich ihn mit GPG unterschreiben?
Jörg W. schrieb: > Ich maile dir mal einen pubkey zu. Soll ich ihn mit GPG unterschreiben? nicht nötig. Ich gebe dir einfach einen Vertrauens Vorschuss :) vielleicht gibt es ja parallel noch die möglichkeit über teamspeak/discord/mumble zu kommunizieren ? LG
:
Bearbeitet durch User
Hallo, okay, mit den Testergebnissen kann ich nichts anfangen. Wie schon bemerkt wurde deutet alles auf ein Kommunikationsproblem hin. Hab mir den Thread von weiter vorn durchgelesen. Mitten in eurer Festplattenunterhaltung kam vom TO eine Info das die Karte "abstürzt" wenn mehr als ein Relais geschalten wird. Ich denke das Thema Spannungsversorgung sollte man erstmal klären, weil bis dahin, wenn ich nichts überlesen habe, wurde immer nur ein Relais geschalten, nicht mehrere zeitgleich. Beitrag "Re: seriell FTDI TTL UART SUART ich blicke nicht mehr Durch!" Zwischendurch hat die Karte funktioniert. Vermutlich mit einem Relais. Beitrag "Re: seriell FTDI TTL UART SUART ich blicke nicht mehr Durch!" Nicht das der Wasserschaden einen Folgefehler auf der Karte hervorgerufen hat. Wasserschäden in der Elektronik sind das Übelste was man haben kann, weil man den Ausgang nicht abschätzen kann. Kann gut gehen muss aber nicht. Ich halte mich erstmal zurück. Kann von weiten eh nix machen.
Interessanter Aspekt. Ja, vielleicht sollte man ja ein Relais nach dem anderen schalten.
Hallo. Ich schrieb, das das gleichzeitige Schalten von Relais 1 + 5 zu einem Absturz der Karte führt, und nur die 2! alle anderen Kombinationen lassen sich Problemlos auch gleichzeitig schalten. Nochmal : 1 + 5 führen zu dem Problem. Der Wasserschaden könnte auf die Hauptkarte zutreffen, aber wie ich Schrieb laufen alle Tests mit der Schwesterkarte! Bitte, ich möchte nicht Ungehalten erscheinen, aber lest doch bitte wenn dann den Beitrag auch genau durch. mir ist das nur beim testen aufgefallen, da meine GUI sowieso nur das einzelne Schalten von Relais erlaubt. ( ausnahme NOTAUS wo alle gleichzeitig abgeschaltet werden ) LG
:
Bearbeitet durch User
So, nach ein paar Technischen Problemen, wäre ich heute Abend Verfügbar für einen life test falls du Zeit hast. :) LG
Der Jörg hat die Ziege bezwungen! Ab morgen regnet es Bier. :)
Naja, war noch ein blöder Bug im Code, der Rest ist jetzt zurück auf SET PORT, was natürlich schon so funktioniert wie beschrieben.
Jörg W. schrieb: > Naja, war noch ein blöder Bug im Code, der Rest ist jetzt zurück auf SET > PORT, was natürlich schon so funktioniert wie beschrieben. Wir stoßen dann zusammen an. LG Bier ist auf dem Weg( 12-13. )
Jörg W. schrieb: > Naja, war noch ein blöder Bug im Code, der Rest ist jetzt zurück auf SET > PORT, was natürlich schon so funktioniert wie beschrieben. Ah warte mal. Hab das jetzt erst Sacken lassen.. Du sendest also ein SET und danach ein DEL um die Relais an den Benutzerwunsch anzupassen ? möglicherweise ist das das delay Problem. Ich hatte bisher noch keine Muße die GUI umzuschreiben, mache ich Morgen..eehh heute Nachmittag. Falls das Bier schmeckt, Vorsicht das hat 6.5 Volt! Vielleicht magst du mir ja mal "C" etwas näher bringen indem du mir den source mal erklärbärst :) LG Marco
Das war meine vorige Strategie. Ich habe jetzt aber alles wieder zurück auf SET PORT gedreht, d.h. es wird alles auf einmal ein- oder ausgeschaltet. Du schriebst ja, dass deine GUI sowieso letztlich die Bedienerhandlungen einzeln weitergibt, sodass es eigentlich nicht vorkommen kann, dass die beiden Relais, die die Karte abstürzen lassen, zeitgleich eingeschaltet werden. Sonst hätte ich das dort noch abfangen müssen, würde aber den Aufwand erhöhen.
Moin! Also das es den "ghost in the machine" gibt weiß ich aus eigener Erfahrung. Aber gibt es auch so etwas wie "ghost in the code"? Ich stelle gerade fest, das die Routine die den Status der Relais abfragt und Visualisiert komplett auskommentiert ist..trotz dem funktioniert alles wie es soll?! Fragezeichen LG
Marco schrieb: > Wir stoßen dann zusammen an. Kiste heute angekommen ;-), danke! Marco schrieb: > Ich stelle gerade fest, das die Routine die den Status der Relais > abfragt und Visualisiert komplett auskommentiert ist. Wo ist die auskommentiert? In relais.c? Da sehe ich nichts. Wenn's in deiner GUI ist, wirst natürlich nur du allein wissen, was da passiert. ;-)
Jörg W. schrieb: > Wenn's in deiner GUI ist, wirst natürlich nur du allein wissen, was da > passiert. ;-) Ja, sorry ich meine die GUI, aber ich habe gerade keine Ahnung was da passiert, weil eigentlich... ich brauch noch n Kaffee! :) > Kiste heute angekommen ;-), danke! Es hätte eigentlich Winterbock werden sollen, aber hatte Amazon nicht :( LG
Gnarf ! Damit Ihr mitlachen könnt... If Button_kitchen.Enabled = True And SwitchButton1.Value = False 'küchenlicht Dial1.Value = Dial1.value - 1 If Dial1.Value == 0 kizchen_off_Click() 'timer_minute.Enabled = False Dial1.Value = 1 Endif Endif Und jetzt ratet mal welche Buttons ich aus dem Code entfernt habe, weil ich beim rewrite dachte ich brauche die nimmer ? Genau. Haute Nachmittag habe ich wohl noch mehr Arbeit seufz LG
Programm läuft auf nem PI flawless. Morgen teste ich mal den shield. LG
Das hört man doch gern. Das Bier schmeckt. ;-)
Jörg W. schrieb: > Das hört man doch gern. Das Bier schmeckt. ;-) Der Shield muss erst mal noch warten, habe da einen lästigen bug in meiner GUI um den ich mich zuerst kümmern muss. Genieße das Bier, hast du dir verdient. :) LG
Es läuft nun alles wie es soll, der Bug geht auf das Konto von Gambas!! Habe den Shield verlegt, ist aber erst mal egal da ja alles auch mit dem "Adapter" funktioniert. Vielen Dank nochmal an alle die geholfen haben, und besonderer Dank an Jörg, der nicht Aufgegeben hat :) Ist noch jemand hier unterwegs der sich mit Gambas befasst? ( und nein ich meine nicht die Leckeren Dinger sondern die IDE/Programmiersprache). LG
Marco schrieb: > Ist noch jemand hier unterwegs der sich mit Gambas befasst? Das liest hier tief im Thread versteckt sicher keiner. Da ist es sinnvoller, wenn du einen neuen Thread eröffnest.
Moin ! Also das Programm funktioniert Tadellos, das vorweg. Ich habe ein bischen Probleme mit dem Rückgabewert, da dieser ein LF enthält. Gambas ist da sehr Sensibel.Ich habe das Umgangen indem ich eine Fehlerbehandlung geschrieben habe. Den Rückgabewert von relais -d /dev/ttyusb0 -S ohne LF zu senden ist nicht so ohne weiteres möglich ? LG Marco
Jörg W. schrieb: > Welche Ausschrift meinst du genau? Wenn ich relais -d /dev/ttyUSB0 -S aufrufe mit >ausgabe.txt enthält diese Datei einen LF. d.H. die Ausgabe ist per definition ein string. ohne LF könnte ich die Ausgabe einfach als integer nutzen. Beispiel: relais -d /dev/ttyUSB0 -S gibt 128 zurück. allerdings 128+LF kann man das unterdrücken ? LG
Hallo, will mich ja nicht wieder umsonst reinhängen. Aber eigentlich ist ein LF eine ganz normale genutzte Endeerkennung für eine Datenübertragung. Die einfachste Art und Weise für einen Abschluss. Das ist damit auch nicht automatisch ein String. Meine Einlesefunktionen schauen immer nach LF oder CR. Dann weiß man das diese eine Übertragung abgeschlossen ist. Also wenn bei mir 128 + LF reinkommen würde, würde die 128 im Lesebuffer landen und das Einlesen an sich mit eintrudeln der LF Erkennung abgeschlossen sein. Danach wird die 128 anderswo verarbeitet. Wenn nur 128 ohne LF/CR eintreffen würde, würde meine Einlesefunktion ewig warten, außer ich bau noch einen Timeout ein, aber dann müßte das Eingelesene noch verwurfen werden. Wenn du nur immer ein Byte einliest, weil nie mehr sein kann, dann kannst du das LF abschneiden und dann verarbeiten. An dem '+LF' auf Relaiskartenseite wirst du wohl nichts ändern können. Am Besten du änderst deine Einlesefunktion.
:
Bearbeitet durch User
Ah ja, es geht um das, was bei der Option -S ausgegeben wird. Ich hab das geändert, schau mal.
Veit D. schrieb: > Hallo, > > will mich ja nicht wieder umsonst reinhängen. Aber eigentlich ist ein LF > eine ganz normale genutzte Endeerkennung für eine Datenübertragung. Die > einfachste Art und Weise für einen Abschluss. Das ist damit auch nicht > automatisch ein String. Meine Einlesefunktionen schauen immer nach LF > oder CR. Dann weiß man das diese eine Übertragung abgeschlossen ist. > Also wenn bei mir 128 + LF reinkommen würde, würde die 128 im Lesebuffer > landen und das Einlesen an sich mit eintrudeln der LF Erkennung > abgeschlossen sein. Danach wird die 128 anderswo verarbeitet. > Wenn nur 128 ohne LF/CR eintreffen würde, würde meine Einlesefunktion > ewig warten, außer ich bau noch einen Timeout ein, aber dann müßte das > Eingelesene noch verwurfen werden. > > Wenn du nur immer ein Byte einliest, weil nie mehr sein kann, dann > kannst du das LF abschneiden und dann verarbeiten. An dem '+LF' auf > Relaiskartenseite wirst du wohl nichts ändern können. > > Am Besten du änderst deine Einlesefunktion. Du hängst dich nicht umsonst rein :) Ich lerne immer wieder gerne dazu. Aber du Verrennst dich möglicherweise in Dinge. Möglicherweise verwechselst du hier EOF mit LF ? LG
Jörg W. schrieb: > Ah ja, es geht um das, was bei der Option -S ausgegeben wird. > > Ich hab das geändert, schau mal. git ?
brauche den link nochmal dann bitte. Danke.
Marco schrieb: > Möglicherweise verwechselst du hier EOF mit LF ? Ich denke nicht. Aber das wird jetzt Jörg im Code "unterdrückt" haben. Link: https://github.com/dl8dtl/conrad_8fa_relais/tree/new_option_handling
Veit D. schrieb: > Marco schrieb: >> Möglicherweise verwechselst du hier EOF mit LF ? > > Ich denke nicht. Aber das wird jetzt Jörg im Code "unterdrückt" haben. > Link: > https://github.com/dl8dtl/conrad_8fa_relais/tree/new_option_handling Danke sehr.
Ich hasse Gambas wegen diesen blöden Variablen Deklarationen. Perl ist deswegen meine Wahl, aber ständig Daten übertragen ist bei grö0eren Programmen dann auch wieder määh .)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.