Gebrauchsanleitung zum WLAN-Board Air602 (ARM Cortex M3 + WLAN)

Begonnen von juergs, 14 April 2020, 11:12:57

Vorheriges Thema - Nächstes Thema

juergs

#30
Hallo Ralf,
meine Letzte Version findest Du in W600_Tcp_To_Serial_Bridge.
Bin da schon auf Uart1 gegangen.

Vorgehensweise sollte so ok sein mit import und Aufruf der modul.main-Methode.

Warum es mit opensuse nicht geht ?  :o

Grüße,
Jürgen

Ralf9

zu was wird dies benötigt?
                   elif "V" in str(req):
                        buffer.append("V 3.3.1 SIGNALduino cc1101 (chip CC1101) - compiled at Dec 3 2019 19:40:46 " + chr(10) + chr(13))
                        got_serial_data = True
                    elif "P" in str(req):
                        buffer.append("OK" + chr(10) + chr(13))
                        got_serial_data = True
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

#32
das war für meine Tests, sonst verabschiedet sich der connect von fhem und geht auf disconnected .

Das kannst Du einfach auskommentieren.... wenn alles schon über den Signalduino laufen sollte.
Für die ersten Versuche kann man das schon brauchen...

Ist aber auch eine noch nicht produktive Version. Bin leider anderweitig eingespannt..
Deshalb blieb etwas wenig Zeit übrig... 😭 um daran weiter zu arbeiten.

Anmerkung: Das sollte ebenfalls mit dem Esp8266 gehen ....

Ralf9

Bedeuted das "period=2000" 2 ms?
def init_timer():
    print("*** init timer ->")
    global timer5
    timer5.init(period=2000, mode=Timer.PERIODIC, callback=lambda y: (
        # print("~~~ Timer5.Tick: ->"),
        read_serial(),
        # print("~~~ Timer5.Tick: <-")
    )
                )
    print("*** <- init timer")


Wird momentan das print auf uart0 ausgegeben?

D.h. dann, daß wenn ich diese Version testen will, muß ich RX1 und TX1 mit dem sduino verbinden
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

https://docs.wemos.cc/en/latest/tutorials/w600/get_started_with_micropython_w600.html#timer
Ja, Timer-Periode in ms.

Ja print geht über Uart0. Dient zu Debugzwecken. Könnte man über Conditional ausblenden. Interessant wäre eine ,,Umleitung" auf ein TFT-Display.

Ralf9

ZitatInteressant wäre eine ,,Umleitung" auf ein TFT-Display.
reichen die Anschlüsse der W600 für 2 serielle und das TFT Display?
Gibt es für das TFT Display eine Python lib?

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

#36
beim Air602 wird es knapp, aber beim w600-Modul und Picoboard sind genügend Pins verfügbar.

TFT (ili9341 = ST7735): https://learn.adafruit.com/micropython-hardware-ili9341-tft-and-featherwing/micropython
https://github.com/adafruit/micropython-adafruit-rgb-display



Ralf9

Wenn ich für die serielle Bridge die serial0 verwenden möchte, reicht es wenn ich die "print.." auskommentiere und
hier von 1 auf 0 ändere?
serial = UART(1, 115200)
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

#39
ja genau. 👍

Würde mir den Debug-Weg aber bis zuletzt offen halten, um ggf. Problemen auf die Spur zu kommen.
Wenn der Pfad über UART_1 funktioniert, kann man den UART_0 Pfad dazuschalten.

Ralf9

Ich habe nun doch an die Rx1 und Tx1 Litzen angelötet und mit Rx und Tx vom MapleSduino verbunden.
Die aktuelle Version der seriellen Bridge funktioniert noch nicht so richtig, wenn an den sduino über Telnet Befehle (z.B. V, P, XQ) gesendet werden, kommt unsupported Command zurück.

Einmal habe ich diese Fehlermeldung erhalten:
buffer-len: 1
b'\x02MU;P0=-1378;P1=414;P2=-1069;P3=1414;P4=-26072;CP=1;R=240;D=012321232123212321232323232323232321212323232321232323212323232123232121212123232141212121212121212321212121212121212121212323232123212321232123212323232323232323212123232323212323232123232321232321212121232321414;e;\x03\n'
Traceback (most recent call last):
  File "main.py", line 9, in <module>
  File "Serial_to_TCP-Bridge.py", line 189, in <module>
  File "Serial_to_TCP-Bridge.py", line 172, in main
