public void InitializeExamComponent(CSettings set, IMonitor mon, StateManager sm) { this.settings = (MotorSignalSettings)set; this.monitor = (MotorMonitor)mon; this.statemgr = (MotorStateManager)sm; monitor.RegMonitor(this); statemgr.RegExamObserver(this); ganbm[0] = new Bitmap(settings.ModelAppearance.Gan.Normal); ganbm[1] = new Bitmap(settings.ModelAppearance.Gan.Error); ganbm[2] = new Bitmap(settings.ModelAppearance.Gan.Shield); for (int i = 0; i < 5; i++) { gan[i] = new CGanFairy(ganbm); gan[i].GanName = (i + 1).ToString(); } for (int i = 0; i < 5; i++) { XianPosition x = settings.InitPosition.Xian[i]; xian[i] = new CLineFairy(x.X1, x.Y1, x.X2, x.Y2); xian[i].LineName = (i + 1).ToString(); cdm.RegDisplay(xian[i]); } for (int i = 0; i < 5; i++) { GanPosition gp = settings.InitPosition.Gan[i]; gan[i].X = gp.X; gan[i].Y = gp.Y - 10; cdm.RegDisplay(gan[i]); } che = new CBmpFairy(settings.ModelAppearance.Che.Normal); cdm.RegDisplay(che); ResetElements(); stateDuration = new int[4]; stateDuration[0] = settings.StateDuration[0]; stateDuration[1] = settings.StateDuration[1]; stateDuration[2] = settings.StateDuration[2]; stateDuration[3] = settings.StateDuration[3]; timer = new Timer(); timer.Tick += new EventHandler(timer_Tick); timer.Start();//屏幕刷新启动 }
static void Main() { MotorSignalSettings settings = (MotorSignalSettings)Util.ModuleConfig.GetSettings(new MotorSignalSettings().GetType(), "MotorSignal.config"); IMonitor monitor = new MotorMonitor(settings); ITranslater translator = new MotorSignalTranslator(monitor); StateManager sm = new MotorStateManager(translator, settings); SimForm simForm = new SimForm(); monitor.HotKeyHandle = simForm.Handle; monitor.RegMonitor(simForm); monitor.Start(); Application.Run(simForm); //Use StateManager to set the entry state temporarily in dev sm.CurrentState = sm.EntryState; }