Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Geschrieben

Hallo zusammen

 

Ich lese mich gerade durch die API vom RS485 Bricklet.

Im Beispiel finde ich rs485.Write(['t', 'e', 's', 't']);

In der Doku der API finde ich rs485.Write([... aber nicht.

Da gibt es nur ein RS485.WriteLowLevel...

Fehlt das hier?

 

Zweite Frage, warum schreibt man hier rs485.Write(['t', 'e', 's', 't']);

und nicht rs485.Write(['test']);

 

Danke schon mal im Vorraus für eine Antwort

Gruß

NoCee

Geschrieben

Oh, da ist die Dokumentation in der Tat noch unfertig. Wird gefixt.

 

Bei den neuen Bricklets gibt es "Streaming-Funktionen", diese sind nicht auf 64 Byte Größe beschränkt wie die normalen Funktionen, sondern können beliebige Datenmengen übertragen.

 

Wenn du "Write" aufrufst mit einem char-Array der Größe 128 Byte (z.B.) ruft das intern 2x WriteLowLevel mit je 64 Byte auf. Die LowLevel-Funktionen kannst du ignorieren, die sind eigentlich nur für die interne Nutzung.

 

Die Write/Read-Methoden verwenden ein char-Array und kein String, daher musst du ['t', 'e', 's', 't'] statt 'test' schreiben. Die Daten könnten ja auch Binärdaten sein mit Nullen dazwischen etc, dafür sind Strings nicht gut geeignet.

 

Du kannst aber in deinem Programm mit Strings arbeiten und den String einfach in ein Array umwandeln bevor du die Write-Funktion aufrufst.

Geschrieben
  • Autor

Ok, kapiert.

Danke für die Info.

 

Noch ne Frage zur internen Kommunikation.

Ich hab mal Daten einer relativ langsamen RS422

Busleitung mitloggen wollen. Auf einem Win-PC mit 2 echten Coms.

Da hat mich Windows aber so im Stich gelassen, daß ich die Daten

nicht in der richtigen Reihenfolge bekommen habe. Weil das Ganze halt nicht

echtzeitfähig ist. Noch nicht mal mit 1200bd.

Passiert mir das mit dem Red und 2 seriellen Schnittstellen auch, weil da ja

auch ein nicht echtzeitfähiges Linux drauf läuft?

Der Gedanke war einen Telegrammwandler für eine nicht mehr erhältliche Hardware

zu bauen. Mit einem Mikrokontroller wäre das kein Thema, kenn ich mich aber Null aus und würde das viel lieber mit TF und Lazarus realisieren.

 

Hab ich da eine Chance oder macht da der Red auch nicht mit?

 

Gruß

NoCee

Geschrieben

Deine Frage ist ob die Nachrichten von zwei RS485 Bricklets immer in der gleichen Reihenfolge beim PC/RED Brick ankommen wie sie beim Bricklet eintreffen, richtig?

 

Ich befürchte das muss nicht zwangsweise so sein. Die beiden Bricklets untereinander sind ja in dem Sinne nicht synchronisiert zueinander. Egal ob du einen RED Brick verwendest oder den Stapel am PC anschließt.

Geschrieben
  • Autor

Das ist ein Master Slave Netzwerk,

und das ziemlich lahm. 1200bd

Aber Windows bringt es fertig, mir die Hälfte der Antwort vom Slave

vor der ganzen Masteranfrage zu liefern.

 

Ich habe ein bischen gehofft, daß der Red bei so etwas so unterlastet und

so freundlich ist, mir die Reihenfolge einzuhalten wie es eingetroffen ist.

Ich kenn mich mit Linux noch nicht so dolle aus. Vielleicht ist ja euer Softwarepaket da irgendwie echtzeitfähiger.

Aber so wie es aussieht, muß ich da doch einen Arduino mit 3 seriellen Schnittstellen dazwischen klemmen. Aber das wäre C, nicht so mein Ding.

Da wäre der Red schon super, der versteht mein Pascal.

 

Trotzdem Danke für die Antwort

Gruß

NoCee

Geschrieben

Bei 1200 baud kannst du Problemlos die Daten Buchstabe für Buchstabe bekommen (auch per USB). Da bin ich zuversichtlich das du die Master-Anfragen vor den Slave-Antworten siehst.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.