Example #1
0
        //Открыть поток реального времени, управляемы очередью прокси
        private ProxyThread OpenProxyThread(int id, string name, QueuedProxyConnect proxy)
        {
            var t = new ProxyThread(this, id, name, null, proxy);

            Threads.Add(id, t, true);
            return(t);
        }
Example #2
0
 public CalibratorConnect(RealTimeThread thread, string connectCode, string complect, string providerCode, string providerInf)
 {
     SourceConnect = new SourceConnect(thread.Logger, connectCode, complect);
     SourceConnect.JoinProvider(thread.ProvidersFactory.CreateProvider(thread.Logger, providerCode, providerInf));
     UserProxyConnect    = new ProxyConnect("UserProxy");
     ArchiveProxyConnect = new QueuedProxyConnect("ArchiveProxy");
 }
Example #3
0
 //Открытие потоков
 public void OpenThreads(double periodSeconds, double lateSeconds)
 {
     StartLog("Открытие потоков").Run(() =>
     {
         ReadThread    = OpenRealTimeThread(1, "Source", periodSeconds, lateSeconds);
         var aproxy    = new QueuedProxyConnect("ArchiveProxy");
         ReturnConnect = new ProxyConnect("UserProxy");
         ReadThread.Proxies.Add(aproxy.Code, aproxy);
         ReadThread.Proxies.Add(ReturnConnect.Code, ReturnConnect);
         foreach (var s in SchemeSources.Values)
         {
             var con = (IReadingConnect)ReadThread.AddConnect(s.Code);
             aproxy.InConnects.Add(s.Code, con);
             ReturnConnect.InConnects.Add(s.Code, con);
         }
         ArchiveThread = OpenProxyThread(2, "Archive", aproxy);
         ArchiveThread.AddConnect("Archive");
         ArchiveThread.Proxies.Add("ArchiveProxy", aproxy);
         UserThread = OpenRealTimeThread(3, "Return", periodSeconds);
         UserThread.Proxies.Add(ReturnConnect.Code, ReturnConnect);
     });
 }