protected override void Seed(CraneWeb.Data.CraneDbContext context) { CraneOperation cabCW = new CraneOperation { Name = "Cab CW", ActionSource = ActionSource.NorthChip, BitPosition = 0, OpCode = CraneOperations.CabCW }; CraneOperation cabCCW = new CraneOperation { Name = "Cab CCW", ActionSource = ActionSource.NorthChip, BitPosition = 1, OpCode = CraneOperations.CabCCW }; CraneOperation boomUp = new CraneOperation { Name = "Boom Up", ActionSource = ActionSource.NorthChip, BitPosition = 2, OpCode = CraneOperations.BoomUp }; CraneOperation boomDown = new CraneOperation { Name = "BoomDown", ActionSource = ActionSource.NorthChip, BitPosition = 3, OpCode = CraneOperations.BoomDown }; CraneOperation hookUp = new CraneOperation { Name = "Hook Up", ActionSource = ActionSource.SouthChip, BitPosition = 0, OpCode = CraneOperations.HookUp }; CraneOperation hookDown = new CraneOperation { Name = "HookDown", ActionSource = ActionSource.SouthChip, BitPosition = 1, OpCode = CraneOperations.HookDown }; CraneOperation platformEast = new CraneOperation { Name = "Platform East", ActionSource = ActionSource.SouthChip, BitPosition = 2, OpCode = CraneOperations.PlatformEast }; CraneOperation platformWest = new CraneOperation { Name = "Platform West", ActionSource = ActionSource.SouthChip, BitPosition = 3, OpCode = CraneOperations.PlatformWest }; CraneOperation platformNorth = new CraneOperation { Name = "Platform North", ActionSource = ActionSource.SouthChip, BitPosition = 4, OpCode = CraneOperations.PlatformNorth }; CraneOperation platformSouth = new CraneOperation { Name = "Platform South", ActionSource = ActionSource.SouthChip, BitPosition = 5, OpCode = CraneOperations.PlatformSouth }; CraneOperation magOn = new CraneOperation { Name = "Magnet", ActionSource = ActionSource.SouthChip, BitPosition = 6, OpCode = CraneOperations.Magnet }; context.CraneOperations.AddOrUpdate(s => s.OpCode, cabCW); context.CraneOperations.AddOrUpdate(s => s.OpCode, cabCCW); context.CraneOperations.AddOrUpdate(s => s.OpCode, boomUp); context.CraneOperations.AddOrUpdate(s => s.OpCode, boomDown); context.CraneOperations.AddOrUpdate(s => s.OpCode, hookUp); context.CraneOperations.AddOrUpdate(s => s.OpCode, hookDown); context.CraneOperations.AddOrUpdate(s => s.OpCode, platformEast); context.CraneOperations.AddOrUpdate(s => s.OpCode, platformWest); context.CraneOperations.AddOrUpdate(s => s.OpCode, platformNorth); context.CraneOperations.AddOrUpdate(s => s.OpCode, platformSouth); context.CraneOperations.AddOrUpdate(s => s.OpCode, magOn); context.SaveChanges(); }
public static void OperateCrane(List <ControlboardOperation> operations) { lastStartTime = DateTime.UtcNow; CraneOperation magOp = CraneOperation.GetByOpCode(CraneOperations.Magnet); foreach (var op in operations) { if (op.Action == CraneOperationAction.Off) { s_chipActions[op.Operation.ActionSource] &= (byte)~(1 << (int)op.Operation.BitPosition); continue; } else { s_chipActions[op.Operation.ActionSource] |= (byte)(1 << (int)op.Operation.BitPosition); } } WriteAll(); }
public async Task <IHttpActionResult> GetSettings() { var operations = CraneOperation.GetAll() .ToDictionary(k => k.OpCode.ToString(), v => v); String ip = null; try { ip = "216.41.240.26"; } catch { } return(Json(new { operations, ipAddress = ip, pvtActions = Enum.GetNames(typeof(PvtActions)) .Select(s => new { name = s, id = Enum.Parse(typeof(PvtActions), s) }), cameras = new [] { new { supportsPvt = true, port = 8100, name = "P & T" }, new { supportsPvt = false, port = 8181, name = "overhead" } } })); }
static Driver() { s_chipActions.Add(ActionSource.NorthChip, 0); s_chipActions.Add(ActionSource.SouthChip, 0); magOperation = CraneOperation.GetByOpCode(CraneOperations.Magnet); _com = FindControllerComPort(); Task.Run(() => { while (true) { if (lastStartTime != null && DateTime.UtcNow.Subtract(lastStartTime.Value).Minutes >= 2) { Driver.Off(); lastStartTime = null; } Thread.Sleep(1000); } }); }