Пример #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;
                }
            }
        }
Пример #2
0
        public IHttpActionResult PostCMD_NAV_RETURN(int uid, CMD_NAV_Return jsObject)
        {
            CMD_NAV_Return cmd_nav_return = new CMD_NAV_Return();

            cmd_nav_return.Id        = jsObject.Id;
            cmd_nav_return.Latitude  = jsObject.Latitude;
            cmd_nav_return.Longitude = jsObject.Longitude;
            cmd_nav_return.UAVId     = jsObject.UAVId;

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

            db.CMD_NAV_Return.Add(cmd_nav_return);
            db.SaveChanges();

            return(Ok());
        }
Пример #3
0
 public int ReturnCommand(CMD_NAV_Return cmd)
 {
     Clients.Group("vehicles").sendReturnCommand(cmd, Context.ConnectionId);
     return(cmd.Id);
 }