private void btnEnable_Click(object sender, EventArgs e) { _secsGem?.Dispose(); _secsGem = new SecsGem( radioActiveMode.Checked, IPAddress.Parse(txtAddress.Text), (int)numPort.Value, (int)numBufferSize.Value) { Logger = _logger, DeviceId = (ushort)numDeviceId.Value }; _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker) delegate { lbStatus.Text = _secsGem.State.ToString(); }); }; _secsGem.PrimaryMessageReceived += PrimaryMessageReceived; btnEnable.Enabled = false; _secsGem.Start(); btnDisable.Enabled = true; }
private void btnTest_Click(object sender, RoutedEventArgs e) { try { var ev = new ManualResetEvent(false); var config = GetConnectionConfig(); var ip = IPAddress.Parse(config.Attribute("ip").Value); using (var secsGem = new SecsGem( (bool)config.Attribute("isActive"), IPAddress.Parse(config.Attribute("ip").Value), (int)config.Attribute("port"))) { secsGem.ConnectionChanged += delegate { if (secsGem.State == ConnectionState.Selected) { ev.Set(); } }; secsGem.Start(); if (!ev.WaitOne(10000)) { throw new Exception("timeout"); } } MessageBox.Show("Successed"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Connection Fail"); } }
private async void btnEnable_Click(object sender, EventArgs e) { _secsGem?.Dispose(); _secsGem = new SecsGem( ip: IPAddress.Parse(txtAddress.Text), port: (int)numPort.Value, isActive: radioActiveMode.Checked, tracer: Logger, primaryMsgHandler: (primaryMsg, replyAction) => this.Invoke(new MethodInvoker(() => recvBuffer.Add(new RecvMessage { Msg = primaryMsg, ReplyAction = replyAction })))); _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker) delegate { lbStatus.Text = _secsGem.State.ToString(); }); }; btnEnable.Enabled = false; await _secsGem.Start(); btnDisable.Enabled = true; }
private void Test() { if (!radioActiveMode.Checked && !radioPassiveMode.Checked) { MessageBox.Show("Please Choice Connect Mode!!"); return; } _secsGem?.Dispose(); _secsGem = new SecsGem( radioActiveMode.Checked, IPAddress.Parse(txtAddress.Text), (int)numPort.Value, (int)numBufferSize.Value) { Logger = _logger, DeviceId = (ushort)numDeviceId.Value }; SetTimerSetting(); _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker) delegate { lbStatus.Text = _secsGem.State.ToString(); }); }; _secsGem.PrimaryMessageReceived += PrimaryMessageReceived; buttonConnect.Enabled = false; _secsGem.Start(); buttonDisconnect.Enabled = true; }
private void btnEnable_Click(object sender, EventArgs e) { _secsGem?.Dispose(); _secsGem = new SecsGem( radioActiveMode.Checked, radioActiveMode.Checked?IPAddress.Parse(txtAddress.Text):IPAddress.Any, (int)numPort.Value, (int)numBufferSize.Value) { Logger = _logger, DeviceId = (ushort)numDeviceId.Value }; _secsGem.LinkTestEnable = true; _secsGem.LinkTestInterval = 60000; _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker) delegate { lbStatus.Text = _secsGem.State.ToString(); if (_secsGem.State == ConnectionState.Selected && _secsGem.IsActive) { _secsGem.SendAsync(new SecsMessage(1, 13, "Online Request", Item.L(Item.A(), Item.A()))); } }); }; Settings1.Default.ActiveMode = radioActiveMode.Checked; Settings1.Default.Save(); _secsGem.PrimaryMessageReceived += PrimaryMessageReceived; btnEnable.Enabled = false; _secsGem.Start(); btnDisable.Enabled = true; }
public CentralWinform() { InitializeComponent(); IPAddress address = IPAddress.Parse("10.215.0.2"); _secsGem = new SecsGem( true, address, 5005) { DeviceId = 0, LinkTestInterval = 60000, T3 = 120, T5 = 30, T6 = 5, T7 = 100, T8 = 5, Logger = null }; _secsGem.ConnectionChanged += delegate { Invoke((MethodInvoker) delegate { Console.WriteLine("SECS/GEM " + _secsGem.State); gemStatusLabel88.Text = _secsGem.State.ToString(); eqpAddressStatusLabel.Text = "Device IP: " + _secsGem.DeviceIpAddress; if (_secsGem.State == Secs4Net.ConnectionState.Selected && !hasSentS1F3) { //EstablishComm //_secsGem.SendAsync(new SecsMessage(1, 13, "TestCommunicationsRequest", Item.L())); //Thread.Sleep(100); //Thread.Sleep(100); //Thread.Sleep(100); ////PurgeSpool //_secsGem.SendAsync(new SecsMessage(6, 43, "PurgeSpool", Item.U1(1))); //Thread.Sleep(100); ////DisableAllEvents //_secsGem.SendAsync(new SecsMessage(2, 37, "DisableAllEvents", Item.L(Item.Boolean(false), Item.L()))); ////DisableAllAlarms //_secsGem.SendAsync(new SecsMessage(5, 3, "DisableAllEvents", Item.L(Item.Boolean(false), Item.L()))); hasSentS1F3 = true; } }); }; _secsGem.PrimaryMessageReceived += PrimaryMsgHandler; _secsGem.Start(); }
private void Client_Load(object sender, EventArgs e) { Thread.CurrentThread.Name = "Main"; secsGem = new SecsGem(true, IPAddress.Parse("192.168.0.145"), 1024); secsGem.ConnectionChanged += SecsGem_ConnectionChanged; secsGem.PrimaryMessageReceived += SecsGem_PrimaryMessageReceived; secsGem.Start(); cimClient = new CIM4EQT(secsGem); cimClient.ScenarioInitialize(this); Application.ThreadException += Application_ThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; }
/// <summary> /// 场景初始化 /// <para>接口初始化和事件初始化不可同时使用,即如果初始化了相应场景的接口之后,对应场景下所有的事件将不会再被响应</para> /// </summary> /// <param name="itializeScenario">initialize场景回调方法接口</param> /// <param name="rCSCallBack">Remote Control场景回调方法接口</param> /// <param name="aMSCallBack">Alart Management场景回调方法接口</param> /// <param name="clock">Clock场景回调方法接口</param> /// <param name="eqtTerminalService">Equipment Terminal Service场景回调方法接口</param> /// <param name="recipeManagement">Prcess Program(Recipe) Management场景回调方法接口</param> /// <param name="dataCollection">Data Collection场景回调方法接口</param> public void ScenarioInitialize( IInitializeScenario itializeScenario = null, IRCSCallBack rCSCallBack = null, IAMSCallBack aMSCallBack = null, IClock clock = null, IEqtTerminalService eqtTerminalService = null, IRecipeManagement recipeManagement = null, IDataCollection dataCollection = null) { scenarioControllers.Add(Scenarios.Intialize_Scenario, new InitializeScenario(itializeScenario ?? this)); scenarioControllers.Add(Scenarios.Remote_Control, new RemoteControl(rCSCallBack ?? this)); scenarioControllers.Add(Scenarios.Alarm_Management, new AlarmManagement(aMSCallBack ?? this)); scenarioControllers.Add(Scenarios.Clock, new Clock(clock ?? this)); scenarioControllers.Add(Scenarios.Equipment_Terminal_Service, new EqtTerminalService(eqtTerminalService ?? this)); scenarioControllers.Add(Scenarios.Recipe_Management, new RecipeManagement(recipeManagement ?? this)); scenarioControllers.Add(Scenarios.Data_Collection, new DataCollection(dataCollection ?? this)); secsGemService.Start(); }
void menuItemGemEnable_Click(object sender, EventArgs e) { EapLogger.Info("SECS/GEM Start"); gemStatusLabel.Text = "Start"; _secsGem?.Dispose(); _secsGem = new SecsGem( EAPConfig.Instance.Mode == ConnectionMode.Active, IPAddress.Parse(EAPConfig.Instance.IP), EAPConfig.Instance.TcpPort, EAPConfig.Instance.SocketRecvBufferSize) { DeviceId = EAPConfig.Instance.DeviceId, LinkTestInterval = EAPConfig.Instance.LinkTestInterval, T3 = EAPConfig.Instance.T3, T5 = EAPConfig.Instance.T5, T6 = EAPConfig.Instance.T6, T7 = EAPConfig.Instance.T7, T8 = EAPConfig.Instance.T8, Logger = new SecsLogger() }; _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker) delegate { EapLogger.Info("SECS/GEM " + _secsGem.State); gemStatusLabel.Text = _secsGem.State.ToString(); eqpAddressStatusLabel.Text = "Device IP: " + _secsGem.DeviceAddress; if (_secsGem.State == ConnectionState.Selected) { _secsGem.SendAsync(new SecsMessage(1, 13, "TestCommunicationsRequest", Item.L())); } }); }; _secsGem.PrimaryMessageReceived += PrimaryMsgHandler; _secsGem.Start(); menuItemGemDisable.Enabled = true; menuItemGemEnable.Enabled = false; }
private void btnEnable_Click(object sender, EventArgs e) { _secsGem?.Dispose(); _secsGem = new SecsGem( radioActiveMode.Checked, IPAddress.Parse(txtAddress.Text), (int)numPort.Value, (int)numBufferSize.Value) { Logger = _logger, DeviceId = (ushort)numDeviceId.Value }; _secsGem.ConnectionChanged += delegate { this.Invoke((MethodInvoker)delegate { lbStatus.Text = _secsGem.State.ToString(); }); }; _secsGem.PrimaryMessageReceived += PrimaryMessageReceived; btnEnable.Enabled = false; _secsGem.Start(); btnDisable.Enabled = true; }
private void btnTest_Click(object sender, RoutedEventArgs e) { try { var ev = new ManualResetEvent(false); var config = GetConnectionConfig(); var ip = IPAddress.Parse(config.Attribute("ip").Value); using (var secsGem = new SecsGem( (bool)config.Attribute("isActive"), IPAddress.Parse(config.Attribute("ip").Value), (int)config.Attribute("port"))) { secsGem.ConnectionChanged += delegate { if (secsGem.State == ConnectionState.Selected) ev.Set(); }; secsGem.Start(); if (!ev.WaitOne(10000)) throw new Exception("timeout"); } MessageBox.Show("Successed"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Connection Fail"); } }