public FirmwareSettings Load() { lock (readWriteLock) { TextReader textReader = null; try{ XmlSerializer deserializer = XmlHelper.CreateSerializer(typeof(FirmwareSettings)); textReader = new StreamReader(SettingsFileName); Object obj = deserializer.Deserialize(textReader); FirmwareSettings myNewSettings = (FirmwareSettings)obj; textReader.Close(); return(myNewSettings); } catch (Exception exp) { Console.WriteLine("Exception during settings load: " + exp.Message); Console.WriteLine(exp.StackTrace); } if (textReader != null) { textReader.Close(); } } return(null); }
public static void Main(string[] args) { Lcd.Instance.DrawBitmap (monoLogo, new Point ((int)(Lcd.Width - monoLogo.Width) / 2, 5)); Rectangle textRect = new Rectangle (new Point (0, Lcd.Height - (int)Font.SmallFont.maxHeight - 2), new Point (Lcd.Width, Lcd.Height - 2)); Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Initializing...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); WiFiDevice.TurnOff (); if (!Directory.Exists (ProgramPathSdCard)) Directory.CreateDirectory (ProgramPathSdCard); // JIT work-around remove when JIT problem is fixed System.Threading.Thread.Sleep (10); Console.WriteLine ("JIT workaround - please remove!!!"); Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Checking WiFi...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); //WiFiDevice.IsLinkUp (); Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Starting Mono Runtime...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); string monoVersion = "Unknown"; Type type = Type.GetType ("Mono.Runtime"); if (type != null) { MethodInfo displayName = type.GetMethod ("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); if (displayName != null) monoVersion = (string)displayName.Invoke (null, null); Console.WriteLine ("Mono Version" + monoVersion); } string monoCLR = System.Reflection.Assembly.GetExecutingAssembly ().ImageRuntimeVersion; // JIT work-around end but look for more below //Load settings Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Loading settings...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); settings = settings.Load(); if (settings != null) { Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Applying settings...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); settings.Save();// JIT work-around WriteWpaSupplicantConfiguration(settings.WiFiSettings.SSID, settings.WiFiSettings.Password, settings.WiFiSettings.Encryption); if (settings.WiFiSettings.ConnectAtStartUp) { Lcd.Instance.WriteTextBox (Font.SmallFont, textRect, "Connecting to WiFi...", true, Lcd.Alignment.Center); Lcd.Instance.Update (); if (WiFiDevice.TurnOn (60000)) { WiFiDevice.GetIpAddress ();// JIT work-around if (settings.GeneralSettings.CheckForSwUpdatesAtStartUp) { ShowUpdatesDialogs (); } else { var dialog = new InfoDialog ("Connected Successfully " + WiFiDevice.GetIpAddress (), true); dialog.Show (); } } else { var dialog = new InfoDialog ("Failed to connect to WiFI Network", true); dialog.Show (); } } } else { var dialog = new InfoDialog ("Failed to load settings", true); dialog.Show (); settings = new FirmwareSettings(); } //Keep showing the menu even if user press esc while(true) { ShowMainMenu(); } }