seriell FTDI TTL UART SUART ich blicke nicht mehr Durch!

#7273305
Lesenswert?

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 ...
#7273379
Lesenswert?

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
#7273413
Lesenswert?

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.
Angehängte Dateien:
#7273945
Lesenswert?

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.
#7273989
Lesenswert?

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
#7279509
Lesenswert?

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
Moderator Persönliche Seite #7279557
Lesenswert?

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.
Moderator Persönliche Seite #7280026
Lesenswert?

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. ;-)
#7280047
Lesenswert?

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
#7280715
Lesenswert?

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
#7292499
Lesenswert?

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
Gast #7303699
Lesenswert?

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

Gast #7303721
Lesenswert?

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

#7303739
Lesenswert?

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.

Gast #7303746
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren