Ergebnis 1 bis 15 von 94

Thema: Informationen zum monitord 2.0

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    22.12.2015
    Beiträge
    1

    monitord kompiliert für Ubuntu

    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

  2. #2
    Registriert seit
    29.04.2016
    Beiträge
    6

    Problem mit dem FMS32 Protokpll von monitord

    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

  3. #3
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    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:

    Code:
    pRes->set("channelnum",convertIntToString(m_iChannelNum));
    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:
    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 ;
    }
    Im ZVEI dann genauso anpassen. Da sind es wohl die \t0\t0 = {Tab} 0 {Tab} 0 . Die immer Karte + Kanal 0 angeben.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •