public static bool UpdateMashProfile(RequestReceivedEventArgs e, JsonArray h) { try { string[] steps = null; string[] stepData = null; float tempValue = 0.0F; MashStep newMashStep = null; PinManagement.mashSteps = new MashSteps(); PinManagement.mashSteps.Steps = new ArrayList(); // mashProfile=0:122:15,1:135:15,2:148:60,3:170:15,4:225:90, if (e.Request.GetArguments.Contains("mashProfile")) { string temp = e.Request.GetArguments["mashProfile"].ToString(); temp = temp.Replace("%3A", ":"); temp = temp.Replace("%2C", ","); steps = temp.Split(','); if (steps != null) { foreach (string step in steps) { stepData = step.Split(':'); if ((stepData != null) && (stepData.Length > 2)) { newMashStep = new MashStep(); Settings.TryParseFloat(stepData[1], out tempValue); newMashStep.StepNumber = Convert.ToInt32(stepData[0]); ; newMashStep.Temperature = tempValue; newMashStep.Time = Convert.ToInt32(stepData[2]); PinManagement.mashSteps.Steps.Add(newMashStep); } } PinManagement.mashSteps.CurrentStep = null; } } // send back an ok response h.Add("OK"); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); h.Add("ERROR"); h.Add(ex.Message); } return true; }
public static bool GetTemperature(RequestReceivedEventArgs e, JsonArray h) { try { DateTime timeOfReading = DateTime.Now; JsonObject reading = new JsonObject(); reading.Add("timeOfReading", timeOfReading.ToString()); reading.Add("temperatureCelsius", PinManagement.temperatureCelsiusSensor.ToString("f2")); reading.Add("temperatureFahrenheit", PinManagement.currentTemperatureSensor.ToString("f2")); reading.Add("isHeating", PinManagement.isHeating.ToString()); reading.Add("pidOutput", PinManagement.currentPIDOuput.ToString("f2")); reading.Add("setTemperature", PinManagement.setTemperature.ToString("f2")); if ((PinManagement.mashSteps != null) && (PinManagement.mashSteps.CurrentStep != null)) { reading.Add("currentMashStep", PinManagement.mashSteps.CurrentStep.StepNumber.ToString()); reading.Add("currentMashTemp", PinManagement.mashSteps.CurrentStep.Temperature.ToString("f2")); TimeSpan timeInterval = DateTime.Now.Subtract(PinManagement.currentMashStepStartTime); reading.Add("currentMashTime", timeInterval.Minutes); } h.Add(reading); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } return true; }
public static bool GetSettings(RequestReceivedEventArgs e, JsonArray h) { try { Settings settings = new Settings(); settings.loadSettings(); JsonObject settingsValues = new JsonObject(); settingsValues.Add("timeZoneOffset", settings.TimeZoneOffset.ToString()); float value = settings.MinutesBetweenReadings / 60000; settingsValues.Add("minutesBetweenReadings", value.ToString("f2")); settingsValues.Add("temperatureOffset", settings.TemperatureOffset.ToString("f2")); settingsValues.Add("temperatureHeaterOffset", settings.TemperatureHeaterOffset.ToString("f2")); settingsValues.Add("historyFilename", settings.HistoryFilename); settingsValues.Add("ntpServerName", settings.NTPServerName); int tempValue = settings.MinutesBetweenNTPUpdate / 60000; settingsValues.Add("minutesBetweenNTPUpdate", tempValue.ToString()); settingsValues.Add("netbiosName", settings.NetBiosName); settingsValues.Add("enableDHCP", settings.EnableDHCP.ToString()); settingsValues.Add("staticIPAddress", settings.StaticIPAddress); settingsValues.Add("subnetMask", settings.SubnetMask); settingsValues.Add("defaultGateway", settings.DefaultGateway); settingsValues.Add("primaryDNSAddress", settings.PrimaryDNSAddress); settingsValues.Add("secondaryDNSAddress", settings.SecondaryDNSAddress); settingsValues.Add("voltageReference", settings.VoltageReference); settingsValues.Add("padResistance", settings.PadResistance); settingsValues.Add("resistanceRT", settings.ResistanceRT); settingsValues.Add("coefficientA", settings.CoefficientA); settingsValues.Add("coefficientB", settings.CoefficientB); settingsValues.Add("coefficientC", settings.CoefficientC); settingsValues.Add("coefficientD", settings.CoefficientD); settingsValues.Add("kpValue", settings.PIDKp); settingsValues.Add("kiValue", settings.PIDKi); settingsValues.Add("kdValue", settings.PIDKd); h.Add(settingsValues); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } return true; }
/// <summary> /// Convert a value to JSON. /// </summary> /// <param name="o">The value to convert. Supported types are: Boolean, String, Byte, (U)Int16, (U)Int32, Float, Double, Decimal, JsonObject, JsonArray, Array, Object and null.</param> /// <returns>The JSON object as a string or null when the value type is not supported.</returns> /// <remarks>For objects, only public fields are converted.</remarks> public static string ToJson(object o) { if (o == null) return "null"; Type type = o.GetType(); switch (type.Name) { case "Boolean": return (bool)o ? "true" : "false"; case "String": return "\"" + JsEncode((string)o) + "\""; case "Byte": case "Int16": case "UInt16": case "Int32": case "UInt32": case "Single": case "Double": case "Decimal": case "JsonObject": case "JsonArray": return o.ToString(); } if (type.IsArray) { JsonArray jsonArray = new JsonArray(); foreach (object i in (Array)o) jsonArray.Add(i); return jsonArray.ToString(); } if (type.IsClass) { JsonObject jsonObject = new JsonObject(); FieldInfo[] fields = type.GetFields(); foreach (FieldInfo info in fields) jsonObject.Add(info.Name, info.GetValue(o)); return jsonObject.ToString(); } return null; }
public static bool UpdateSettings(RequestReceivedEventArgs e, JsonArray h) { try { Settings settings = new Settings(); settings.loadSettings(); float tempValue = 0.0F; if (e.Request.GetArguments.Contains("minutesBetweenReadings")) { Settings.TryParseFloat(e.Request.GetArguments["minutesBetweenReadings"].ToString(), out tempValue); settings.MinutesBetweenReadings = tempValue; } if (e.Request.GetArguments.Contains("historyFilename")) { settings.HistoryFilename = e.Request.GetArguments["historyFilename"].ToString(); } if (e.Request.GetArguments.Contains("ntpServerName")) { settings.NTPServerName = e.Request.GetArguments["ntpServerName"].ToString(); } if (e.Request.GetArguments.Contains("minutesBetweenNTPUpdate")) { settings.MinutesBetweenNTPUpdate = Convert.ToInt32(e.Request.GetArguments["minutesBetweenNTPUpdate"].ToString()); } if (e.Request.GetArguments.Contains("timeZoneOffset")) { settings.TimeZoneOffset = Convert.ToInt32(e.Request.GetArguments["timeZoneOffset"].ToString()); } if (e.Request.GetArguments.Contains("netbiosName")) { settings.NetBiosName = e.Request.GetArguments["netbiosName"].ToString(); } if (e.Request.GetArguments.Contains("temperatureOffset")) { Settings.TryParseFloat(e.Request.GetArguments["temperatureOffset"].ToString(), out tempValue); settings.TemperatureOffset = tempValue; } if (e.Request.GetArguments.Contains("temperatureHeaterOffset")) { Settings.TryParseFloat(e.Request.GetArguments["temperatureHeaterOffset"].ToString(), out tempValue); settings.TemperatureHeaterOffset = tempValue; } if (e.Request.GetArguments.Contains("enableDHCP")) { if (e.Request.GetArguments["enableDHCP"].ToString().ToLower().Equals("on")) { settings.EnableDHCP = true; } else { settings.EnableDHCP = false; } } if (e.Request.GetArguments.Contains("staticIPAddress")) { settings.StaticIPAddress = e.Request.GetArguments["staticIPAddress"].ToString(); } if (e.Request.GetArguments.Contains("subnetMask")) { settings.SubnetMask = e.Request.GetArguments["subnetMask"].ToString(); } if (e.Request.GetArguments.Contains("defaultGateway")) { settings.DefaultGateway = e.Request.GetArguments["defaultGateway"].ToString(); } if (e.Request.GetArguments.Contains("primaryDNSAddress")) { settings.PrimaryDNSAddress = e.Request.GetArguments["primaryDNSAddress"].ToString(); } if (e.Request.GetArguments.Contains("secondaryDNSAddress")) { settings.SecondaryDNSAddress = e.Request.GetArguments["secondaryDNSAddress"].ToString(); } if (e.Request.GetArguments.Contains("voltageReference")) { Settings.TryParseFloat(e.Request.GetArguments["voltageReference"].ToString(), out tempValue); settings.VoltageReference = tempValue; } if (e.Request.GetArguments.Contains("padResistance")) { Settings.TryParseFloat(e.Request.GetArguments["padResistance"].ToString(), out tempValue); settings.PadResistance = tempValue; } if (e.Request.GetArguments.Contains("resistanceRT")) { Settings.TryParseFloat(e.Request.GetArguments["resistanceRT"].ToString(), out tempValue); settings.ResistanceRT = tempValue; } if (e.Request.GetArguments.Contains("coefficientA")) { Settings.TryParseFloat(e.Request.GetArguments["coefficientA"].ToString(), out tempValue); settings.CoefficientA = tempValue; } if (e.Request.GetArguments.Contains("coefficientB")) { Settings.TryParseFloat(e.Request.GetArguments["coefficientB"].ToString(), out tempValue); settings.CoefficientB = tempValue; } if (e.Request.GetArguments.Contains("coefficientC")) { Settings.TryParseFloat(e.Request.GetArguments["coefficientC"].ToString(), out tempValue); settings.CoefficientC = tempValue; } if (e.Request.GetArguments.Contains("coefficientD")) { Settings.TryParseFloat(e.Request.GetArguments["coefficientD"].ToString(), out tempValue); settings.CoefficientD = tempValue; } if (e.Request.GetArguments.Contains("kpValue")) { Settings.TryParseFloat(e.Request.GetArguments["kpValue"].ToString(), out tempValue); settings.PIDKp = tempValue; } if (e.Request.GetArguments.Contains("kiValue")) { Settings.TryParseFloat(e.Request.GetArguments["kiValue"].ToString(), out tempValue); settings.PIDKi = tempValue; } if (e.Request.GetArguments.Contains("kdValue")) { Settings.TryParseFloat(e.Request.GetArguments["kdValue"].ToString(), out tempValue); settings.PIDKd = tempValue; } // save the new device settings settings.saveSettings(); // send back an ok response h.Add("OK"); // spool up a thread that will sleep for 10 seconds and then reboot the Netduino var rebootThread = new Thread(new ThreadStart(delegate() { Thread.Sleep(10000); PowerState.RebootDevice(false, 30000); })); rebootThread.Start(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); h.Add("ERROR"); h.Add(ex.Message); } return true; }
/// <summary> /// Returns the responses added to the webserver /// </summary> /// <param name="e"></param> /// <param name="h"></param> /// <returns></returns> private void ResponseListJSON(Request e, JsonArray j) { JsonObject o; foreach ( Object k in _Responses.Keys ) { if ( _Responses[k] as JSONResponse != null ) { o = new JsonObject( ); o.Add("methodURL", k); o.Add("methodInternalName", ( (Response)_Responses[k] ).URL); j.Add(o); } } }