private void ToggleSwitch_Toggled(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (this.PivotGPIOConnectors.SelectedItem == null)
            {
                return;
            }

            GPIOEnvironmentConnector con = this.PivotGPIOConnectors.SelectedItem as GPIOEnvironmentConnector;

            if (con == null)
            {
                return;
            }

            ToggleSwitch tgl = sender as ToggleSwitch;

            if (tgl != null)
            {
                GPIOObject GPIOObj = tgl.Tag as GPIOObject;
                if (GPIOObj != null)
                {
                    bool oldValue = (GPIOObj.SetValue > 0)  ? true : false;

                    if (oldValue != tgl.IsOn)
                    {
                        GPIOObj.SetValue      = tgl.IsOn ? 1 : 0;
                        GPIOObj.IsFlankActive = true;
                        con.UpdateInputPropertySets(GPIOObj);
                        GPIOObj.IsFlankActive = false;
                    }
                }
            }
        }
        public async Task <bool> readListenerDatafromLocalStorage()
        {
            m_LocalStorageSettings.SetSourceIDName("FingerSensorsAppData");

            Windows.Storage.ApplicationDataCompositeValue composite = m_LocalStorageSettings.getCompositeValue();
            int Idx = 0;


            bool bdata = readStationEnvironmentDatafromLocalStorage(m_StationEnvironment, composite, Idx);

            while (true)
            {
                GPIOEnvironmentConnector con = await m_StationEnvironment.GPIOEnvironmentConnectors.addConnector();

                bdata = readGPIOStationEnvironmentDatafromLocalStorage(con, composite, Idx);
                if (!bdata)
                {
                    // listener wieder aus Queue löshen, wenn nicht benötigt
                    m_StationEnvironment.GPIOEnvironmentConnectors.deleteConnector(con);
                    //    delete listener;
                    break;
                }
                Idx++;
            }

            if (m_StationEnvironment.GPIOEnvironmentConnectors.EnvironmentConnectors.Count == 0) // Add Dummy
            {
                GPIOEnvironmentConnector con = await m_StationEnvironment.GPIOEnvironmentConnectors.addConnector();
            }



            return(bdata);
        }
        public bool writeListenerDatatoLocalStorage()
        {
            m_LocalStorageSettings.SetSourceIDName("FingerSensorsAppData");

            m_LocalStorageSettings.deleteCompositeValue(); // vor jedem Schreiben alles löschen



            Windows.Storage.ApplicationDataCompositeValue composite = m_LocalStorageSettings.getCompositeValue();

            int Idx = 0;

            writeStationEnvironmenttoLocalStorage(m_StationEnvironment, composite, Idx);

            for (int i = 0; i < m_StationEnvironment.GPIOEnvironmentConnectors.EnvironmentConnectors.Count; i++)
            {
                GPIOEnvironmentConnector con = m_StationEnvironment.GPIOEnvironmentConnectors.EnvironmentConnectors[i];
                writeGPIOStationEnvironmenttoLocalStorage(con, composite, i);
            }

            //      writeGPIOStationEnvironmenttoLocalStorage(m_StationEnvironment, composite, Idx);

            m_LocalStorageSettings.writeCompositeValuetoLocalStorage();

            return(true);
        }
        public bool readGPIOStationEnvironmentDatafromLocalStorage(GPIOEnvironmentConnector StationEnvironment, Windows.Storage.ApplicationDataCompositeValue composite, int ListenerIdx)
        {
            if (m_localStorage == null)
            {
                return(false);
            }
            m_localStorage.SetSourceIDName("StationEnvironment.GPIO", ListenerIdx);


            int  Idx      = -1;
            bool bStoreOk = m_localStorage.readSettingsfromLocalStorage(composite, Idx);

            if (bStoreOk)
            {
                string StringValue;

                int IntValue;

                bool bok = m_localStorage.readStringSettingsfromLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.HostName", Idx), out StringValue);
                if (StringValue.Count() > 0)
                {
                    StationEnvironment.HostName = StringValue;
                }



                bok = m_localStorage.readIntegerSettingsfromLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.Port", Idx), out IntValue);
                if (IntValue > 0)
                {
                    StationEnvironment.Port = IntValue;
                }



                bok = m_localStorage.readIntegerSettingsfromLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.GPIOConnectorEnable", Idx), out IntValue);
                StationEnvironment.GPIOConnectorEnable = Convert.ToBoolean(IntValue);

                for (int i = 0; i < StationEnvironment.GPIOOInOutBanks.InOutBanks.Count; i++)
                {
                    GPIOOBank bank = StationEnvironment.GPIOOInOutBanks.InOutBanks[i];

                    foreach (GPIOObjects OutPuts in bank.GPIOBanks)
                    {
                        foreach (GPIOObject GPIOObj in OutPuts.GPIOs)
                        {
                            string property;
                            bok = m_localStorage.readStringSettingsfromLocalStorage(composite, m_localStorage.getCompositePropertyIDName(GPIOObj.GPIOName, Idx), out property);
                            if (bok)
                            {
                                GPIOObj.CreateGPIOObjectByStorageSettings(property);
                            }
                        }
                    }
                }
            }

            return(bStoreOk);
        }
        private void ButtonDeleteConnecor(object sender, RoutedEventArgs e)
        {
            GPIOEnvironmentConnector toDelete = PivotSocketListener.SelectedItem as GPIOEnvironmentConnector;

            if (toDelete != null)
            {
                m_Environment.GPIOEnvironmentConnectors.deleteConnector(toDelete);
            }
        }
        public bool writeGPIOStationEnvironmenttoLocalStorage(GPIOEnvironmentConnector StationEnvironment, Windows.Storage.ApplicationDataCompositeValue composite, int ListenerIdx)
        {
            if (m_localStorage == null)
            {
                return(false);
            }

            m_localStorage.SetSourceIDName("StationEnvironment.GPIO", ListenerIdx);


            int Idx = -1;

            bool bok = m_localStorage.writeSettingsToLocalStorage(composite, Idx);

            bok = m_localStorage.writeStringSettingsToLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.HostName", Idx), StationEnvironment.HostName);
            bok = m_localStorage.writeIntegerSettingsToLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.Port", Idx), StationEnvironment.Port);

            bok = m_localStorage.writeIntegerSettingsToLocalStorage(composite, m_localStorage.getCompositePropertyIDName("StationEnvironment.GPIOConnectorEnable", Idx), Convert.ToInt32(StationEnvironment.GPIOConnectorEnable));



            for (int i = 0; i < StationEnvironment.GPIOOInOutBanks.InOutBanks.Count; i++)
            {
                GPIOOBank bank = StationEnvironment.GPIOOInOutBanks.InOutBanks[i];

                foreach (GPIOObjects OutPuts in bank.GPIOBanks)
                {
                    foreach (GPIOObject GPIOObj in OutPuts.GPIOs)
                    {
                        string property = GPIOObj.getPropertyforStorageSettings();
                        bok = m_localStorage.writeStringSettingsToLocalStorage(composite, m_localStorage.getCompositePropertyIDName(GPIOObj.GPIOName, Idx), property) && bok;
                    }
                }
            }



            return(bok);
        }