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"); }
//Открытие потоков 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); }); }