public bool AddFSSSignalsDiscoveredToSystem(JournalFSSSignalDiscovered jsd, ISystem sys)  // background or foreground.. FALSE if you can't process it
        {
            SystemNode sn = GetOrCreateSystemNode(sys);

            foreach (var fs in jsd.Signals)
            {
                int indexprev = sn.FSSSignalList.FindIndex(x => x.IsSame(fs));
                if (indexprev == -1)                        // if not found in signal list, store
                {
                    sn.FSSSignalList.Add(fs);
                }
                else
                {
                    sn.FSSSignalList[indexprev] = fs;       // replace, it may be more up to date info, such as a carrier info
                }
            }

            return(false);
        }
Exemplo n.º 2
0
        private void ProcessedSaved()
        {
            List <Tuple <JournalEntry, ISystem> > todelete = new List <Tuple <JournalEntry, ISystem> >();

            foreach (var e in ToProcess)
            {
                JournalSAAScanComplete jsaasc = e.Item1 as JournalSAAScanComplete;
                if (jsaasc != null)
                {
                    if (ProcessSAAScan(jsaasc, e.Item2, false))
                    {
                        todelete.Add(e);
                    }
                }
                JournalSAASignalsFound jsaasf = e.Item1 as JournalSAASignalsFound;
                if (jsaasf != null)
                {
                    if (ProcessSAASignalsFound(jsaasf, e.Item2, false))
                    {
                        todelete.Add(e);
                    }
                }
                JournalFSSSignalDiscovered jssdis = e.Item1 as JournalFSSSignalDiscovered;
                if (jssdis != null)
                {
                    if (AddFSSSignalsDiscoveredToSystem(jssdis, null, false))
                    {
                        todelete.Add(e);
                    }
                }
            }

            foreach (var je in todelete)
            {
                ToProcess.Remove(je);
            }
        }
Exemplo n.º 3
0
        // if processing later, sys will be null

        public bool AddFSSSignalsDiscoveredToSystem(JournalFSSSignalDiscovered jsd, ISystem sys, bool saveprocessinglater = true)
        {
            foreach (var fs in jsd.Signals)
            {
                SystemNode sn = null;

                // if system = null, must look up (we are reprocessing)
                // OR if we have system address, but it differs

                if (sys == null || (fs.SystemAddress != null && sys.SystemAddress != null && fs.SystemAddress != sys.SystemAddress))
                {
                    //if (saveprocessinglater == true)           //DEBUG ONLY keep for now
                    //{
                    //    System.Diagnostics.Debug.WriteLine("DEBUG - mismatch, save for processing later" + fs.SystemAddress);
                    //    SaveForProcessing(jsd, new SystemClass(fs.SystemAddress, null));
                    //    return false;
                    //}

                    ISystem oldsys = sys;       // for debug

                    sys = null;
                    foreach (var i in ScanDataByNameSysaddr)        // manual for now, unfort. don't want another structure
                    {
                        if (i.Value.System.SystemAddress == fs.SystemAddress)
                        {
                            sys = i.Value.System;
                            break;
                        }
                    }

                    if (sys == null)                     // not found..
                    {
                        if (saveprocessinglater == true) // if saving to list, store with a null system address
                        {
                            // System.Diagnostics.Debug.WriteLine("FSS Signals Can't find - storing for later " + fs.SystemAddress);
                            SaveForProcessing(jsd, new SystemClass(fs.SystemAddress, null));
                        }
                        else
                        {
                            //System.Diagnostics.Debug.WriteLine("FSS Signals can't find now" + fs.SystemAddress);
                        }
                        return(false);
                    }
                    else
                    {
                        //System.Diagnostics.Debug.WriteLine("FSS Signals sys address differs in {0} {1} found {2}", jsd.EventTimeUTC, oldsys?.Name, sys.Name);
                    }
                }

                sn = GetOrCreateSystemNode(sys);

                // look at systemaddress via sys and determine if match, if not, save to processing list

                int indexprev = sn.FSSSignalList.FindIndex(x => x.IsSame(fs));
                if (indexprev == -1)                        // if not found in signal list, store
                {
                    sn.FSSSignalList.Add(fs);
                }
                else
                {
                    sn.FSSSignalList[indexprev] = fs;       // replace, it may be more up to date info, such as a carrier info
                }
            }

            return(true);
        }