//********************************************************************* 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)); } }
// 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(); } }
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); } }
public void AddPacketToQueue(Packets.IPacket packet) { lock (queueGuard) { packetsToSend.Enqueue(packet); } Monitor.Wait(packetsToSend); }
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); } }
public PacketEventArgs(Packets.IPacket pkt) { packet = pkt; }