Exemplo n.º 1
0
        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)));
        }
Exemplo n.º 3
0
 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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }