Receiver HK ARV-435 in IPS per COM einbinden

Hallo zusammen,

ich möchte gerne meinen Receiver über IPS steuern.
Dazu habe ich den COM Port angelegt und mit 2 „Register Variable“ verbunden.
eine für RX und eine für TX (siehe Bild 001.jpg).
Ich erhalte auch Daten vom Receiver (siehe Bild 002.jpg). Dies erhalte ich z.B. innerhalb einer Sekunde.
Soweit so gut. Die Schnittstellenbeschreibung habe ich ebenfalls vorliegen.
siehe ( www.ms-systems-online.de/download/RS232_AVR-435.doc )
Nun möchte ich als erstes meinen Receiver steuern. Dies erscheint mir einfacher als die Daten auszuwerten, die ich erhalte.
Leider verstehe ich von der Sache nicht all zu viel und bin deshalb auf eure unterstützung angewiesen :rolleyes: .
Um mich in die Sache einzuarbeiten wäre es nett, wenn mir jemand mal den String nennen könnte der den Receiver auf Mute schaltet. Leider hänge ich an der Sache mit dem „Check word“ Die ich nicht verstehe.
Wäre toll wenn mir einer unter die Arme greifen könnte :o .

Gruss
Michael

001.jpg

Hallo Sanman…

Deine Überlegungen gehen soweit schon mal in die richtige Richtung. Lies mal diesen Thread, dort wurde ein Denon Receiver über RS232 gesteuert (ab seite 2, Lösung auf seite 3). Damit sollten die grundlegenden Schritte die zu machen sind klar sein.

Sicherlich musst du das Protokoll auf deinen HK anpassen, aber das wird schon klappen. :wink:

Toni


//Code korrigiert - Siehe unten

$mute=chr(0x80).chr(0x70).chr(0xC1).chr(0x3E);
$crc = (ord($mute{0}) + (ord($mute{1}) << 8)) ^ (ord($mute{2}) + (ord($mute{3}) << 8));
$crc1 = chr($crc & 255);
$crc2 = chr(($crc >> 8) & 255);
$crc =$crc1.$crc2;

$data = "PCSEND".chr(2).chr(4).$mute.$crc;

COMPort_SendText(xxxxx, $data);

Auf die schnelle. Bei den CRC ist es etwas tricky, da sie sagen man soll die Word Werte per xor verknüpfen aber nich gesagt ist, welches Byte das LSB/MSB ist.

Deswegen die Sachen mit Entweder so oder so.

paresy

Hallo paresy,

der Operator für bitwise XOR lautet: ^

Du hast hier fälschlich den für logical XOR verwendet: xor

Gruß
HJH

Stimmt. Habs korrigiert.

paresy

Hallo zusammen,

vielen Dank für Eure Hilfe.
Wenn ich zuhause bin werde ich es gleich testen und berichten.

Gruss
Michael

Hallo zusammen,

nun zuhause angekommen erhalte ich leider folgenden Fehler:

Notice: Uninitialized string offset: 4 in C:\Programme\Tools\IP-Symcon\scripts.currentscript on line 15

für diese Zeile:

$crc = (ord($mute{1}) + (ord($mute{2}) << 8)) ^ (ord($mute{3}) + (ord($mute{4}) << 8));

Gruss
Michael

Hallo zusammen,

hab es hin bekommen und es funktioniert.
Vilen Dank für Eure Hilfe. Jetzt werde ich mal alle Befehle integrieren und eine Oberfläche machen. Danke nochmals.

Hier wie es bei mir funktioniert.

$id=27372;
$mute=chr(0x80).chr(0x70).chr(0xC1).chr(0x3E);

$crc = (ord($mute{0}) + (ord($mute{1}) << 8)) ^ (ord($mute{2}) + (ord($mute{3}) << 8));
$crc1 = chr($crc & 255);
$crc2 = chr(($crc >> 8) & 255);
$crc =$crc1.$crc2;

$data = "PCSEND".chr(2).chr(4).$mute.$crc;

COMPort_SendText($id, $data);

Gruss
Michael