Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 7
0
        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;
        }
Exemplo n.º 8
0
 /// <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();
 }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
		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");
			}
		}