PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : monitord Client-Server Kommunikation ???



McBo
01.01.2014, 18:43
Hallo und ein gesundes neues Jahr 2014.

Um das Thema monitord ist es leider sehr ruhig geworden.

Ich hatte über die freien Tage etwas Zeit mal wieder zu spielen.

Dazu habe ich mir einen einfachen php-Socket-Client gebaut.


#!/usr/bin/php -q
<?php

$host = "127.0.0.1";
$port = 9333;
$message = "Hello Server";
echo "Message To server :".$message;
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// connect to server
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
// send string to server
socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");

do
{


// get server response
$result = socket_read ($socket, 1024) or die("Could not read server response\n");
echo "Reply From Server :".$result;

$message = "204:1:60"."\r\n";
socket_write($socket, $message, strlen($message));

}
while(true);

// close socket
socket_close($sock);

?>

Und habe mir als Refferenz diese Doku angesehen.
Klick (http://www.monitord.de/download/monitor-protokoll-03.pdf)

Die ZVEI und FMS-Meldungen kommen damit auf der Konsole an.
Was mir aber überhaut nicht gelingt, sind Steuerbefehle vom Client.



root@debian:~# ~/src/./socket.php
Message To server :Hello Server
Reply From Server :100;monitord 2.0svn READY
Reply From Server :300:1388598045:1:12345:0:756E6B6C617265204175736C 6F6573756E67
Reply From Server :300:1388598046:1:12345:0:756E6B6C617265204175736C 6F6573756E67


Also ein "210" bzw. "210 CR-LF" oder "210 \r\n"sollte mir doch Infos über den Server bringen.
Und ein "204:1:30" bzw. "204:1:30 CR-LF" oder "204:1:30 \r\n" sollte 30s Aufnehmen.

Wie muss den "CR-LF" am Ende der Zeile erfolgen?

Das ganze sollte doch auch mit PuTTY funktionieren.
Jedenfalls bekomme ich damit auch ZVEI Meldungen,
nur Befehle absetzen klappt nicht.

Danke und Gruß

Marcel

Buebchen
02.01.2014, 07:39
Hallo und ein frohes neues Jahr.

ohne den Quelltext aktuell hier zu haben: Ich denke, daß das Kommando bisher nicht implementiert ist.

Ist wohl ein bisschen das Henne-Ei-Problem. Keine Clients die so etwas brachen - ein Server der das bisher nicht umsetzt :)

Sollte im Kommando-Parser wohl mit nem Status "101:005" beantwortet werden. da hast Du Recht.

Wegen der Aufnahme musst Du mal im Log des monitord schauen. Das hatte ich experimentell schon drin. Ich weiß nur nicht, ob es auch den Weg bis ins SVN geschafft hatte.

McBo
02.01.2014, 07:49
Hi,

Gibt es für das Rec-Plugin ein extra Logfile?
Den Standard Log habe ich beim monitord auf Debug und Screen stehen. Da passiert beim Rec-Befehl leider nichts.

Wird an diesem Projekt noch weiter entwickelt?

Gruß Marcel


Sent from my iPhone using Tapatalk (http://tapatalk.com/m?id=1)

McBo
02.01.2014, 23:03
So, habe noch einmal getestet, bekomme keinerlei Debug-Meldungen beim Rec-Befehl. 😩


Sent from my iPhone using Tapatalk (http://tapatalk.com/m?id=1)

Buebchen
05.01.2014, 15:14
Also Aufnahme wurde damals irgendwann wieder rausgenommen:

http://www.funkmeldesystem.de/foren/showpost.php?p=397046&postcount=1

Die Plugins sind aber noch im SVN drin. Hab keine Build-Umgebung hier. Deswegen kann ich nicht schauen, ob er die denn richtig bauen würde. War sogar schon lame mit drin vorgesehen, um mp3 Files zu schreiben.

Also für die mutigen kann man es nochmal einschalten (was aber sicherlich nicht stabil läuft) - sonst wäre es ja drin geblieben.



case 204: // Record
say ("101:005\r\n") ; // 005:Not implemented
// auskommentiert, weil die Recording-Funktionalität nicht stabil/sicher ist.
// Rückmeldung an den Client: not implemented
// startRecording() ;
break ;


SocketThreadMonitord.cpp -> Zeile 174 bis 178 ändern: say() raus und startrecording() wieder reinnehmen.

McBo
05.01.2014, 17:54
@Buebchen

Danke für Deine Bemühungen.

Ich habe die Zeilen 174 bis 178 in der SocketThreadMonitord.cpp geändert.
Dann habe ich ein:

make uninstall
make clean
sudo ./configure --enable-plugins --with-alsa/lua5.1 --with-lua-suffix=5.1
sudo make
sudo make install

gemacht.

monitord startet und am Client (PuTTY auf Port 9333) kommt:
100;monitord 2.0svn READY

Ich kann aber absolut keine Befehle zum Server senden.

Also ein:
210
210\r\n
210CR-LF

oder ein:
204:1:60
204:1:60\r\n
204:1:60CR-LF

bringt absolut eine Reaktion mit PuTTY.
Mache ich da was falsch?
Wie kann ich das sonst noch testen?

ZVEI, und FMS-Meldungen kommen beim Client an.

Gruß

Marcel

Buebchen
06.01.2014, 19:18
Tjaaa...

Danach musst Du selbst mal schauen. Das ganze war halt noch nicht fertig. Eigentlich wirft er da schon noch ein Kommando an die Plugins. Schreib mal eine Debug-Ausgabe ins startrecording(). Da sollte er ja dann auf jeden Fall landen. Vielleicht hat da auch schon mal wer anders einen blick reingeworfen ?

McBo
06.01.2014, 20:37
Danach musst Du selbst mal schauen. Das ganze war halt noch nicht fertig.

Schade, so fit bin ich in C / Linux leider nicht :-(.

Muß der Code nach jeder Änderung neu kompiliert werden?

Wie kann ich prüfen ob meine Komandos am Server ankommen?
Kann ich da auch als Debug ein "echo" + Variable in die "SocketThreadMonitord.cpp" schreiben?

Ich würde die Rec-Funktion ja auch mit PHP nachbauen,
nur habe ich da ein Problem mit dem belegten Sounddevice.

Wie habt ihr das gelöst? Schreibt ihr das Audio-Signal in eine Pipe?
Könnte ich die auch anzapfen?

Schade das das Projekt vor Fertigstellung eingeschlafen ist.


Gruß

Marcel

McBo
08.01.2014, 21:23
@Buebchen

Kannst Du mir dabei bitte noch helfen?

Gruß

Marcel


Sent from my iPhone using Tapatalk (http://tapatalk.com/m?id=1)

hannes
25.12.2017, 22:07
Hat jemand die Client -> Server Kommunikation zum laufen gebracht?
Bei mir Antwortet der Server nicht noch steht was im Logfile. :/

Hat jemand das mit der Aufzeichnung gelöst?