示例#1
0
        private void SendTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (_sendTimerActive)
            {
                return;
            }

            try
            {
                _sendTimerActive = true;
                if (_sendBuffer.Count == 0)
                {
                    return;
                }
                //Debug.WriteLine(_itelex.GetSendBufferCount());
                while (_itelex.GetSendBufferCount() < 5 && _sendBuffer.Count > 0)
                {
                    _itelex.SendAsciiChar(_sendBuffer.Dequeue());
                }
                UpdateSend?.Invoke();
            }
            finally
            {
                _sendTimerActive = false;
            }
        }
    // Update is called once per frame
    public void UpdateEvent(float x, float y, float angle, bool shoot)
    {
        if (uidget != null)
        {
            UpdateSend data = new UpdateSend();
            data.id    = uidget.uid;
            data.x     = x;
            data.y     = y;
            data.angle = angle;
            data.shot  = shoot;
            string res = JsonConvert.SerializeObject(data);

            socket.Emit("update", res);
        }
    }
示例#3
0
        private void SendTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (_sendBuffer.Count == 0 || _sendTimerActive)
            {
                return;
            }

            try
            {
                _sendTimerActive = true;
                // send one character
                if (_itelex.GetSendBufferCount() < 5 && _sendBuffer.Count > 0)
                {
                    if (_sendBuffer.TryDequeue(out char chr))
                    {
                        _itelex.SendAsciiChar(chr);
                    }
                }

                /*
                 * if (_configData.OutputSpeed == 0)
                 * {   // max. speed
                 *      while (_itelex.GetSendBufferCount() < 5 && _sendBuffer.Count > 0)
                 *      {
                 *              lock (_sendBufferLock)
                 *              {
                 *                      _itelex.SendAsciiChar(_sendBuffer.Dequeue());
                 *              }
                 *      }
                 * }
                 * else
                 * {
                 *      // send one character
                 *      if (_itelex.GetSendBufferCount() < 5 && _sendBuffer.Count > 0)
                 *      {
                 *              _itelex.SendAsciiChar(_sendBuffer.Dequeue());
                 *      }
                 * }
                 */

                UpdateSend?.Invoke();
            }
            finally
            {
                _sendTimerActive = false;
            }
        }