Blog

RS485 Bricklet und neue Streaming-API

RS485 Bricklet

Seit heute ist das neue RS485 Bricklet bei uns im Shop verfügbar!

Das Bricklet unterstützt low-level RS485 sowie Modbus Master/Slave sowohl in Halb- als auch Voll-Duplex. Die Modbus RTU Implementierung ist standardkonform für alle Read/Write Funktionen von Coils und Registern. Baudrate, Parität, Stopbits und Wortlänge sind konfigurierbar und eine 120 Ohm Terminierung kann optional mit einem DIP-Schalter zugeschaltet werden.

Es ist eines der neuen Co-Prozessor Bricklets mit Stecker für ein 7p-10p Bricklet Kabel. Das Bricklet nutzt viele der neuen Möglichkeiten die Co-Prozessor Bricklets bieten werden. Es hat einen großen 10kb Sende- und Empfangsbuffer (die Buffergröße bei den alten Bricklets belief sich auf maximal 256 Byte). Die Modbus RTU-Implementierung ist umfassend und hätte mit dem alten System nur in einem Brick realisiert werden können. Des weiteren nutzt das RS485 Bricklet die neue Streaming-API (siehe unten).

Streaming-API

Zusätzlich zu dem neuen Bricklet werden wir neue Features für die API veröffentlichen. Bisher war es so, dass eine API-Funktion (z.B. getTemperature) immer exakt ein Paket generiert hat, welches zwischen PC und Brick/Bricklet ausgetauscht wird. Da ein TFP (Tinkerforge Protoll) Paket eine maximale Payload-Länge von 64 Byte hat, konnten Funktionen früher maximal 64 Byte am Stück übertragen. Daher mussten größere Datenmengen bisher immer Stück-für-Stück abgefragt werden.

Mit der neuen Streaming-API können Funktionen beliebige Datenmengen übertragen, so kann ein rs485.write()-Aufruf z.B. 1000 Byte auf einmal verschicken. Intern werden die Aufrufe der Streaming-API wie gehabt in 64-Byte Blöcken an das Brick/Bricklet verschickt. Die Streaming-API wird wie die alte API auch aus einer Konfigurationsdatei für alle Sprachen generiert. Bei dem Implementierungsaufwand des Generators hatten wir uns gewaltig verschätzt. Ursprünglich sollte die Streaming-API und das RS485 Bricklet zusammen mit den GPS Bricklet 2.0 veröffentlich werden (vor über 2 Monaten).

Die neuen Streaming-Funktionen werden aktuell von allen Sprachen unterstützt, bis auf Delphi, Shell und JavaScript. Die drei fehlenden Sprachen werden in den nächsten Wochen folgen. Da wir sehr viele Nachfragen nach dem neuen RS485 Bricklet haben und es ursprüglich viel früher angekündigt hatten, haben wir uns entschieden dieses "Teilrelease" zu machen. Falls ihr eine der drei noch nicht unterstützten Sprachen verwenden wollt, müsst ihr euch entweder noch ein wenig gedulden oder die low-level API nutzen, auf welche die Streaming-API basiert.