Exemplo n.º 1
0
        public async Task BroadcastAcceptedCommand(CMD_ACK ack)
        {
            NestContainer db = new NestContainer();
            {
                switch (ack.CommandType)
                {
                case "CMD_NAV_Target":
                    CMD_NAV_Target target = await db.CMD_NAV_Target.FindAsync(ack.CommandId);

                    if (target != null && ack.Accepted == true)
                    {
                        target.Acked = true;
                        Clients.All.targetCommandAccepted(target);
                        db.Entry(target).State = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                    break;

                case "CMD_NAV_Hold":
                    CMD_NAV_Hold hold = await db.CMD_NAV_Hold.FindAsync(ack.CommandId);

                    if (hold != null && ack.Accepted == true)
                    {
                        hold.Acked = true;
                        Clients.All.targetCommandAccepted(hold);
                        db.Entry(hold).State = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                    break;

                case "CMD_NAV_Return":
                    CMD_NAV_Return goBack = await db.CMD_NAV_Return.FindAsync(ack.CommandId);

                    if (goBack != null && ack.Accepted == true)
                    {
                        goBack.Acked = true;
                        Clients.All.targetCommandAccepted(goBack);
                        db.Entry(goBack).State = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                    break;

                case "CMD_NAV_Land":
                    CMD_NAV_Land land = await db.CMD_NAV_Land.FindAsync(ack.CommandId);

                    if (land != null && ack.Accepted == true)
                    {
                        land.Acked = true;
                        Clients.All.targetCommandAccepted(land);
                        db.Entry(land).State = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 2
0
        public IHttpActionResult PostCMD_NAV_LAND(int uid, CMD_NAV_Land jsObject)
        {
            CMD_NAV_Land cmd_nav_land = new CMD_NAV_Land();

            cmd_nav_land.Id        = jsObject.Id;
            cmd_nav_land.Altitude  = jsObject.Altitude;
            cmd_nav_land.Latitude  = jsObject.Latitude;
            cmd_nav_land.Longitude = jsObject.Longitude;
            cmd_nav_land.Throttle  = jsObject.Throttle;
            cmd_nav_land.UAVId     = jsObject.UAVId;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.CMD_NAV_Land.Add(cmd_nav_land);
            db.SaveChanges();

            return(Ok());
        }
Exemplo n.º 3
0
 public int LandCommand(CMD_NAV_Land cmd)
 {
     Clients.Group("vehicles").sendLandCommand(cmd, Context.ConnectionId);
     return(cmd.Id);
 }