private void loop() { // Logging var logging = new Logging(); // Start location class var location = new Location(); location.start(); // Start RTTY Audio var rtty = new RTTY(Convert.ToDouble(settings["rttySineFreq"]), Convert.ToInt32(settings["rttySampleRate"]), Convert.ToInt32(settings["rttyBaud"]), 0, Convert.ToDouble(settings["rttyLow"]), Convert.ToDouble(settings["rttyHigh"]), Convert.ToInt32(settings["rttyStopBits"])); // Defaults are fine if ((bool)settings["rttyRTTYToggle"]) { rtty.Start(); rtty.transmitSentence("Tranmission started!"); } // Start habitat & couch var habitat = new Habitat((string)settings["habitatCouchURL"], (string)settings["habitatCouchDB"], (string)settings["sentenceCallsign"]); // Start Twitter var twitter = new Twitter((string)settings["twitterUsername"], (string)settings["twitterConsumerKey"], (string)settings["twitterConsumerSecret"], (string)settings["twitterAccessToken"], (string)settings["twitterAccessSecret"]); if (settings.Contains("sentenceID")) { sentenceID = Convert.ToInt32(settings["sentenceID"]); } else { sentenceID = 0; } OnPropertyChanged("dataSentenceID"); int tweeti = 0; while (_isRunning == true) { ///////////////////////////////////// // Main Loop Here. Yay. Whoop. No. // ///////////////////////////////////// sentenceID++; settings["sentenceID"] = sentenceID; dataSentenceID = sentenceID.ToString(); OnPropertyChanged("dataSentenceID"); bool hasNetworkConnection = NetworkInterface.GetIsNetworkAvailable(); statusDataConnection = hasNetworkConnection.ToString(); OnPropertyChanged("statusDataConnection"); // Collect Data into Sentence object var sentence = new Sentence((string)settings["sentenceCallsign"], sentenceID, location.latitude, location.longitude, location.altitude); sentence.sentenceData.Add(location.speed); if (hasNetworkConnection) { sentence.sentenceData.Add("1"); } else { sentence.sentenceData.Add("0"); } dataAltitude = location.altitude; OnPropertyChanged("dataAltitude"); dataLat = location.latitude; OnPropertyChanged("dataLat"); dataLong = location.longitude; OnPropertyChanged("dataLong"); dataSpeed = location.speed; OnPropertyChanged("dataSpeed"); dataTime = System.DateTime.Now.ToString("HH:mm:ss"); OnPropertyChanged("dataTime"); if (location.status) { System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { updateMap(location.currentlocation); }); } // Construct sentence if (sentence.compileSentence()) { // Log sentence & data sentence.logSentence(); // Upload to habitat, if internet if (hasNetworkConnection && (bool)settings["habitatHabitatToggle"]) { habitat.uploadTelemetry(sentence.wholeSentence); statusHabitat = habitat.status.ToString(); OnPropertyChanged("statusHabitat"); } else { statusHabitat = "False"; OnPropertyChanged("statusHabitat"); } // Transmit sentence if (rtty.isRunning) { rtty.transmitSentence(sentence.wholeSentence); statusTransmit = "True"; OnPropertyChanged("statusTransmit"); } else { statusTransmit = "False"; OnPropertyChanged("statusTransmit"); } } // Twitter, if internet if (hasNetworkConnection && (bool)settings["twitterTwitterToggle"]) { if (tweeti >= Convert.ToInt32(settings["twitterInterval"])) { string tweet = "I'm at " + location.latitude + ", " + location.longitude + " at an altitude of " + location.altitude + "m #apexhab #ukhas"; twitter.newStatusAsync(tweet, location.latitude, location.longitude); statusTwitter = twitter.status.ToString(); OnPropertyChanged("statusTwitter"); tweeti = 0; } } else { statusTwitter = "False"; OnPropertyChanged("statusTwitter"); } tweeti++; // Upload photos to SkyDrive // Probably wait a bit Thread.Sleep(2000); } // End & Close stuff, possibly not necessary location.stop(); rtty.Stop(); }
private void loop() { // Logging var logging = new Logging(); // Start location class var location = new Location(); location.start(); // Start RTTY Audio var rtty = new RTTY(Convert.ToDouble(settings["rttySineFreq"]), Convert.ToInt32(settings["rttySampleRate"]), Convert.ToInt32(settings["rttyBaud"]), 0, Convert.ToDouble(settings["rttyLow"]), Convert.ToDouble(settings["rttyHigh"]), Convert.ToInt32(settings["rttyStopBits"])); // Defaults are fine if ((bool)settings["rttyRTTYToggle"]) { rtty.Start(); rtty.transmitSentence("Tranmission started!"); } // Start habitat & couch var habitat = new Habitat((string)settings["habitatCouchURL"], (string)settings["habitatCouchDB"], (string)settings["sentenceCallsign"]); // Start Twitter var twitter = new Twitter((string)settings["twitterUsername"], (string)settings["twitterConsumerKey"], (string)settings["twitterConsumerSecret"], (string)settings["twitterAccessToken"], (string)settings["twitterAccessSecret"]); if (settings.Contains("sentenceID")) { sentenceID = Convert.ToInt32(settings["sentenceID"]); } else { sentenceID = 0; } OnPropertyChanged("dataSentenceID"); int tweeti = 0; while (_isRunning == true) { ///////////////////////////////////// // Main Loop Here. Yay. Whoop. No. // ///////////////////////////////////// sentenceID++; settings["sentenceID"] = sentenceID; dataSentenceID = sentenceID.ToString(); OnPropertyChanged("dataSentenceID"); bool hasNetworkConnection = NetworkInterface.GetIsNetworkAvailable(); statusDataConnection = hasNetworkConnection.ToString(); OnPropertyChanged("statusDataConnection"); // Collect Data into Sentence object var sentence = new Sentence((string)settings["sentenceCallsign"], sentenceID, location.latitude, location.longitude, location.altitude); sentence.sentenceData.Add(location.speed); if (hasNetworkConnection) { sentence.sentenceData.Add("1"); } else { sentence.sentenceData.Add("0"); } dataAltitude = location.altitude; OnPropertyChanged("dataAltitude"); dataLat = location.latitude; OnPropertyChanged("dataLat"); dataLong = location.longitude; OnPropertyChanged("dataLong"); dataSpeed = location.speed; OnPropertyChanged("dataSpeed"); dataTime = System.DateTime.Now.ToString("HH:mm:ss"); OnPropertyChanged("dataTime"); if (location.status) { System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { updateMap(location.currentlocation); }); } // Construct sentence if(sentence.compileSentence()){ // Log sentence & data sentence.logSentence(); // Upload to habitat, if internet if (hasNetworkConnection && (bool)settings["habitatHabitatToggle"]) { habitat.uploadTelemetry(sentence.wholeSentence); statusHabitat = habitat.status.ToString(); OnPropertyChanged("statusHabitat"); } else { statusHabitat = "False"; OnPropertyChanged("statusHabitat"); } // Transmit sentence if (rtty.isRunning) { rtty.transmitSentence(sentence.wholeSentence); statusTransmit = "True"; OnPropertyChanged("statusTransmit"); } else { statusTransmit = "False"; OnPropertyChanged("statusTransmit"); } } // Twitter, if internet if (hasNetworkConnection && (bool)settings["twitterTwitterToggle"]) { if (tweeti >= Convert.ToInt32(settings["twitterInterval"])) { string tweet = "I'm at " + location.latitude + ", " + location.longitude + " at an altitude of " + location.altitude + "m #apexhab #ukhas"; twitter.newStatusAsync(tweet, location.latitude, location.longitude); statusTwitter = twitter.status.ToString(); OnPropertyChanged("statusTwitter"); tweeti = 0; } } else { statusTwitter = "False"; OnPropertyChanged("statusTwitter"); } tweeti++; // Upload photos to SkyDrive // Probably wait a bit Thread.Sleep(2000); } // End & Close stuff, possibly not necessary location.stop(); rtty.Stop(); }