public void InitializeCandExamCtrlComponent(ExamCtrlPanel examCtrl, CSettings settings, List <string> cxList) { this.examCtrl = examCtrl; this.examCtrl.OnChangeState += new ExamCtrlPanelEvent(this.examCtrl_stateChange); this.settings = settings; if (this.settings.PrintConfig.Isprint) { _printContent = new CPrintContent(this.settings.PrintConfig); } if (cxList != null) { _cxList = cxList; } else { _cxList = new List <string>(1); } this.SoundChange += new MessageDelegate(OnSoundChange); this.LEDDisplayChange += new MessageDelegate(OnLEDDisplayChange); this.CameraChannelChange += new IntegerDelegate(OnCameraChannelChange); this.ExamResultReady += new ExamResultDelegate(OnExamResultReady); ResetPanel(); }
private void button4_Click(object sender, EventArgs e) { // //读取设置文件,准备环境设置 // //用哪个setting SettingPair sp1 = new SettingPair(); //sp1.ImplementClass = new MotorSignalSettings().GetType(); sp1.ImplementClass = new TractorSignalSettings().GetType(); sp1.FilePath = "TractorSignal.config"; ISettings setting = new CSetup(sp1).Settings; CSettings csetting = setting as CSettings; // //创建Monitor,Translator,StateManager。 //准备考试核心引擎 // //用哪个monitor //AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Motor.MotorMonitor)); //AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Car.OldCarMonitor)); AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Car.TractorMonitor)); ISignalMonitor mon = SignalMonitorFactory.CreateSignalMonitor(monInfo, setting); //用哪个translator //AssemblyInfoPair transInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.MotorSignalTranslator)); AssemblyInfoPair transInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.CarSignalTranslator)); ITranslator translator = TranslatorFactory.CreateTranslater(transInfo, mon); //用哪个statemanager //AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.MotorState.MotorStateManager)); //AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.PureLineCarState.CarStateManager)); AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.Tractor.TractorStateManager)); IStateManager stateMgr = StateManagerFactory.CreateStateManager(stateMgrInfo, translator, setting); // //创建考试启动停止控件 //实现单会合考试 ExamCtrlPanel examCtrl = new ExamCtrlPanel(); examCtrl.Location = new System.Drawing.Point(0, 0); this.ctrlPanel.Controls.Add(examCtrl); //ExamCtrl控件必须先被add到其父窗口中,然后再进行Initialize examCtrl.InitializeExamComponent(setting, mon, translator, stateMgr); //创建考试状态显示面板 //单会合考试级别扩展功能 ExamStatusDisplayPanel statePane = new ExamStatusDisplayPanel(); statePane.Location = new System.Drawing.Point(0, 100); statePane.BorderStyle = BorderStyle.Fixed3D; statePane.InitializeExamComponent(stateMgr); this.ctrlPanel.Controls.Add(statePane); //创建信号显示面板 SignalDisplay signaldisplay = new SignalDisplay(mon); signaldisplay.Location = new System.Drawing.Point(0, 20); //sd.BorderStyle = BorderStyle.Fixed3D; this.ctrlPanel.Controls.Add(signaldisplay); //用哪个DisplayPanel //BaseModelDisplayPanel modelDisplayPane = new Cn.Youdundianzi.Share.Module.ModelDisplay.Car.CarModelDisplayPanel(); BaseModelDisplayPanel modelDisplayPane = new Cn.Youdundianzi.Share.Module.ModelDisplay.Car.TractorModelDisplayPanel(); modelDisplayPane.Location = new System.Drawing.Point(200, 0); modelDisplayPane.InitializeExamComponent(csetting, mon, stateMgr); this.ctrlPanel.Controls.Add(modelDisplayPane); /** * //初始化车型列表 * List<string> cxList = new List<string>(2); * cxList.Add("A"); * cxList.Add("B"); * * //初始化排队列表 * CandidateQuery candQuery = new CandidateQuery(); * candQuery.Location = new System.Drawing.Point(550, 20); * //sd.BorderStyle = BorderStyle.Fixed3D; * this.ctrlPanel.Controls.Add(candQuery); * * //用哪个Candidate Infomation Panel * CandExamCtrl candExamPane = new Cn.Youdundianzi.Share.Module.CandidateInfo.LocalInputPanel(); * candExamPane.Location = new System.Drawing.Point(0, 150); * candExamPane.InitializeCandExamCtrlComponent(examCtrl, csetting, cxList); * this.ctrlPanel.Controls.Add(candExamPane); * * //初始化声音控件(基础声音控件类) * SoundCtrl soundCtrl = new SoundCtrl(); * candExamPane.SoundChange += new MessageDelegate(soundCtrl.PlayText); //注册candExamCtrl的声音变化事件回调函数 * * //初始化显示牌控件 * //------------------------------------------------------------------------------ * string LEDAssemblyFilePath = Application.StartupPath + "\\LEDDisplay.dll"; * * SettingPair spDisplay = new SettingPair(); * spDisplay.ImplementClass = AssemblyInfoFactory.GetType(LEDAssemblyFilePath, csetting.DisplayPaneConfig.DisplayConfigClass); * spDisplay.FilePath = csetting.DisplayPaneConfig.DisplayConfigFilePath; * * ISettings dissettings = new CSetup(spDisplay).Settings; * DisplayConfig dispalySetting = dissettings as DisplayConfig; * IDisplaycomm displaycomm = DisplayFactory.CreateDisplay(LEDAssemblyFilePath, csetting.DisplayPaneConfig.DisplayCommClass, dispalySetting); * candExamPane.LEDDisplayChange += new MessageDelegate(displaycomm.ShowText); //注册candExamCtrl的显示牌变化事件回调函数 * * * //初始化摄像头 * Camera camera = new Camera(0); * camera.Location = new System.Drawing.Point(200, 400); * camera.Size = new Size(400, 300); * camera.BorderStyle = BorderStyle.Fixed3D; * this.ctrlPanel.Controls.Add(camera); * candExamPane.CameraChannelChange += new IntegerDelegate(camera.SetChannel); //注册candExamCtrl的摄像头变化事件回调函数 * * //结果显示控件 * ExamResultPanel resultPanel = new ExamResultPanel(); * resultPanel.Location = new System.Drawing.Point(0, 400); * resultPanel.Size = new Size(210, 110); * resultPanel.BorderStyle = BorderStyle.FixedSingle; * candExamPane.ExamResultReady += new ExamResultDelegate(resultPanel.SetResultText); **/ }
public ExamFrm() { InitializeComponent(); examCtrl = new ExamCtrlPanel(); }