예제 #1
0
        public void Parse(SocketMessage message, int boardDimensions)
        {
            _tokens.Clear();
            string[] contentWords = message.Content.Split(" ");

            #region create tokens
            for (int i = 0; i < contentWords.Length; i++)
            {
                var tokenString = contentWords[i].ToLower();

                if (tokenString.Length == 2)
                {
                    if (ContainsLabelLetter(tokenString[0]) && ContainsLabelNumber(tokenString[1]))
                    {
                        _tokens.Add(new InGameToken(tokenString, InGameToken.TokenType.CellCoord));
                    }
                }
            }
            #endregion


            #region trigger events depending on grammer
            if (_tokens.Count == 1)
            {
                if (_tokens[0].Type == InGameToken.TokenType.CellCoord)
                {
                    DisplayHandler?.Invoke(Common.FromLabelToIndexCoordinate(_tokens[0].Value, boardDimensions));
                }
            }

            if (_tokens.Count == 2)
            {
                if (_tokens[0].Type == InGameToken.TokenType.CellCoord && _tokens[1].Type == InGameToken.TokenType.CellCoord)
                {
                    var coordFrom = Common.FromLabelToIndexCoordinate(_tokens[0].Value, boardDimensions);
                    var coordTo   = Common.FromLabelToIndexCoordinate(_tokens[1].Value, boardDimensions);
                    MoveHandler?.Invoke(coordFrom, coordTo, message.Author);
                }
            }

            #endregion
        }
예제 #2
0
        private void OnTimedEvent(object sender, ElapsedEventArgs e) //Само событие просто считывает значение переменной, которая была забита из класса управления портом
        {
            if (checkBox5.Checked)                                   //inversion
            {
                pen.Color = Color.Green;
                //pen_lvl.Color = Color.Blue;
                fig.Color = Color.Black;
            }
            else
            {
                pen.Color = Color.Black;
                //pen_lvl.Color = Color.Red;
                fig.Color = Color.White;
            }
            conn_counter = conn_counter + 1;
            if (conn_counter > 20)
            {
                // connect = PortEr.Check_connection();
                //  System.Threading.Thread.Sleep(2000);
                conn_counter = 0;
            }
            try
            {
                if (connect)
                {
                    //BeginInvoke(new InvokeDelegate(updateImageBox));



                    //if (PortEr.isChanged){
                    //	PortEr.isChanged = false;


                    S = PortEr.strFromPort;
                    if (S.Length > 0)
                    {
                        cycle_counter++;
                        if (cycle_counter > writer_counter)
                        {
                            My_txt_Writer.Close_file();
                            My_txt_Writer.Ini_file_writer();
                            cycle_counter = 0;
                        }
                        My_txt_Writer.Append_to_file(S);
                        //button4.BeginInvoke((Action)delegate () { button4.Enabled = false; });

                        ThreadHelperClass.SetText(this, label6, S); //PortEr._port_finded);
                        handler.Invoke();
                    }
                    //}
                }
                else
                {
                    ThreadHelperClass.SetText(this, label6, "Не найдено");
                    //button4.BeginInvoke((Action)delegate () { button4.Enabled = true; });
                }
            }
            catch {
                //MessageBox.Show(ex.ToString());
            }



            //throw new NotImplementedException();
        }
예제 #3
0
 protected virtual void OnDisplayData(string data)
 {
     DisplayHandler?.Invoke(this, data);
 }