static public int Close() { if (smodel != null) { smodel.Dispose(); smodel = null; } if (smmanager != null) { smmanager.Abort(); smmanager = null; } if (pmodel != null) { pmodel.LadderMode = LadderMode.Edit; SimuBrpoWindow bpwindow = pmodel.IFacade.BPWindow; bpwindow.Unroute(pmodel); bpwindow.SModel = null; bpwindow.SManager = null; pmodel = null; } return(CLOSE_OK); }
static public int Simulate(ProjectModel _pmodel) { pmodel = _pmodel; smodel = new SimulateModel(); smmanager = new SimulateMonitorManager(_pmodel.MMonitorManager.MMWindow, smodel); Setup(pmodel.MainRoutine); foreach (LadderDiagramViewModel lvdmodel in pmodel.SubRoutines) { Setup(lvdmodel); } int ret = GenerateHelper.GenerateSimu(pmodel); switch (ret) { case SimulateDllModel.LOADDLL_OK: smodel.ShowWindow(); pmodel.LadderMode = LadderMode.Simulate; smmanager.Initialize(); SimuBrpoWindow bpwindow = pmodel.IFacade.BPWindow; bpwindow.Route(pmodel); bpwindow.SModel = smodel; bpwindow.SManager = smodel.SManager; smodel.Initialize(); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_DLLFILE: LocalizedMessageBox.Show("Error : 找不到生成的dll文件\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_GETBIT: LocalizedMessageBox.Show("Error : 找不到入口GetBit\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_GETWORD: LocalizedMessageBox.Show("Error : 找不到入口GetWord\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_GETDWORD: LocalizedMessageBox.Show("Error : 找不到入口GetDWord\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_GETFLOAT: LocalizedMessageBox.Show("Error : 找不到入口GetFloat\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_GETFEQ: LocalizedMessageBox.Show("Error : 找不到入口GetFeq\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETBIT: LocalizedMessageBox.Show("Error : 找不到入口SetBit\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETWORD: LocalizedMessageBox.Show("Error : 找不到入口SetWord\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETDWORD: LocalizedMessageBox.Show("Error : 找不到入口SetDWord\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETFLOAT: LocalizedMessageBox.Show("Error : 找不到入口SetFloat\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETFEQ: LocalizedMessageBox.Show("Error : 找不到入口SetFeq\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_BEFORERUNLADDER: LocalizedMessageBox.Show("Error : 找不到入口BeforeRunLadder\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_AFTERRUNLADDER: LocalizedMessageBox.Show("Error : 找不到入口AfterRunLadder\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_INITRUNLADDER: LocalizedMessageBox.Show("Error : 找不到入口InitRunLadder\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNNT_FOUND_GETCLOCK: LocalizedMessageBox.Show("Error : 找不到入口GetClock\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_INITCLOCK: LocalizedMessageBox.Show("Error : 找不到入口InitClock\r\n", LocalizedMessageIcon.Error); break; case SimulateDllModel.LOADDLL_CANNOT_FOUND_SETCLOCKRATE: LocalizedMessageBox.Show("Error : 找不到入口SetClockRate\r\n", LocalizedMessageIcon.Error); break; default: LocalizedMessageBox.Show("Error : 发生未知错误\r\n", LocalizedMessageIcon.Error); break; } return(ret); }