private void buttonDelayButton_Click(object sender, EventArgs e) { MarconiRaceControllerLogic rcl = oblist.SelectedObject as MarconiRaceControllerLogic; if (rcl == null) { return; } foreach (var item in _raceQueue.Where(p => p.RaceScheduledStartTime >= DateTime.Now && p.RaceScheduledStartTime >= rcl.RaceScheduledStartTime).ToList()) { item.RaceScheduledStartTime = item.RaceScheduledStartTime.AddMinutes(5); var sched = Scheduler.GetSchedule(item.RaceName); Scheduler.RemoveSchedule(item.RaceName); OneTimeSchedule sc = new OneTimeSchedule(item.RaceName, item.RaceScheduledStartTime); sc.OnTrigger += Sc_OnTrigger; Scheduler.AddSchedule(sc); } oblist.SetObjects(_raceQueue, true); buttonDelayButton.Enabled = false; }
public RaceMainController() { InitializeComponent(); Scheduler.OnSchedulerEvent += Scheduler_OnSchedulerEvent; relayBoard = RelayBoardDriver.Instance; _raceQueue = new List <MarconiRaceControllerLogic>(); _soundPlayer = new SoundPlayer(); Stream str = Marconi.Properties.Resources.marconi_race_sound1; _soundPlayer = new System.Media.SoundPlayer(); _soundPlayer.Stream = str; _soundPlayer.LoadAsync(); dateTimePicker1.Format = DateTimePickerFormat.Time; dateTimePicker1.Value = DateTime.Now.AddMinutes(1); internalClock = new Timer(); internalClock.Interval = 1000; internalClock.Tick += InternalClock_Tick; internalClock.Start(); panelButtons.Visible = false; panelRaces.Visible = false; oblist.UseAlternatingBackColors = true; this.Status.ImageGetter = delegate(object rowObject) { MarconiRaceControllerLogic s = (MarconiRaceControllerLogic)rowObject; if (s.LastEventCode == SailingRace.RaceEventCode.W) { return("red"); } else if ( s.LastEventCode == SailingRace.RaceEventCode.T1 || s.LastEventCode == SailingRace.RaceEventCode.T4 || s.LastEventCode == SailingRace.RaceEventCode.T5 ) { return("yellow"); } else if (s.LastEventCode == SailingRace.RaceEventCode.T0) { return("green"); } else { return(""); } }; var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; lblVersion.Text = "Running version: " + version.ToString(); }
private void buttonundodelay_Click(object sender, EventArgs e) { MarconiRaceControllerLogic rcl = oblist.SelectedObject as MarconiRaceControllerLogic; if (rcl == null) { return; } foreach (var item in _raceQueue.Where(p => p.RaceScheduledStartTime.AddMinutes(-6) >= DateTime.Now).ToList()) { item.RaceScheduledStartTime = item.RaceScheduledStartTime.AddMinutes(-5); } oblist.SetObjects(_raceQueue, true); buttonDelayButton.Enabled = false; }
//Start the application, creates each race. private void btStartRace_Click(object sender, EventArgs e) { if (dateTimePicker1.Value <= DateTime.Now.AddSeconds(10)) { DialogResult dialogResult = MessageBox.Show("The time of the first date is too soon or in the past. Select a valid time for the first race", "WARNING", MessageBoxButtons.OK); return; } panelStart.Visible = false; panel1.Visible = true; AllLightsOff(); int _races = int.Parse(this.textBox1.Text); DateTime _lastStartTime = dateTimePicker1.Value; panelButtons.Visible = true; panelRaces.Visible = true; for (int x = 1; x <= _races; x++) { MarconiRaceControllerLogic _newRace = new MarconiRaceControllerLogic(); _newRace.RaceName = "Race " + x.ToString(); _newRace.RaceScheduledStartTime = _lastStartTime; _newRace.BoardDriver = relayBoard; _newRace.InternalPlayer = _soundPlayer; OneTimeSchedule sc = new OneTimeSchedule("Race " + x.ToString(), _lastStartTime); sc.OnTrigger += Sc_OnTrigger; _raceQueue.Add(_newRace); Scheduler.AddSchedule(sc); _lastStartTime = _lastStartTime.AddMinutes(6); } oblist.SetObjects(_raceQueue, true); }
private void InternalClock_Tick(object sender, EventArgs e) { //update UI Clock this.BeginInvoke((System.Windows.Forms.MethodInvoker) delegate() { this.lblsystemtimevalue.Text = DateTime.Now.ToString(@"HH\:mm\:ss"); this.Status.ImageGetter = delegate(object rowObject) { MarconiRaceControllerLogic s = (MarconiRaceControllerLogic)rowObject; if (s.LastEventCode == SailingRace.RaceEventCode.W) { return("red"); } else if ( s.LastEventCode == SailingRace.RaceEventCode.T1 || s.LastEventCode == SailingRace.RaceEventCode.T4 || s.LastEventCode == SailingRace.RaceEventCode.T5 ) { return("yellow"); } else if (s.LastEventCode == SailingRace.RaceEventCode.T0) { return("green"); } else { return(""); } }; oblist.SetObjects(_raceQueue, true); }); //update status of list view }
private void Sc_OnTrigger(string scheduleName) { var r = _raceQueue.Where(p => p.RaceName == scheduleName).SingleOrDefault(); if (r == null) { MessageBox.Show("The scheduled race does not exists anymore."); } _activeRace = r; r.NewRaceClockEvent += R_NewRaceClockEvent; r.NewRaceEvent += R_NewRaceEvent; r.StartCountDown(); pict5minleft.Image = Marconi.Properties.Resources.race_red_light; pict5minleft.Image = Marconi.Properties.Resources.race_red_light; }
public MarconiRaceController() { InitializeComponent(); relayBoard = RelayBoardDriver.Instance; logic = new MarconiRaceControllerLogic(); _raceList = new List <MarconiRaceControllerLogic>(); _raceList.Add(logic); if (ConfigurationManager.AppSettings["HornPatternEventT5"] != null) { logic.HornPatternEventT5 = ConfigurationManager.AppSettings["HornPatternEventT5"]; } else { logic.HornPatternEventT5 = "1,1"; } if (ConfigurationManager.AppSettings["HornPatternEventT4"] != null) { logic.HornPatternEventT4 = ConfigurationManager.AppSettings["HornPatternEventT4"]; } else { logic.HornPatternEventT4 = "1,1"; } if (ConfigurationManager.AppSettings["HornPatternEventT1"] != null) { logic.HornPatternEventT1 = ConfigurationManager.AppSettings["HornPatternEventT1"]; } else { logic.HornPatternEventT1 = "1,1"; } if (ConfigurationManager.AppSettings["HornPatternEventStart"] != null) { logic.HornPatternEventStart = ConfigurationManager.AppSettings["HornPatternEventStart"]; } else { logic.HornPatternEventStart = "1,1"; } if (ConfigurationManager.AppSettings["HornPatternEventGeneralRecall"] != null) { logic.HornPatternEventGeneralRecall = ConfigurationManager.AppSettings["HornPatternEventGeneralRecall"]; } else { logic.HornPatternEventGeneralRecall = "1,1"; } if (ConfigurationManager.AppSettings["HornPatternIndividualRecall"] != null) { logic.HornPatternIndividualRecall = ConfigurationManager.AppSettings["HornPatternIndividualRecall"]; } else { logic.HornPatternIndividualRecall = "1,1"; } System.Media.SoundPlayer _soundPlayer = new SoundPlayer(); Stream str = Marconi.Properties.Resources.marconi_race_sound1; _soundPlayer = new System.Media.SoundPlayer(); _soundPlayer.Stream = str; _soundPlayer.LoadAsync(); logic.InternalPlayer = _soundPlayer; logic.BoardDriver = relayBoard; logic.EventReset(); this.btGeneralRecall.Enabled = false; this.btnIndividualRecall.Enabled = false; this.lblRelayBoardStatusValue.Text = relayBoard.RelayBoardMessage; }