private Action <GarageAssignment> GetProcess(GarageMediator context) { return((assignment) => { context.MicroCommunication.ClearIncoming(); context.MicroCommunication.Write(START_INSTRUCTION); VehicleInstructionsStarted(); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) { Thread.Sleep(0); } context.MicroCommunication.Write(assignment.Cell); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) { Thread.Sleep(0); } context.MicroCommunication.Write(assignment.Stored ? OUTGOING : INCOMING); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) { Thread.Sleep(0); } context.MicroCommunication.Write(STOP_INSTRUCTION); VehicleProcessingStarted(); while (context.MicroCommunication.Read() != INSTRUCTIONS_COMPLETED) { Thread.Sleep(0); } context.DatabaseCommunication.MoveVehicle(assignment.ID, !assignment.Stored); VehicleProcessed(); }); }
private Action GetWorkerAction(GarageMediator context) { return () => { while (_isRunning) { ScanID(context.RFIDCommunication.CurrentID); Thread.Sleep(0); } }; }
private Action GetWorkerAction(GarageMediator context) { return(() => { while (_isRunning) { ScanID(context.RFIDCommunication.CurrentID); Thread.Sleep(0); } }); }
private Action<GarageAssignment> GetProcess(GarageMediator context) { return (assignment) => { context.MicroCommunication.ClearIncoming(); context.MicroCommunication.Write(START_INSTRUCTION); VehicleInstructionsStarted(); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) Thread.Sleep(0); context.MicroCommunication.Write(assignment.Cell); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) Thread.Sleep(0); context.MicroCommunication.Write(assignment.Stored ? OUTGOING : INCOMING); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) Thread.Sleep(0); context.MicroCommunication.Write(STOP_INSTRUCTION); VehicleProcessingStarted(); while (context.MicroCommunication.Read() != INSTRUCTIONS_COMPLETED) Thread.Sleep(0); context.DatabaseCommunication.MoveVehicle(assignment.ID, !assignment.Stored); VehicleProcessed(); }; }
private Action <GarageAssignment> GetProcess(GarageMediator context) { return((assignment) => { context.MicroCommunication.Write(START_INSTRUCTION); VehicleInstructionsStarted(); byte cont = 0; while (cont != CONTINUE_INSTRUCTION) { cont = context.MicroCommunication.Read(); System.Diagnostics.Debug.WriteLine(cont); Thread.Sleep(0); } //while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) // Thread.Sleep(0); context.MicroCommunication.Write(assignment.Cell); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) { Thread.Sleep(0); } context.MicroCommunication.Write(assignment.Stored ? OUTGOING : INCOMING); while (context.MicroCommunication.Read() != CONTINUE_INSTRUCTION) { Thread.Sleep(0); } context.MicroCommunication.Write(STOP_INSTRUCTION); VehicleProcessingStarted(); while (context.MicroCommunication.Read() != INSTRUCTIONS_COMPLETED) { Thread.Sleep(0); } context.DatabaseCommunication.MoveVehicle(assignment.ID, !assignment.Stored); VehicleProcessed(); }); }
public abstract void Change(GarageMediator context);
public virtual void Kill(GarageMediator context) { context.MicroCommunication.StopServer(); context.RFIDCommunication.StopServer(); context.State = new MediatorKilledState(); }
public override void Change(GarageMediator context) { _instructor?.Wait(); context.State = new MediatorListeningState(context); }
public override void Change(GarageMediator context) { _isRunning = false; _worker.Wait(); context.State = new MediatorProcessingState(context); }
public override void Change(GarageMediator context) { context.RFIDCommunication.OnIDScan -= RFIDCommunication_OnIDScan; context.State = new MediatorProcessingState(context); }
public override void Kill(GarageMediator context) { _instructor?.Wait(); base.Kill(context); }
// constructor - sets up _worker task using context public MediatorListeningState(GarageMediator context) { _isRunning = true; CurrentID = string.Empty; _worker = Task.Run(GetWorkerAction(context)); }
public override void Kill(GarageMediator context) { base.Kill(context); }
public override void Kill(GarageMediator context) { _isRunning = false; _worker.Wait(); base.Kill(context); }
public MediatorProcessingState(GarageMediator context) { _Process = GetProcess(context); }
// constructor - sets up _worker task using context public MediatorListeningState(GarageMediator context) { context.RFIDCommunication.OnIDScan += RFIDCommunication_OnIDScan; }
public override void Change(GarageMediator context) { context.State = new MediatorListeningState(context); }
public override void Change(GarageMediator context) { context.State = new MediatorReadyState(); }