protected override void OnNewIntent(Intent intent)
        {
            base.OnNewIntent(intent);

            if (intent is null)
            {
                return;
            }
            var tag = (Tag)intent.GetParcelableExtra(NfcAdapter.ExtraTag);

            if (tag != null)
            {
                var textView = FindViewById <TextView>(Resource.Id.textView1);
                var result   = NfcReader.Read(tag);
                foreach (var item in result.blocks)
                {
                    var rireki = new RirekiParse(item);
                    textView.Text += rireki.ToString();
                }
            }
        }
        public void OnInputClicked(InputClickedEventData eventData)
        {
            SenActFensterName = this.gameObject.transform.parent.parent.parent.name;
            SenActFenster     = this.gameObject.transform.parent.parent.parent.gameObject;
            ButtonName        = this.name;

            StartWertFloat = SenActFenster.transform.GetComponent <LogicSenActInput>().GetSenValue();
            SourceName     = SenActFenster.transform.GetComponent <LogicSenActInput>().SourceName;

            Summand = ((Sensor)ItemManager.getInstance().getItem(SourceName)).interval;

            Debug.Log("Mein Sourcename ist " + SourceName);

            if (ButtonName == "Button_Down")
            {
                if (!SourceName.Equals(Settings.NFCReader) && !SourceName.Equals(Settings.myoArmband))
                {
                    AktuellerWert = StartWertFloat - Summand;
                    SenActFenster.transform.GetComponent <LogicSenActInput>().SetSenValue(AktuellerWert);
                }
                if (SourceName.Equals(Settings.NFCReader))
                {
                    //SenActFenster.transform.GetComponent<LogicSenActInput>().SetSenValue(AktuellerWert);
                    NfcReader nfc = (NfcReader)ItemManager.getInstance().getItem(SourceName);
                    DictIndexmax = nfc.getDict().Count;
                    Debug.Log("DictIndexmax= " + DictIndexmax + " - Das Dictionary enthält: " + DictIndexmax + " Objekte.");
                    StartIndex = SenActFenster.transform.GetComponent <LogicSenActInput>().GetDictIndex();
                    Debug.Log("StartIndex= " + StartIndex);
                    if (StartIndex == 0)
                    {
                        StartIndex = DictIndexmax - 1;
                        Debug.Log("neuerIndex ist: " + StartIndex);
                    }
                    else
                    {
                        StartIndex = StartIndex - 1;
                        Debug.Log("neuerIndex ist: " + StartIndex);
                    }
                    Debug.Log("Index ist immernoch: " + StartIndex);
                    SenActFenster.transform.GetComponent <LogicSenActInput>().SetDictIndex(StartIndex);
                    Debug.Log("jetzt wurde der index mit Set übergeben");
                }
                else
                {
                    if (SourceName.Equals(Settings.myoArmband))
                    {
                        MyoArmband myo = (MyoArmband)ItemManager.getInstance().getItem(SourceName);
                        DictIndexmax = myo.getDict().Count;
                        Debug.Log("DictIndexmax= " + DictIndexmax + " - Das Dictionary enthält: " + DictIndexmax + " Objekte.");
                        StartIndex = SenActFenster.transform.GetComponent <LogicSenActInput>().GetDictIndex();
                        Debug.Log("StartIndex= " + StartIndex);
                        if (StartIndex == 0)
                        {
                            StartIndex = DictIndexmax - 1;
                            Debug.Log("neuerIndex ist: " + StartIndex);
                        }
                        else
                        {
                            StartIndex = StartIndex - 1;
                            Debug.Log("neuerIndex ist: " + StartIndex);
                        }
                        Debug.Log("Index ist immernoch: " + StartIndex);
                        SenActFenster.transform.GetComponent <LogicSenActInput>().SetDictIndex(StartIndex);
                        Debug.Log("jetzt wurde der index mit Set übergeben");
                    }
                    Debug.Log("ButtonDown gedrückt aber was soll getan werden?");
                }
            }

            if (ButtonName == "Button_Up")
            {
                if (!SourceName.Equals(Settings.NFCReader) && !SourceName.Equals(Settings.myoArmband))
                {
                    AktuellerWert = StartWertFloat + Summand;
                    SenActFenster.transform.GetComponent <LogicSenActInput>().SetSenValue(AktuellerWert);
                }
                if (SourceName.Equals(Settings.NFCReader))
                {
                    //SenActFenster.transform.GetComponent<LogicSenActInput>().SetSenValue(AktuellerWert);
                    NfcReader nfc = (NfcReader)ItemManager.getInstance().getItem(SourceName);
                    DictIndexmax = nfc.getDict().Count;
                    Debug.Log("DictIndexmax= " + DictIndexmax + " - Das Dictionary enthält: " + DictIndexmax + " Objekte.");
                    StartIndex = SenActFenster.transform.GetComponent <LogicSenActInput>().GetDictIndex();
                    Debug.Log("StartIndex= " + StartIndex);

                    if (StartIndex == DictIndexmax - 1)
                    {
                        StartIndex = 0;
                        Debug.Log("neuerIndex ist: " + StartIndex);
                    }
                    else
                    {
                        StartIndex = StartIndex + 1;
                        Debug.Log("neuerIndex ist: " + StartIndex);
                    }
                    Debug.Log("Index ist immernoch: " + StartIndex);
                    SenActFenster.transform.GetComponent <LogicSenActInput>().SetDictIndex(StartIndex);
                    Debug.Log("jetzt wurde der index mit Set übergeben");
                }
                else
                {
                    if (SourceName.Equals(Settings.myoArmband))
                    {
                        MyoArmband myo = (MyoArmband)ItemManager.getInstance().getItem(SourceName);
                        DictIndexmax = myo.getDict().Count;
                        Debug.Log("DictIndexmax= " + DictIndexmax + " - Das Dictionary enthält: " + DictIndexmax + " Objekte.");
                        StartIndex = SenActFenster.transform.GetComponent <LogicSenActInput>().GetDictIndex();
                        Debug.Log("StartIndex= " + StartIndex);

                        if (StartIndex == DictIndexmax - 1)
                        {
                            StartIndex = 0;
                            Debug.Log("neuerIndex ist: " + StartIndex);
                        }
                        else
                        {
                            StartIndex = StartIndex + 1;
                            Debug.Log("neuerIndex ist: " + StartIndex);
                        }
                        Debug.Log("Index ist immernoch: " + StartIndex);
                        SenActFenster.transform.GetComponent <LogicSenActInput>().SetDictIndex(StartIndex);
                        Debug.Log("jetzt wurde der index mit Set übergeben");
                    }
                    Debug.Log("ButtonDown gedrückt aber was soll getan werden?");
                }
            }
            Debug.Log("Mein SourceName ist: " + SourceName);
            if (SourceName.Equals(Settings.NFCReader))
            {
                Debug.Log("Mein SourceName ist: " + SourceName + " - und dies ist die NFC-Ausgabe");
                NfcReader nfc = (NfcReader)ItemManager.getInstance().getItem(SourceName);
                //UbergabeString = (string)(nfc.getDict()[StartIndex]); // würde auch gehen
                UbergabeString = nfc.getNamebyIndex(StartIndex);
                Debug.Log("(fall NFCreader)mein ÜbergabeString ist: " + UbergabeString);
            }
            else
            {
                if (SourceName.Equals(Settings.myoArmband))
                {
                    Debug.Log("Mein SourceName ist: " + SourceName + " - und dies ist die Myo-Ausgabe");
                    MyoArmband myo = (MyoArmband)ItemManager.getInstance().getItem(SourceName);
                    //UbergabeString = (string)(nfc.getDict()[StartIndex]); // würde auch gehen
                    UbergabeString = myo.getNamebyIndex(StartIndex);
                    Debug.Log("(fall Myo)mein ÜbergabeString ist: " + UbergabeString);
                }
                else
                {
                    Debug.Log("Mein SourceName ist: " + SourceName + "und ich bin kein NFC-Leser");
                    UbergabeString = AktuellerWert.ToString();
                }
            }
            SenActFenster.transform.GetChild(0).GetChild(2).GetChild(2).GetComponent <Text>().text = UbergabeString;
            SenActFenster.transform.GetComponent <LogicSenActInput>().SetSenValueString(UbergabeString);
        }
        public void OnInputClicked(InputClickedEventData eventData)
        {
            //Needs: SourceName, TargetName, ActuatorOperation, ConditionOperator, rightSide of Condition as String

            //SensActConnection.commands targetCommand;

            SenActFensterName = this.gameObject.transform.parent.name;
            SenActFenster     = this.gameObject.transform.parent.gameObject;

            this.LineID         = SenActFenster.GetComponent <LogicSenActInput>().LineID;
            this.SourceNamelong = SenActFenster.GetComponent <LogicSenActInput>().SourceName;
            this.TargetNamelong = SenActFenster.GetComponent <LogicSenActInput>().TargetName;
            this.condOperator   = SenActFenster.GetComponent <LogicSenActInput>().GetOperator();

            bool targetOp = SenActFenster.GetComponent <LogicSenActInput>().GetTargetStatus();

            if (!targetOp)
            {
                targetCommand = SensActConnection.commands.OFF;
            }
            else
            {
                targetCommand = SensActConnection.commands.ON;
            }

            Item source = ItemManager.getInstance().getItem(SourceNamelong);
            Item target = ItemManager.getInstance().getItem(TargetNamelong);

            if (source is NfcReader || source is MyoArmband)
            {
                this.rightSideString = SenActFenster.GetComponent <LogicSenActInput>().GetSenValueString();
            }
            else
            {
                this.rightSide = SenActFenster.GetComponent <LogicSenActInput>().GetSenValue();
            }

            if (source is Sensor && target is Actuator)
            {
                if (!ConnectionManager.getInstance().getConnections().ContainsKey(LineID))
                {
                    Sensor   sSens   = (Sensor)source;
                    Actuator tDimmer = (Actuator)target;
                    if (source is NfcReader || source is MyoArmband)
                    {
                        if (source is NfcReader)
                        {
                            NfcReader nfcr = (NfcReader)source;
                            nc = ConnectionCreator.createNfcActConnection(LineID, SourceNamelong, TargetNamelong, rightSideString, condOperator, targetCommand);
                        }
                        else
                        {
                            MyoArmband myoa = (MyoArmband)source;
                            mc = ConnectionCreator.createMyoActConnection(LineID, SourceNamelong, TargetNamelong, rightSideString, condOperator, targetCommand);
                        }
                    }
                    else
                    {
                        c = ConnectionCreator.createSensActConnection(LineID, SourceNamelong, TargetNamelong, rightSide, condOperator, targetCommand);
                    }
                    ConnectionManager.getInstance().startConnection(LineID);
                }
                else
                {
                    if (source is NfcReader || source is MyoArmband)
                    {
                        if (source is NfcReader)
                        {
                            nc = (NfcActConnection)ConnectionManager.getInstance().getConnection(LineID);
                        }
                        else
                        {
                            mc = (MyoActConnection)ConnectionManager.getInstance().getConnection(LineID);
                        }
                    }
                    else
                    {
                        c = (SensActConnection)ConnectionManager.getInstance().getConnection(LineID);
                    }
                    ConnectionManager.getInstance().startConnection(LineID);
                }
            }

            SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
            this.transform.localScale = new Vector3(0, 0, 0);
        }
        void Update()
        {
            if (c != null || nc != null || mc != null)
            {
                updateCounter++;

                if (updateCounter >= Settings.requestUpdateNumber)
                {
                    if (c != null)
                    {
                        if (c.connState.Equals(Connection.States.Active))
                        {
                            Item     source = ItemManager.getInstance().getItem(SourceNamelong);
                            Actuator target = (Actuator)ItemManager.getInstance().getItem(TargetNamelong);

                            string leftSide = source.state;

                            float leftValue  = float.Parse(leftSide);
                            float rightValue = rightSide;

                            switch (c.condOperator)
                            {
                            case LogicSenActInput.Operatoren.kleiner:
                            {
                                if (leftValue < rightValue)
                                {
                                    if (c.targetCommand.Equals(SensActConnection.commands.ON))
                                    {
                                        StartCoroutine(target.sendON());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                    else
                                    {
                                        StartCoroutine(target.sendOFF());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                }
                                break;
                            }

                            case LogicSenActInput.Operatoren.gleich:
                            {
                                if (leftValue == rightValue)
                                {
                                    if (c.targetCommand.Equals(SensActConnection.commands.ON))
                                    {
                                        StartCoroutine(target.sendON());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                    else
                                    {
                                        StartCoroutine(target.sendOFF());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                }
                                break;
                            }

                            case LogicSenActInput.Operatoren.groesser:
                            {
                                if (leftValue > rightValue)
                                {
                                    if (c.targetCommand.Equals(SensActConnection.commands.ON))
                                    {
                                        StartCoroutine(target.sendON());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                    else
                                    {
                                        StartCoroutine(target.sendOFF());
                                        ConnectionManager.getInstance().stopConnection(c.id);
                                        SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                        SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                    }
                                }
                                break;
                            }

                            default:
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (nc != null)
                        {
                            if (nc.connState.Equals(Connection.States.Active))
                            {
                                Item     source = ItemManager.getInstance().getItem(SourceNamelong);
                                Actuator target = (Actuator)ItemManager.getInstance().getItem(TargetNamelong);

                                NfcReader nfcr     = (NfcReader)source;
                                string    leftSide = nfcr.niceState;

                                if (nc.condOperator.Equals(LogicSenActInput.Operatoren.gleich))
                                {
                                    if (leftSide.Equals(nc.rightSide))
                                    {
                                        if (nc.targetCommand.Equals(SensActConnection.commands.ON))
                                        {
                                            StartCoroutine(target.sendON());
                                            ConnectionManager.getInstance().stopConnection(nc.id);
                                            SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                            SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                        }
                                        else
                                        {
                                            StartCoroutine(target.sendOFF());
                                            ConnectionManager.getInstance().stopConnection(nc.id);
                                            SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                            SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (mc != null)
                            {
                                if (mc.connState.Equals(Connection.States.Active))
                                {
                                    Item     source = ItemManager.getInstance().getItem(SourceNamelong);
                                    Actuator target = (Actuator)ItemManager.getInstance().getItem(TargetNamelong);

                                    MyoArmband myoa = (MyoArmband)source;

                                    string leftSide = myoa.niceState;

                                    if (mc.condOperator.Equals(LogicSenActInput.Operatoren.gleich))
                                    {
                                        if (leftSide.Equals(mc.rightSide))
                                        {
                                            if (mc.targetCommand.Equals(SensActConnection.commands.ON))
                                            {
                                                StartCoroutine(target.sendON());
                                                ConnectionManager.getInstance().stopConnection(mc.id);
                                                SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                                SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                            }
                                            else
                                            {
                                                StartCoroutine(target.sendOFF());
                                                ConnectionManager.getInstance().stopConnection(mc.id);
                                                SenActFenster.transform.GetChild(3).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
                                                SenActFenster.transform.GetChild(1).transform.localScale = new Vector3(0, 0, 0);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    updateCounter = 0;
                }
            }
        }