Exemplo n.º 1
0
 public void OpenPort()
 {
     _serialPort?.Open();
     Task.Run(() =>
     {
         try
         {
             while (true)
             {
                 if (_serialPort?.IsOpen == true)
                 {
                     byte[] data =
                     {
                         ComPacket.Header,
                         (byte)GameStatus,
                     };
                     _serialPort.Write(data, 0, data.Length);
                 }
                 if (Buffers.Count >= PacketLength)
                 {
                     var comPacket = new ComPacket();
                     if (Buffers.Dequeue() == ComPacket.Header)
                     {
                         comPacket.MsgType  = (MsgType)Buffers.Dequeue();
                         comPacket.KeyValue = (KeyValue)Buffers.Dequeue();
                         _dip.Invoke(new Action(() =>
                         {
                             GameCommandRecieved?.Invoke(this, new GameComEventArgs()
                             {
                                 ComPacket = comPacket
                             });
                         }));
                     }
                 }
                 Thread.Sleep(10);
             }
         }
         catch (Exception)
         {
             throw;
         }
     });
 }
Exemplo n.º 2
0
 public Buffer GetBuffer() => Buffers.Count == 0 ? new Buffer(1, 1) : Buffers.Dequeue();