Hi,
kann mir das mal einer mit dem Serial Port und dem Cutter erklären?
Bekomme immer die wirren Werte
05.01.2015 23:13:01.00 | Received Data | Humidity: 3
05.01.2015 23:13:01.00 | Received Data | 9.00 %
Temper
05.01.2015 23:13:01.00 | Received Data | ature: 22.00 *C
05.01.2015 23:13:01.00 | Received Data |
05.01.2015 23:13:11.00 | Received Data | Humid
05.01.2015 23:13:11.00 | Received Data | ity: 39.00 %
05.01.2015 23:13:11.00 | Received Data |
Temperature: 22
05.01.2015 23:13:11.00 | Received Data | .00 *C
05.01.2015 23:13:21.00 | Received Data | Humidity: 39.0
05.01.2015 23:13:21.00 | Received Data | 0 %
Temperatu
05.01.2015 23:13:21.00 | Received Data | re: 22.00 *C
05.01.2015 23:13:21.00 | Received Data |
05.01.2015 23:13:32.00 | Received Data | Humidity
05.01.2015 23:13:32.00 | Received Data | : 39.00 %
Te
05.01.2015 23:13:32.00 | Received Data | mperature: 22.00
05.01.2015 23:13:32.00 | Received Data | *C
05.01.2015 23:13:42.00 | Received Data | Hu
05.01.2015 23:13:42.00 | Received Data | midity: 39.00 %
05.01.2015 23:13:42.00 | Received Data |
Temperature
05.01.2015 23:13:42.00 | Received Data | : 22.00 *C
05.01.2015 23:13:52.00 | Received Data | Humidity: 3
05.01.2015 23:13:52.00 | Received Data | 9.00 %
Tempe
05.01.2015 23:13:52.00 | Received Data | rature: 22.00 *
05.01.2015 23:13:52.00 | Received Data | C
Kommt bei Dir Zeilenvorschub, neue Zeile bei der Datenausgabe?
Dann wären das Deine Cutterzeichen, wenn Du das Debugfenster nach Hex umstellst, müßte 10 und 13 in Hex für Zeilenvorschub und neue Zeile kommen. Guggst Du:
07.01.2015 20:53:46.00 | Received Data | 6D 69 64 69 74 79 3A 20 0D 0A 34 30 2E 30 30
07.01.2015 20:53:46.00 | Received Data | 0D 0A 20 25 09 0D 0A 09 0D 0A 54 65 6D 70 65
07.01.2015 20:53:46.00 | Received Data | 72 61 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D
07.01.2015 20:53:46.00 | Received Data | 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:53:56.00 | Received Data | 48 75 6D 69 64 69 74 79 3A 20 0D
07.01.2015 20:53:56.00 | Received Data | 0A 34 30 2E 30 30 0D 0A 20 25 09 0D 0A 09 0D
07.01.2015 20:53:56.00 | Received Data | 0A 54 65 6D 70 65 72 61 74 75 72 65 3A 20 0D 0A
07.01.2015 20:53:56.00 | Received Data | 32 30 2E 30 30 0D 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:06.00 | Received Data | 48 75 6D 69 64
07.01.2015 20:54:06.00 | Received Data | 69 74 79 3A 20 0D 0A 34 30 2E 30 30 0D 0A 20
07.01.2015 20:54:06.00 | Received Data | 25 09 0D 0A 09 0D 0A 54 65 6D 70 65 72 61 74 75
07.01.2015 20:54:06.00 | Received Data | 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A
07.01.2015 20:54:06.00 | Received Data | 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:17.00 | Received Data | 48 75 6D 69 64 69 74 79 3A 20 0D 0A 34 30
07.01.2015 20:54:17.00 | Received Data | 2E 30 30 0D 0A 20 25 09 0D 0A 09 0D 0A 54 65 6D
07.01.2015 20:54:17.00 | Received Data | 70 65 72 61 74 75 72 65 3A 20 0D 0A 32 30 2E
07.01.2015 20:54:17.00 | Received Data | 30 30 0D 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:27.00 | Received Data | 48 75 6D 69 64 69 74 79
07.01.2015 20:54:27.00 | Received Data | 3A 20 0D 0A 34 30 2E 30 30 0D 0A 20 25 09 0D 0A
07.01.2015 20:54:27.00 | Received Data | 09 0D 0A 54 65 6D 70 65 72 61 74 75 72 65 3A
07.01.2015 20:54:27.00 | Received Data | 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:37.00 | Received Data | 48 75
07.01.2015 20:54:37.00 | Received Data | 6D 69 64 69 74 79 3A 20 0D 0A 34 30 2E 30 30 0D
07.01.2015 20:54:37.00 | Received Data | 0A 20 25 09 0D 0A 09 0D 0A 54 65 6D 70 65 72
07.01.2015 20:54:37.00 | Received Data | 61 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D
07.01.2015 20:54:37.00 | Received Data | 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:47.00 | Received Data | 48 75 6D 69 64 69 74 79 3A 20 0D 0A
07.01.2015 20:54:47.00 | Received Data | 34 30 2E 30 30 0D 0A 20 25 09 0D 0A 09 0D 0A
07.01.2015 20:54:48.00 | Received Data | 54 65 6D 70 65 72 61 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:54:58.00 | Received Data | 48 75 6D 69 64 69
07.01.2015 20:54:58.00 | Received Data | 74 79 3A 20 0D 0A 34 30 2E 30 30 0D 0A 20 25
07.01.2015 20:54:58.00 | Received Data | 09 0D 0A 09 0D 0A 54 65 6D 70 65 72 61 74 75
07.01.2015 20:54:58.00 | Received Data | 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A 43
07.01.2015 20:54:58.00 | Received Data | 20 0D 0A 09 0D 0A
07.01.2015 20:55:08.00 | Received Data | 48 75 6D 69 64 69 74 79 3A 20 0D 0A 34 30 2E
07.01.2015 20:55:08.00 | Received Data | 30 30 0D 0A 20 25 09 0D 0A 09 0D 0A 54 65 6D
07.01.2015 20:55:08.00 | Received Data | 70 65 72 61 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A 43 20 0D 0A 09 0D 0A
07.01.2015 20:55:18.00 | Received Data | 48 75 6D 69 64 69 74 79 3A
07.01.2015 20:55:18.00 | Received Data | 20 0D 0A 34 30 2E 30 30 0D 0A 20 25 09 0D 0A
07.01.2015 20:55:18.00 | Received Data | 09 0D 0A 54 65 6D 70 65 72 61 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A 20 2A 43 20 0D 0A
07.01.2015 20:55:18.00 | Received Data | 09 0D 0A
07.01.2015 20:55:29.00 | Received Data | 48 75 6D
07.01.2015 20:55:29.00 | Received Data | 69 64 69 74 79 3A 20 0D 0A 34 30 2E 30 30 0D
07.01.2015 20:55:29.00 | Received Data | 0A 20 25 09 0D 0A 09 0D 0A 54 65 6D 70 65 72 61
07.01.2015 20:55:29.00 | Received Data | 74 75 72 65 3A 20 0D 0A 32 30 2E 30 30 0D 0A
07.01.2015 20:55:29.00 | Received Data | 20 2A 43 20 0D 0A 09 0D 0A
…das ist mit Zeilenvorschub
So habe es jetzt erst einmal soweit hin bekommen
07.01.2015 21:28:36.00 | Received Data | 39.00
07.01.2015 21:28:36.00 | Received Data | 21.00
07.01.2015 21:28:36.00 | Buffer | .00
07.01.2015 21:28:36.00 | Buffer | .0021.00
07.01.2015 21:28:46.00 | Received Data | 39.00
07.01.2015 21:28:46.00 | Received Data | 21.00
07.01.2015 21:28:46.00 | Buffer | .0021.0039.00
07.01.2015 21:28:46.00 | Buffer | 00
07.01.2015 21:28:56.00 | Received Data | 40.00
07.01.2015 21:28:56.00 | Buffer | 0040.00
07.01.2015 21:28:56.00 | Received Data | 20.00
07.01.2015 21:28:57.00 | Buffer | 0040.0020.00
aber warum steht im Buffer nicht der aktuelle Wert?
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable")
{
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
// neu empfangene Daten an $data anhängen
$data .= $_IPS['VALUE'];
// wenn $data mindestens 16 Zeichen lang ist
if (strlen($data) >= 5)
{
// $data in Blöcke von bis zu 16 Zeichen zerlegen
$datasets = str_split($data, 16);
// $data leeren
$data = "";
// alle Datensätze durcharbeiten
for ($i = 0; $i < count($datasets); $i++)
{
// vollständige Datensätze (genau 16 Zeichen lang) ausgeben
if (strlen($datasets[$i]) == 5)
{
echo "empfangener Datensatz: ".$datasets[$i]."
";
}
else
{
// Unvollständige Datensätze in $data schreiben
$data = $datasets[$i];
}
}
}
// Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
RegVar_SetBuffer($_IPS['INSTANCE'], $data);
}
Genau, Nancilla hat auch einen solchen Fragesteller
Das kommt so oft vor, einfach mal die Suchfunktion quälen, ist zeitaufwendig, hilft aber
Zum Testen kannst Du mal folgendes Script als Targetscript in der Registervariable eintragen und als übergeordneter Instance den Cutter.
Dann mal im Meldungsfenster, es kommt NUR im Meldungsfenster was, schauen was da so erscheint
<?
if ($_IPS['SENDER'] == "RegisterVariable")
{
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
echo $data;
}
?>
Hi,
jo das schon nicht schlecht, ja die Werte stimmen exakt.
Ja denke wird dann den Wert mit Kommastelle mir holen, ich dachte so wäre es erst einmal leichter.
Ich werde das Morgen mal testen und dir dann berichten.
Hab das ganze jetzt auch auf dem Raspberry am laufen, bekomme die Daten die ich vom Arduino her schicke auch korrekt angezeigt „Hello Pi“, was ich aber noch nicht verstanden habe wie bekomme ich die Daten jetzt aus der Register Variable / Skript in eine Variable des IPS?
Oder nach was muß ich im Forum suchen?
da Du zwei Werte mit unterschiedlicher Beschreibung von der seriellen Schnittstelle bekommst
würde ich auch zwei Cutter und zwei Registervariablen erstellen zB Temperatur Cutter und Feuchte Cutter
und die Registervariablen „Feuchte Registervariable“ und „Temperatur Registervariable“
haben dann die jeweiligen Zuweisungen von Scripten und Instancen
Also:
2 Floatvariablen erstellen zB Feuchte und Temperatur
2 Cutter und 2 Registervariablen erstellen: Cutter Temperatur erhält die rechten Trennzeichen "Temperatur= „, linken Trennzeichen " 'C“ ,
übergeordnete Instance ist die ser. Schnittstelle
darunter bekommt der Cutter Temperatur eine Registervariable „Temperatur Registervariable“
Target dazu ist das Script Temperatur lesen, übergeordnete Instance ist der Temperatur Cutter
und der Cutter Feuchte erhält die rechten Trennzeichen "Humidity: ", linken Trennzeichen % ,
übergeordnete Instance ist die ser. Schnittstelle
darunter bekommt der Cutter Feuchte eine Registervariable „Feuchte Registervariable“
Target dazu ist das Script Feuchte lesen, übergeordnete Instance ist der Feuchte Cutter
Script Feuchte:
<?
if ($_IPS['SENDER'] == "RegisterVariable")
{
$data = $_IPS['VALUE'];
// ev. zum Testen im Meldungsfenster anzeigen lassen
echo $data;
// $data in Floatvariable $data1 schreiben
$data1 = floatval ($data);
// ev. zum Testen im Meldungsfenster anzeigen lassen
echo $data1;
// $data1 in Floatvariable "Feuchte" schreiben
SetValueFloat(deine VarID,$data1);
}
?>
Temperatur Script
<?
if ($_IPS['SENDER'] == "RegisterVariable")
{
$data = $_IPS['VALUE'];
// ev. zum Testen im Meldungsfenster anzeigen lassen
echo $data;
// $data in Floatvariable $data1 schreiben
$data1 = floatval ($data);
// ev. zum Testen im Meldungsfenster anzeigen lassen
echo $data1;
// $data1 in Floatvariable "Temperatur" schreiben
SetValueFloat(deine VarID,$data1);
}
?>
Perfekt!
So etwas hatte ich schon die ganze Zeit gesucht.
Hab das mal so wie du es in deinem Beispiel hast nachgebastelt, doch bleiben die Variablen auf 0 stehen.
Was mach ich schon wieder falsch :mad: