public static void UpdateConfigFile(Controller controller) { try { // System.IO.File.Create(@"SD\Configuration\controller.txt"); using (var filestream = new FileStream(@"SD\Configuration\config.txt", FileMode.Create)) { StreamWriter sw = new StreamWriter(filestream); sw.WriteLine("macAddress:" + Network.GetMacAddress()); sw.WriteLine("modelNumber:" + controller.ModelNumber); sw.WriteLine("revision:" + controller.Revision); sw.WriteLine("firmware:" + controller.Firmware); // sw.WriteLine("ipAddress:" + controller.IpAddressFromConfiguration); sw.WriteLine("assetNumber:" + controller.AssetNumber); sw.WriteLine("cycleLengthMs:" + controller.CycleLengthMs.ToString()); sw.WriteLine("heartbeatsRequiredToChangeState:" + controller.HeartbeatsRequiredToChangeState.ToString()); sw.WriteLine("softwareHash:" + controller.SoftwareHash); sw.WriteLine("ntpServer:" + controller.NTPServer); sw.Close(); sw.Dispose(); } } catch (System.IO.IOException ex) { Debug.Print(ex.Message); } }
internal void GetSettings(Controller controller) { throw new NotImplementedException(); }
private void GetSettingsFromSDCard(Controller controller) { string strConfiguration = ""; string[] pairs; // FileHelpers.WriteConfigFile(); if(!File.Exists(@"SD\Configuration\config.txt")) // If the config file does not exist we will create one { FileHelpers.WriteConfigFile(); } using (var streamReader = new StreamReader(@"SD\Configuration\config.txt")) { int x = 0; while (streamReader.Peek() > 0) { x += 1; string strConfigLine = streamReader.ReadLine(); string[] KeyValuePair = strConfigLine.Split(':'); KeyValuePair[0] = StringHelper.RemoveExtras(KeyValuePair[0]); KeyValuePair[1] = StringHelper.RemoveExtras(KeyValuePair[1]); try { switch (KeyValuePair[0]) { case "modelNumber": Debug.Print("Model#: " + KeyValuePair[1].ToString()); controller.ModelNumber = KeyValuePair[1].ToString(); break; case "assetNumber": Debug.Print("Asset#: " + KeyValuePair[1].ToString()); controller.AssetNumber = KeyValuePair[1].ToString(); break; case "cycleLengthMs": Debug.Print("CycleLengthMS: " + KeyValuePair[1].ToString()); controller.CycleLengthMs = int.Parse(KeyValuePair[1].ToString()); break; case "heartbeatsRequiredToChangeState": Debug.Print("Heart Beats Reqd To Change State: " + KeyValuePair[1].ToString()); controller.HeartbeatsRequiredToChangeState = int.Parse(KeyValuePair[1].ToString()); break; case "softwareHash": Debug.Print("Hash: " + KeyValuePair[1].ToString()); controller.SoftwareHash = KeyValuePair[1].ToString(); break; case "ntpServer": Debug.Print("NTP Server: " + KeyValuePair[1].ToString()); controller.NTPServer = KeyValuePair[1]; break; case "enabled": Debug.Print("Enabled: " + KeyValuePair[1].ToString()); controller.Enabled = KeyValuePair[1].ToString(); break; //case "ipAddress": // Debug.Print("ipAddress: " + KeyValuePair[1].ToString()); // controller.IpAddressFromConfiguration = KeyValuePair[1].ToString(); // break; default: break; } } catch(Exception ex) { Debug.Print(ex.Message); } //pairs. = streamReader.ReadLine(); } //pairs = new string[x]; //for (var y = 0; y < x; y++) //{ // string[] KeyValuePair = pairs[x].Split(':'); ////************************* Remove Quotes and Slashes ************************* //char[] arr = KeyValuePair[0].ToCharArray(); //foreach (char c in arr) //{ // Debug.Print(c.ToString()); //} //KeyValuePair[0] = StringHelper.RemoveExtras(KeyValuePair[0]); //KeyValuePair[1] = StringHelper.RemoveExtras(KeyValuePair[1]); //switch (KeyValuePair[0]) //{ // case "modelNumber": // Debug.Print("Model#: " + KeyValuePair[1].ToString()); // controller.ModelNumber = KeyValuePair[1].ToString(); // break; // case "assetNumber": // Debug.Print("Asset#: " + KeyValuePair[1].ToString()); // controller.AssetNumber = KeyValuePair[1].ToString(); // break; // case "cycleLengthMs": // Debug.Print("CycleLengthMS: " + KeyValuePair[1].ToString()); // controller.CycleLengthMs = int.Parse(KeyValuePair[1].ToString()); // break; // case "heartbeatsRequiredToChangeState": // Debug.Print("Heart Beats Reqd To Change State: " + KeyValuePair[1].ToString()); // controller.HeartbeatsRequiredToChangeState = int.Parse(KeyValuePair[1].ToString()); // break; // case "softwareHash": // Debug.Print("Hash: " + KeyValuePair[1].ToString()); // controller.SoftwareHash = KeyValuePair[1].ToString(); // break; // case "ntpServer": // Debug.Print("NTP Server: " + KeyValuePair[1].ToString()); // controller.NTPServer = KeyValuePair[1]; // break; // case "enabled": // Debug.Print("Enabled: " + KeyValuePair[1].ToString()); // controller.Enabled = KeyValuePair[1].ToString(); // break; // default: // break; //} //} } }
// TODO Test GetSettingsFromServer // TODO Assign to Controller // TODO Add get from SD Card and Save To SD Card private void GetSettingsFromServer(Controller controller, Network network) { bool blnSDCardNeedsUpdate = false; string strText = ""; string[] pairs = null; //Try the server. If it fails, then go to the SD Card. if (ApolloSpark.Program.network.NetworkUp == true) // && controller.UpdatedFromNetwork == false) { var responsevalue = String.Empty; string url = @"http://sparkhub.metal-matic.com/api/devices/"; // string url = @"http://*****:*****@"/configuration"; var request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "application/json; charset=utf-8"; using(var response = (HttpWebResponse)request.GetResponse()) { using(var responsestream = response.GetResponseStream()) { if(responsestream != null) { using(var reader = new StreamReader(responsestream)) { strText = reader.ReadToEnd(); } pairs = strText.Split(','); } } } //catch (System.Net.Sockets.SocketException ex) //{ // Debug.Print(ex.Message + " SC Line 77"); // // throw; //} //catch (System.Net.WebException exc) //{ // Debug.Print(exc.Message + " SC Line 82"); // Debug.Print(exc.Message); // Debug.Print(exc.StackTrace); // // Debug.Print(exc.Status); // // throw; //} //for (int x = 0; x < pairs.Length; x++) //{ // pairs[x].Split(':'); //} if (pairs.Length > 0) { for (int x = 0; x < pairs.Length; x++) { string[] KeyValuePair = pairs[x].Split(':'); //************************* Remove Quotes and Slashes ************************* char[] arr = KeyValuePair[0].ToCharArray(); //foreach (char c in arr) //{ // Debug.Print(c.ToString()); //} KeyValuePair[0] = StringHelper.RemoveExtras(KeyValuePair[0]); KeyValuePair[1] = StringHelper.RemoveExtras(KeyValuePair[1]); switch (KeyValuePair[0]) { case "modelNumber": Debug.Print("Model#: " + KeyValuePair[1].ToString()); if (controller.ModelNumber != KeyValuePair[1].ToString()) { blnSDCardNeedsUpdate = true; controller.ModelNumber = KeyValuePair[1].ToString(); } break; case "assetNumber": Debug.Print("Asset#: " + KeyValuePair[1].ToString()); if (controller.AssetNumber != KeyValuePair[1].ToString()) { blnSDCardNeedsUpdate = true; controller.AssetNumber = KeyValuePair[1].ToString(); } break; case "cycleLengthMs": Debug.Print("CycleLengthMS: " + KeyValuePair[1].ToString()); if (controller.CycleLengthMs != int.Parse(KeyValuePair[1])) { blnSDCardNeedsUpdate = true; controller.CycleLengthMs = int.Parse(KeyValuePair[1]); } break; case "heartbeatsRequiredToChangeState": Debug.Print("Heart Beats Reqd To Change State: " + KeyValuePair[1].ToString()); if (controller.HeartbeatsRequiredToChangeState != int.Parse(KeyValuePair[1])) { blnSDCardNeedsUpdate = true; controller.HeartbeatsRequiredToChangeState = int.Parse(KeyValuePair[1]); } break; case "softwareHash": Debug.Print("Hash: " + KeyValuePair[1].ToString()); if (controller.SoftwareHash != (KeyValuePair[1]).ToString()) { blnSDCardNeedsUpdate = true; controller.SoftwareHash = (KeyValuePair[1]).ToString(); } break; case "ntpServer": Debug.Print("NTP Server: " + KeyValuePair[1].ToString()); if (controller.NTPServer != (KeyValuePair[1]).ToString()) { blnSDCardNeedsUpdate = true; controller.NTPServer = (KeyValuePair[1]).ToString(); } break; case "enabled": Debug.Print("Enabled: " + KeyValuePair[1].ToString()); if (controller.Enabled != (KeyValuePair[1]).ToString()) { blnSDCardNeedsUpdate = true; controller.Enabled = (KeyValuePair[1]).ToString(); } break; //case "ipAddress": // Debug.Print("Enabled: " + KeyValuePair[1].ToString()); // if (controller.IpAddressFromConfiguration != (KeyValuePair[1]).ToString()) // { // blnSDCardNeedsUpdate = true; // controller.IpAddressFromConfiguration = (KeyValuePair[1]).ToString(); // } // break; default: break; } } if(blnSDCardNeedsUpdate) { FileHelpers.UpdateConfigFile(controller); } } // TODO Parse this response and assign it to the appropriate properties } }