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; }
/// <summary> /// Execute this to check if SendResponse should be executed /// </summary> /// <param name="RequestArguments">Event Args</param> /// <returns>True if URL refers to this method, otherwise false (false = SendRequest should not be executed) </returns> public override bool ConditionsCheckAndDataFill(RequestReceivedEventArgs RequestArguments) { _Pairs.Clear(); if (RequestArguments.Request.URL == this.Name) return _CheckResponse(RequestArguments, _Pairs); else return false; }
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 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> /// Sends XML to client /// </summary> /// <param name="requestArguments">Could be null</param> /// <returns>True if 200_OK was sent, otherwise false</returns> public override bool SendResponse(RequestReceivedEventArgs requestArguments) { String jsonResponse = String.Empty; jsonResponse = _Pairs.ToString(); byte[] bytes = Encoding.UTF8.GetBytes(jsonResponse); int byteCount = bytes.Length; try { Send200_OK("application/json", byteCount, requestArguments.Client); requestArguments.Client.Send(bytes, byteCount, SocketFlags.None); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return false; } return true; }
/// <summary> /// Override this method to implement a response logic. /// </summary> /// <returns>True if Response was sent, false if not</returns> public abstract bool SendResponse(RequestReceivedEventArgs requestArguments);
/// <summary> /// Override this, check the URL and process data if needed /// </summary> /// <returns>True if SendResponse should be sent, false if not</returns> public abstract bool ConditionsCheckAndDataFill(RequestReceivedEventArgs requestArguments);
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; }
public override bool SendResponse(RequestReceivedEventArgs RequestArguments) { string url = String.Empty; string[] urlParts = RequestArguments.Request.URL.Split('/'); bool addBackSlash = false; foreach (string part in urlParts) { if (addBackSlash) { url = url + @"\" + part; } else { url = part; addBackSlash = true; } } string filePath = Settings.ROOT_PATH + url; //File found check try { if (!File.Exists(filePath)) { Send404_NotFound(RequestArguments.Client); return false; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return false; } string mType = MimeType(filePath); //File sending using (FileStream inputStream = new FileStream(filePath, FileMode.Open)) { Send200_OK(mType, (int)inputStream.Length, RequestArguments.Client); byte[] readBuffer = new byte[Settings.FILE_BUFFERSIZE]; int sentBytes = 0; //Sending parts in size of "Settings.FILE_BUFFERSIZE" while (sentBytes < inputStream.Length) { int bytesRead = inputStream.Read(readBuffer, 0, readBuffer.Length); try { sentBytes += RequestArguments.Client.Send(readBuffer, bytesRead, SocketFlags.None); } catch (Exception ex) //ToDo: Error code if client closes browser during file transport { System.Diagnostics.Debug.WriteLine(ex.Message); } } } return true; }
public override bool ConditionsCheckAndDataFill(RequestReceivedEventArgs RequestArguments) { return true; }