public string list(OnDemandRequest req, ESPEntity esp) { esp.Name = "Node_1"; using (UdpClient c = new UdpClient(port)) { IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ip), port); byte checksum = 22; //TODO, dont know how string dataString = "$LIST," + esp.Name + "," + "*" + checksum; byte[] data = System.Text.Encoding.ASCII.GetBytes(dataString); c.Send(data, data.Length, ip, port); } UdpClient udpServer = new UdpClient(port); bool waitForAnswer = true; string response = ""; //NOT REALLY NEED THIS WHILE while (waitForAnswer) { var remoteEP = new IPEndPoint(IPAddress.Any, port); var data = udpServer.Receive(ref remoteEP); response = data.ToString(); byte[] ack = System.Text.Encoding.ASCII.GetBytes("OK"); udpServer.Send(ack, ack.Length, remoteEP); if (ack.Length != 0) { waitForAnswer = false; } } return(response); }
public async Task <ActionResult <OnDemandRequest> > userRequest([FromForm] OnDemandRequest onDemandRequest) { var entity = _context.ESPs.Where(e => e.Name == onDemandRequest.nodeId).FirstOrDefault(); string result = udpService.SendUdp(onDemandRequest, entity); Console.Write("receive data: " + result); //return StatusCode(200); return(CreatedAtAction(nameof(GetESPDataItem), StatusCode(200))); }
public void write(OnDemandRequest req, ESPEntity esp) { esp.Name = "Node_1"; using (UdpClient c = new UdpClient(port)) { byte checksum = 22; //TODO, dont know how string dataString = "$WRTE," + esp.Name + "," + req.pin + req.pin_mode + req.status + "*" + checksum; byte[] data = System.Text.Encoding.ASCII.GetBytes(dataString); c.Send(data, data.Length, ip, port); } }
public AsyncServerStreamingCall <Common.RowDefinition> Materialize(string viewId, IList <string> schemaIds) { var request = new OnDemandRequest() { ViewId = viewId }; var schema = new Schema(); foreach (var item in schemaIds) { request.Schemas.Add(item, schema); } return(_client.Materialize(request)); }
public string read(OnDemandRequest req, ESPEntity esp) { esp = new ESPEntity(); esp.Name = "A2:20:A6:0D:65:D2"; using (UdpClient c = new UdpClient(port)) { //Console.WriteLine("IP ADDRESS: " + esp.IPAddress); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ip), port); byte checksum = 22; //TODO, dont know how string dataString = "$READ," + esp.Name + "," + "*" + checksum; byte[] data = System.Text.Encoding.Default.GetBytes(dataString); c.Send(data, data.Length, ip, port); } UdpClient udpServer = new UdpClient(port); bool waitForAnswer = true; string response = ""; //NOT REALLY NEED THIS WHILE while (waitForAnswer) { var remoteEP = new IPEndPoint(IPAddress.Any, port); var data1 = udpServer.Receive(ref remoteEP); response = System.Text.Encoding.Default.GetString(data1); for (int i = 24; i < 29; i++) { int y = System.Text.Encoding.Default.GetBytes(response.Substring(i, 1))[0]; int offset = y + '0'; response[i] = System.Text.Encoding.Default.GetString(offset); } byte[] ack = System.Text.Encoding.Default.GetBytes("OK"); udpServer.Send(ack, ack.Length, remoteEP); if (ack.Length != 0) { waitForAnswer = false; } } return(response); }
public string SendUdp(OnDemandRequest req, ESPEntity esp) { String resp = ""; switch (req.commandType) { case CommandType.READ: resp = read(req, esp); break; case CommandType.WRITE: write(req, esp); break; case CommandType.LIST: resp = list(req, esp); break; default: return(resp); } return(resp); }