private void startCollectingDataButton_Click(object sender, EventArgs e) { //MessageBox.Show("SleepTime is: " + Config.Instance.SleepTime + "; PortNumber is: " + Config.Instance.PortNumber); startCollectingDataButton.Enabled = false; stopCollectingDataButton.Enabled = true; //so that user won't switch during the event: this.selectedRaceComboBox.Enabled = false; this.eventComboBox.Enabled = false; ResetRaceStandingsGrid(); //passingsDataGrid.DataSource = new BindingList<PassingsInfo>(); readingsLogger = new TagSubscriber(LogReadings); passingsLogger = new TagSubscriber(LogPassings); readingsQueue = new PriorityCollectionNonBlocking<TagInfo>("Queue", 1024); passingsQueue = new PriorityCollectionNonBlocking<TagInfo>("Queue", 1024); #if V15 HardcardServer.NetworkPort = Properties.Settings.Default.PortNumber; HardcardServer.PassingSleepTime = 1000; server = new HardcardServer("Hardcard Race System"); //LoggerConsole log = new LoggerConsole(); //LoggerSummary countLogger = new LoggerSummary(); //LoggerBinary binaryLog = new LoggerBinary("tagReadings.bin"); //binaryLog.AddPublisher(server.IndividualReadingPublisher); //countLogger.AddPublisher(server.IndividualReadingPublisher); //countLogger.DesiredTagTypes = TagEventType.Read; readingsLogger.AddPublisher(server.PassingsPublisher); readingsLogger.DesiredTagTypes = TagEventType.PassDetermined; passingsLogger.AddPublisher(server.PassingsPublisher); passingsLogger.DesiredTagTypes = TagEventType.PassDetermined; bool useXML = Properties.Settings.Default.useXML; networkFeed = new NetworkPublisher(useXML); networkFeed.Server = Properties.Settings.Default.serverIP; networkFeed.Port = Properties.Settings.Default.serverPortNumber; networkFeed.AddPublisher(server.PassingsPublisher); networkFeed.DesiredTagTypes = TagEventType.PassDetermined; networkFeed.Start(); server.Start(); #else int portNumber = Properties.Settings.Default.PortNumber; networkListener = new NetworkListener("Race Host",portNumber); int initialCapacity = 10000; PriorityCollectionBlocking<TagInfo> queue = new PriorityCollectionBlocking<TagInfo>("Queue", initialCapacity); // The queue above is used to communicate between the buffer below and the passDetector. BufferReadings buffer = new BufferReadings(queue); passDetector = new ProcessBufferedReadings("Pass Detector", queue); buffer.AddPublisher(networkListener); // Subscribe the loggers to the publishers. readingsLogger.AddPublisher(networkListener); passingsLogger.AddPublisher(passDetector); passDetector.Start(); networkListener.Start(); #endif }
public void AddListener(NetworkListener listener) { listeners.Add(listener); }