Hallo,
hat zufällig noch jemand monitord kompiliert für Ubuntu und/oder Raspbian auf der Festplatte liegen?
Möchte es mal testen und bin nicht so der Experte...
Wäre mir eine große Hilfe :-)
Noch eine Frage: Könnt ihr eher das SVN-Rep oder das Github-Rep empfehlen?
SVN http://www.monitord.de/?article=7 bzw. http://svn.monitord.de/monitor/
Github https://github.com/schakko/monitord
Viele Grüße
Hallo zusammen,
vielleicht kann jemand helfen...
Wir setzten bis jetzt FMS32pro als Server ein, dort verbinden sich 3 Applikationen - ist also damit am Ende und die Auswertung ist auch nicht zu 100% gut!
Nun haben wir mal zum Test monitord installiert und in Betrieb genommen. Soweit hat alles gut Funktioniert lediglich haben wir ein Problem mit dem FMS32 Protokoll
Bei FMS werden die Felder 14 und 15 immer mit "0" ausgegeben genau so bei
ZVEI Felder 3 und 3 immer mit "0"
Hier sollte eigentlich die Soundkarte [0,1,2,3] und der Kanal [0,1] ausgegeben werden.
Wird aber immer die erste Karte und da der linke Kanal angezeigt also 0 0
Hat da jemand eine Idee??
Dankeschön
Grüße
Holger
Hallo Holger,
dafür braucht eis eine kleine Änderung im QuellCode des FMS32 Moduls. Die Kanalnummer wird intern weitergereicht, aber im FMS32 "Konverter" wird es nicht benutzt. Da wird es schlicht immer auf "0" gesetzt. Ist aber leicht anzupassen. In der SocketThreadFMS32.cpp in der Funktion createFMSOutputString() muss man Feld 14 und 15 setzen. Die Kanalnummer wird im Monitor 0 ..7 gezählt. 0/1 = Links/Rechts erste Karte, 2/3 = Links/Rechts zweite Karte usw. Diese Kanalnummer wird im MonitorResultSet durch den Auswerter im Datensatz eingetragen:
In der createFMSOutputString() aber nicht weiter verwendet. Dort muss dann nur wieder zurück auf Karte + Kanal gerechnet werden. Ich habe dafür aktuell nicht die Entwicklerumgebung installiert. Aber im Groben dann so (untested):Code:pRes->set("channelnum",convertIntToString(m_iChannelNum));
Im ZVEI dann genauso anpassen. Da sind es wohl die \t0\t0 = {Tab} 0 {Tab} 0 . Die immer Karte + Kanal 0 angeben.Code:std::string SocketThreadFMS32::createFMSOutputString(ModuleResultBase Result) { std::string socketText ; std::string Feld10="0"; std::string Feld11="0" ; std::string Feld12="0" ; std::string Feld13="" ; std::string Feld14="0" ; std::string Feld15="0" ; int SndKarte=0 ; int Channel=0 ; int temp ; // Kanal in Soundkarte und Links/Rechts zurückrechnen temp=convertToInt( Result["channelnum]) ; SndKarte= temp / 2 ; Channel= temp % 2 ; Feld14 = convertIntToString(SndKarte) ; Feld15 = convertIntToString(Channel) ; socketText = std::string("FMSTlg") + "\t" + Result["fmskennung"] //fahrzeugKennung + "\t" + Result["bosdezimal"] //bosDezimalString // kein HEX + "\t" + Result["landdezimal"] //landDezimalString // kein HEX + "\t" + Result["bos"]+Result["land"]+Result["ort"] // bosString + landString + ortString + "\t" + Result["kfz"] + "\t" + Result["statusdezimal"] // kein HEX + "\t" + Result["baustufe"] //baustufeString + "\t" + Result["richtung"] //richtungString + "\t" + Result["tki"] //tkiString ; if (Result["textuebertragung"].size()>0) { if (convertToInt(Result["richtung"])==0) { // Vom Fahrzeug, Ortstaste wird im Moment // nicht unterstuetzt Feld10="2"; Feld11="0" ; Feld12="0" ; Feld13=Result["textuebertragung"] ; } else if (convertToInt(Result["richtung"])==1) { // Von der Leitstelle Feld10="0"; Feld11="-1" ; Feld12="0" ; Feld13=Result["textuebertragung"] ; } } socketText +="\t"+Feld10 // 10: Folgetelegramm vom Fzg 0=Nein,1=Ort,2=Sonst + "\t"+Feld11 // 11: Folgetelegramm von der Lst 0=Nein, 1=ja + "\t"+Feld12 // 12: Folgenummer dezimal (Feld10=1, Ortstaste) + "\t"+Feld13 // 13: Folgetelegramm (vom Fzg in Hex, von der Lst in ASCII + "\t"+Feld14 // 14: Soundkarte(0..3) + "\t"+Feld15 // 15: Kanal (0,1) ; ; return socketText ; }
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)