Hi,
ich habe für ein Projekt die Anforderung, einen Datenstrom von einer RS-232-Schnittstelle einzulesen und weiterzuverarbeiten. Ich würde das gern mit Ruby machen, habe aber bisher zu wenig Erfahrungen damit. Ansteuern der RS-232 mit dem serialport-gem und byteweises Einlesen der Daten mittels getc bekomme ich hin. Ich würde allerdings statt mit getc gern mit IO.seek arbeiten, weil die Daten in jeweils 2 Feldern mit 20 bzw. 21 bit vorliegen und ich über diese Felder gern einen Zeiger wandern lassen möchte, der je nach den in den einzelnen Bits vorliegenden Steuerbefehlen bestimmte Operationen mit dem eigentlichen Payload durchführt.
Ich habe bereits ein Beispielprogramm erstellt, das einen in einer Datei aufgezeichneten Datenstrom verarbeiten kann, nur habe ich leider keine Idee, wie ich mit den "richtigen" Daten aus der Schnittstelle umgehen soll.
Danke
Chris
Folgend ist etwas Code, der illustriert, was gern machen würde.
file = File.open("readin_bremen_2013_1.txt")
until file.eof?
file.seek(3, IO::SEEK_CUR)
buffer = file.read(2)
case buffer
when '0 '
file.seek(5, IO::SEEK_CUR)
event = file.read(3)
heat = file.read(2)
file.seek(26, IO::SEEK_CUR)
# Weitere Operationen folgen ...
end
end