Пример #1
0
        private void myRefreshStationList()
        {
            IPEndPoint NumEndPoint = default(IPEndPoint);

            // set all stations not discovered
            for (int i = 0; i <= discoveredStations.GetTable.Count - 1; i++)
            {
                discoveredStations.set_Discovered(i, false);
            }

            // add or set discovered stations
            CStationConnectionData[] UDPStations = searchStationsUPD.GetDiscoveredStations();
            int idx = 0;

            foreach (CStationConnectionData stnData in UDPStations)
            {
                NumEndPoint = stnData.IPEndPointValue;
                idx         = discoveredStations.ExistsStation(NumEndPoint);
                if (idx >= 0)
                {
                    discoveredStations.set_Discovered(idx, true);
                }
                else
                {
                    discoveredStations.AddStation(NumEndPoint, stnData);
                }
            }

            // delete stations not in discovered table
            for (int i = discoveredStations.GetTable.Count - 1; i >= 0; i--)
            {
                if (discoveredStations.get_Discovered(i) == false)
                {
                    discoveredStations.RemoveStation(i);
                }
            }

            iRefreshUDPCount = 0;
        }