Example #1
0
    // Use this for initialization
    void Start()
    {
        if (GetComponent <NetworkIdentity>().isServer)
        {
            IniFile ini = new IniFile("Assets\\Scripts\\FahrradCom.EXE.ini");


            string ip1 = ini.IniReadValue("TCP", "IP");


            avr = new AVR_NetClient(ini.IniReadValue("TCP", "IP"),
                                    Int32.Parse(ini.IniReadValue("TCP", "Port")),
                                    Int32.Parse(ini.IniReadValue("TCP", "BufferSize")));

            Debug.Log("avr" + avr);

            speed = new Speed(Int32.Parse(ini.IniReadValue("Speed", "SensorCount")),
                              Int32.Parse(ini.IniReadValue("Speed", "SpeedSample")),
                              Double.Parse(ini.IniReadValue("Speed", "WheelLine")));

            //Debug.Log (ini.IniReadValue ("Speed", "SensorCount") + ini.IniReadValue ("Speed", "SpeedSample") + ini.IniReadValue ("Speed", "WheelLine"));

            // Winkel
            Angle angle = new Angle(Int32.Parse(ini.IniReadValue("Angle", "SensorMinValue")),
                                    Int32.Parse(ini.IniReadValue("Angle", "SensorMaxValue")),
                                    Int32.Parse(ini.IniReadValue("Angle", "SensorRange")),
                                    ini.IniReadValue("Angle", "SwitchDirection") == "0" ? true : false);


            // Daten zum lesen via TCP - die werden immer abgefragt
            NetData rd = new NetData();
            // Zum Beispiel:
            rd.addData(CONST.getANGLE());   //Winkel
            rd.addData(CONST.getSPEED());   //Geschwindigkeit
                                            // rd.addData(CONST.getSTATE());	//Status


            // Zuordnung der Datensets für die Kommunikation mit AVR
            avr.setDataToRead(rd);



            /* Ein Thread für die Kommunikation.
             * Ist wichtig vor allem für die Geschwindigkeitsberechnung.
             * Der SpeedSensor liefert eigentlich nur FALSE, wenn die MetallStücke am Rad (9 Stück)
             * vorbei "fahren" und TRUE wenn "die Luft rein ist". Die Abstände sind gleich (?),
             * deswegen auf Grund bekantes Radumfangs, auch die Teilstrecken (zwischen 2 Metallstücken)
             * einfach zu berechnen.
             * Für die Geschwindigkeit fehlt nun nur die Zeit. Die bekommt man, in dem man die Zeituterschiede
             * in Millisekunden zwischen 2 SpeedSensor-Aktivierungen ablesen kann. Je genauer desto besser.
             */
            tavr = new Thread(avr.startThread);
            tavr.Start();

            // Thread zum Lesen von Daten von AVR
            trd  = new Test_ReadData(speed, angle, rd, Int32.Parse(ini.IniReadValue("Speed", "SpeedResetAfter")));
            ttrd = new Thread(trd.StartThread);
            ttrd.Start();
        }
    }