public DatabaseTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary<ConnectionConfig, Object> activConnections, bool StartedAsService) { this.StartedAsService = StartedAsService; this.dbInterface = dbInterface; this.datasetConfig = datasetConfig; this.activConnections = activConnections; this.triggerConn = (DatabaseConnection) activConnections[datasetConfig.TriggerConnection]; ak_interval = NoDataInterval; }
private void EstablishConnections() { foreach (ConnectionConfig connectionConfig in akConfig.Connections) { LibNoDaveConfig plcConnConf = connectionConfig as LibNoDaveConfig; TCPIPConfig tcpipConnConf = connectionConfig as TCPIPConfig; DatabaseConfig dbConnConf = connectionConfig as DatabaseConfig; if (plcConnConf != null) { Logging.LogText("Connection: " + connectionConfig.Name + " is starting...", Logging.LogLevel.Information); PLCConnection tmpConn = new PLCConnection(plcConnConf.Configuration); try { tmpConn.Connect(); if (!plcConnConf.StayConnected) tmpConn.Disconnect(); } catch (Exception ex) { Logging.LogText("Connection: " + connectionConfig.Name, ex, Logging.LogLevel.Warning); } ConnectionList.Add(connectionConfig, tmpConn); } else if (dbConnConf != null) { var tmpConn = new DatabaseConnection(dbConnConf); try { tmpConn.Connect(); } catch (Exception ex) { Logging.LogText("Connection: " + connectionConfig.Name, ex, Logging.LogLevel.Warning); } ConnectionList.Add(connectionConfig, tmpConn); } else if (tcpipConnConf != null) { //todo: legth of tcp conn //TCPFunctionsAsync tmpConn = new TCPFunctionsAsync(new SynchronizationContext(), tcpipConnConf.IPasIPAddres, tcpipConnConf.Port, !tcpipConnConf.PassiveConnection, 0); //tmpConn.Connect(); //ConnectionList.Add(connectionConfig, tmpConn); } } myReEstablishConnectionsThreads = new List<Thread>(); foreach (ConnectionConfig connectionConfig in akConfig.Connections) { if (connectionConfig is LibNoDaveConfig) { var thrd = new Thread(new ParameterizedThreadStart(ReEstablishConnectionsThreadProc)) { Name = "EstablishConnectionsThreadProc" }; thrd.Start(connectionConfig as LibNoDaveConfig); this.myReEstablishConnectionsThreads.Add(thrd); } } }