OSError: [Errno 104] ECONNRESET
MicroPython v1.10-284-g2eee4e2-dirty on 2019-11-08; WinnerMicro module with W600
Type "help()" for more information.


FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

#41
Hallo Ralf,

lustig sehe gerade das gleiche Problem !   :(

Obwohl meine Abfrage identisch ist wie serialEvent().

Das Problem liegt hier, sehe aber gerade noch nicht warum es mit serialEvent() funktioniert, aber mit den anderen beiden Schnittstellen (identischer Code)  nicht:
Zitatvoid HandleCommand()
{   
   uint8_t i = 0;   
   for (i=0; i < cmdAnz; i++)
   {
    //--- search command token
      if (cmdstring.charAt(0) == cmd0)
      {
      //--- found, is there another companion char?
      //--- seems to be that as minimum a space-char is obligatory ?   
      MSG_PRINT("HandleCommand.cmd1="); MSG_PRINTLN( cmdstring.charAt(1) );   
         if ( cmd1 == ' ' || ( cmdstring.charAt(1)==cmd1 ) || 0==strlen((char)cmdstring.charAt(1) )  )
         {
            break;
         }
      }
   }

   //MSG_PRINT(i);
   unsuppCmd = false;
   
   if (i < cmdAnz)
   {
      //MSG_PRINT(F(" ")); MSG_PRINT(cmd0);MSG_PRINT(cmd1);
      cmdFP();
   }
   else
   {
    MSG_PRINT("HandleCommand.i="); MSG_PRINT(i); MSG_PRINTLN("   unsupported?");   
      unsuppCmd = true;
   }
   
   //MSG_PRINTLN("");
   
   if (unsuppCmd)
   {
      MSG_PRINTLN(F("Unsupported command"));
   }
}

Zitat0 == strlen( (char) cmdstring.charAt(1) )
Das funktioniert nicht: invalid conversion from 'char' to 'const char*' [-fpermissive]

Kommt da noch ein Space von FHEM hinterher?

Z.B. "V<space>" ?

Wenn Du ein Space zum Kommando dazu nimmst, kommt kein "Unsupported command" da in cmd1 ein Space steht.

Laut Vorgabe:
Zitatconst char cmd0[] =  {'?', '?', 'b', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'e', 'e', 'P', 'r', 'R', 'S', 't', 'T', 'V', 'W', 'x', 'X', 'X'};
const char cmd1[] =  {'S', ' ', ' ', 'E', 'D', 'G', 'R', 'S', 'W', ' ', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'E', 'Q'};
ist ja ein Space definiert!

ZitatHandleCommand.cmd1=
V 4.2.0-dev20050z6_juergs SIGNALduino cc1101 (R: Ai B-* C- D-) - compiled at May 23 2020 22:37:21
HandleCommand.i=23   unsupported?
Unsupported command

if ( cmd1[i] == ' ' || ( cmdstring.charAt(1)==cmd1 ) )

Suche morgen weiter nach einer Lösung/Unterschied.

Arbeitsversion MapleSduino_SER2WLAN.ino ist aktualisiert.

Jürgen

Ralf9

Hallo Jürgen,

das Problem ist dies
output_msg = str(req) + chr(10) + chr(13)
die chr(10) + chr(13) sind überflüssig, da sie schon in req enthalten sind,
ein
output_msg = str(req)
macht z.B. aus einem per Telnet gesendeten V ein
b'V\n\r'

damit funktioniert es dann
output_msg = req.decode('ascii')

durch die Debug Ausgaben gibt es noch eine merkliche Verzögerung

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

juergs

#43
Ah, ok.
Du meinst den Bridge-Code.  ;)

Bin gerade auf der Signalduino-Seite am Einarbeiten der Ein- und Ausgabe.
Ist doch eine etwas aufwendigere Geschichte, über drei Systeme hinweg ...   :D

Grüße,
Jürgen

juergs

Zitat von: Ralf9 am 24 Mai 2020, 14:15:47
durch die Debug Ausgaben gibt es noch eine merkliche Verzögerung

Bei der Übergabe: ja da dort ja noch die Puffer-Zeit auf 2 Sekunden eingestellt ist.
Möglicherweise kann man da wesentlich heruntergehen...

Oder beim Rückmelden SDuino => fhem?