/// <summary> /// Constructs lamps indefinitely. /// </summary> /// <param name="db">The database to interact with</param> /// <param name="lane">The lane to construct parts on</param> public void RunSim(Database db, Lane lane) { Logger logger = new Logger("SIMULATOR-" + lane.LaneID); db.GetWorkerInfo(); while (true) { db.CreatePart(lane.LaneID); logger.Log("Created new part"); int units_tested = db.TestProduct(lane.LaneID); logger.Log("Tested {0} units", units_tested); int sleep_time = lane.CalcTimeDev(); db.UpdateNextFinish(sleep_time / 1000.0); logger.Log("Sleeping for {0} seconds to create new part", sleep_time / 1000.0); Thread.Sleep(sleep_time); } }
static void Main(string[] args) { int exit = -1; // Lane lane = new Lane(); // Initialize the database connection and get the lanes from the databse Database db = new Database(lane); Dictionary <int, int> lanes = db.GetLanes(); // Display the lanes to the user and ask what lane to start DisplayLanes(lanes); lane.LaneID = GetInput(lanes); // If GetInput returns -1 then exit if (lane.LaneID != exit) { Sim sim = new Sim(); Thread thread = new Thread(() => sim.RunSim(db, lane)); thread.Start(); Console.Write("Press any key to stop..."); Console.ReadKey(); thread.Interrupt(); db.ReleaseLane(); } }
/* * FUNCTION : Database * DESCRIPTION : * - Constructor for the database, calls * initialize function. * class. * PARAMETERS : * none * RETURNS: * none */ public Database(Lane lane) { Initialize(lane); }