//*********************************************************************
        public void ListenDisabled()
        {
            Packets.IPacket pack = null;

            while (_Enabled)
            {
                SpinWait.SpinUntil(RF_Ready);
                lock (RF_STATUS)
                {
                    RF_STATUS = "RX";
                    if (_MEDIUM.MediumHaveAIRWork(this))
                    {
                        pack = _MEDIUM.ReceiveData(this);
                    }

                    RF_STATUS = "NONE";
                }
                if (pack != null)
                {
                    ParseReceivedPacket(pack);
                }

                //Thread.Sleep(1);
                Thread.Sleep(new TimeSpan(100));
                //Thread.Sleep(new TimeSpan(10));
            }
        }
        //*********************************************************************
        public void Listen()
        {
            Packets.IPacket pack = null;

            while (_Enabled)
            {
                SpinWait.SpinUntil(checkIfHaveDataReceive);
                SpinWait.SpinUntil(RF_Ready);
                lock (RF_STATUS)
                {
                    RF_STATUS = "RX";
                    pack      = _MEDIUM.ReceiveData(this);
                    RF_STATUS = "NONE";
                }


                if (pack != null)
                {
                    ParseReceivedPacket(pack);
                }

                //Thread.Sleep(1);
                //Thread.Sleep(new TimeSpan(100));
                //Thread.Sleep(new TimeSpan(10));
            }
        }
Exemple #3
0
 // Token: 0x060000A6 RID: 166 RVA: 0x000049C0 File Offset: 0x00002BC0
 public void Send(Packets.IPacket packet)
 {
     try
     {
         object obj  = new object();
         object obj2 = obj;
         lock (obj2)
         {
             if (this.clientState && packet != null)
             {
                 try
                 {
                     List <byte> list = packet.ToList();
                     list.AddRange(this.m_Watcher);
                     this.tcpSocket.Send(list.ToArray(), list.Count, SocketFlags.None);
                 }
                 catch
                 {
                 }
             }
         }
     }
     catch
     {
         this.Dispose();
     }
 }
Exemple #4
0
        internal static async Task <Packets.RawPacket> SendandRecieveHTTPData(Packets.IPacket data)
        {
            try
            {
                HttpClient c    = new HttpClient();
                var        pack = GetRawPacket(data);
                string     json = JsonConvert.SerializeObject(pack);
                //logMsg($"Sending the json: {json}");
                var req = new HttpRequestMessage()
                {
                    Content    = new ByteArrayContent(Encoding.ASCII.GetBytes(json)),
                    Method     = new HttpMethod("POST"),
                    RequestUri = new Uri(MasterServerAddress),
                };
                c.Timeout = TimeSpan.FromMilliseconds(5000);
                var    msg     = c.SendAsync(req).Result;
                Stream rstream = await msg.Content.ReadAsStreamAsync();

                byte[] buff     = new byte[1024];
                int    rec      = rstream.Read(buff, 0, Convert.ToInt32(rstream.Length));
                byte[] databuff = new byte[rec];
                Array.Copy(buff, databuff, rec);
                string text = Encoding.ASCII.GetString(databuff);
                //LogMessage.Invoke(null, new LogMessageEventArgs() { Message = $"Recieved new json: {text}" });
                c.Dispose();
                return(JsonConvert.DeserializeObject <Packets.RawPacket>(text));
            }
            catch (Exception ex)
            {
                throw new Exception("Could Not Send Data to Master Server!", ex);
            }
        }
Exemple #5
0
 public void AddPacketToQueue(Packets.IPacket packet)
 {
     lock (queueGuard)
     {
         packetsToSend.Enqueue(packet);
     }
     Monitor.Wait(packetsToSend);
 }
Exemple #6
0
        void PipeWorker()
        {
            int timeout = 0;

            //byte[] informationRequest = new Packets.Request(Packets.Ident.BasicInformation).toBytes();
            byte[] result = new byte[Packets.Helper.MaximalPossiblePacketLength];

            while (true)
            {
                try
                {
                    Monitor.Wait(packetsToSend);

                    while (!pipeStream.IsConnected)
                    {
                        Thread.Sleep(clientConnectedTimeInterval);
                    }

                    Packets.IPacket packet    = packetsToSend.Dequeue();
                    byte[]          rawpacket = packet.toBytes();
                    pipeStream.Write(rawpacket, 0, rawpacket.Length);

                    if (pipeStream.CanRead)
                    {
                        int bytesAmount = pipeStream.Read(result, 0, result.Length);
                        if (Packets.Helper.isValidIdent(result, bytesAmount))
                        {
                            if (gotPacketEvent != null)
                            {
                                gotPacketEvent(this, new Packets.PacketEventArgs(new Packets.BasicInformation(result)));
                            }

                            break;
                        }

                        //Thread.Sleep(clientAckTimeInterval);
                    }
                    if (timeout >= readingTimeOut)
                    {
                        // LOG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                        // try to connect again

                        timeout = 0;
                        pipeStream.Disconnect();
                    }

                    Thread.Sleep(100);
                    timeout += 100;
                }
                catch (Exception e)
                {
                }
            }
        }
        //*********************************************************************
        public void Listen()
        {
            while (_Enabled)
            {
                Packets.IPacket pack = null;
                Random          ran  = new Random((int)DateTime.Now.Ticks);
                //while (RF_STATUS != "NONE")
                //{
                //    Thread.Sleep(ran.Next(1,4));
                // }

                SpinWait.SpinUntil(checkIfHaveDataReceive);
                SpinWait.SpinUntil(RF_Ready);
                lock (RF_STATUS)
                {
                    RF_STATUS = "RX";
                    pack      = _MEDIUM.ReceiveData(this);
                    RF_STATUS = "NONE";
                }

                /*SpinWait.SpinUntil(RF_Ready);
                 * //lock (RF_STATUS)
                 * //{
                 *  RF_STATUS = "RX";
                 *  if (_MEDIUM.MediumHaveAIRWork(this))
                 *      pack = _MEDIUM.ReceiveData(this);
                 *  RF_STATUS = "NONE";
                 * // }*/
                if (pack != null)
                {
                    ParseReceivedPacket(pack);
                }

                //Thread.Sleep(1);
            }
        }
Exemple #8
0
 public PacketEventArgs(Packets.IPacket pkt)
 {
     packet = pkt;
 }