private static void OutputLoginForm(HttpServerResponse resp, string Message)
 {
     resp.Write("<html><head><title>Actuator</title></head><body><form method='POST' action='/' target='_self' autocomplete='true'>");
     resp.Write(Message);
     resp.Write("<h1>Login</h1><p><label for='UserName'>User Name:</label><br/><input type='text' name='UserName'/></p>");
     resp.Write("<p><label for='Password'>Password:</label><br/><input type='password' name='Password'/></p>");
     resp.Write("<p><input type='submit' value='Login'/></p></form></body></html>");
 }
        private static void HttpGetRoot(HttpServerResponse resp, HttpServerRequest req)
        {
            string SessionId = req.Header.GetCookie("SessionId");

            resp.ContentType = "text/html";
            resp.Encoding    = System.Text.Encoding.UTF8;
            resp.ReturnCode  = HttpStatusCode.Successful_OK;

            if (CheckSession(SessionId))
            {
                resp.Write("<html><head><title>Actuator</title></head><body><h1>Welcome to Actuator</h1><p>Below, choose what you want to do.</p><ul>");
                resp.Write("<li><a href='/credentials'>Update login credentials.</a></li>");
                resp.Write("<li><a href='/set'>Control Outputs</a></li>");
                resp.Write("<li>View Output States</li><ul>");
                resp.Write("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
                resp.Write("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
                resp.Write("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
                resp.Write("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li></ul>");
                resp.Write("</ul></body></html>");
            }
            else
            {
                OutputLoginForm(resp, string.Empty);
            }
        }
        private static void HttpGetRoot(HttpServerResponse resp, HttpServerRequest req, bool Protected)
        {
            networkLed.High();
            try
            {
                string SessionId = req.Header.GetCookie("SessionId");
                string Host;

                resp.ContentType = "text/html";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                if ((!Protected) || CheckSession(SessionId))
                {
                    resp.Write("<html><head><title>Camera</title></head><body><h1>Welcome to Camera</h1><p>Below, choose what you want to do.</p><ul>");
                    resp.Write("<li><a href='/html'>View camera.</a></li>");

                    if (Protected)
                    {
                        resp.Write("<li><a href='/credentials'>Update login credentials.</a></li>");
                    }
                    else
                    {
                        int i;

                        Host = req.Header.Host;
                        if ((i = Host.IndexOf(':')) > 0)
                        {
                            Host = Host.Substring(0, i);
                        }

                        resp.Write("<li><a href='http://");
                        resp.Write(Host);
                        resp.Write(':');
                        resp.Write(upnpServer.Port.ToString());
                        resp.Write("/StillImage'>Still Image Web service.</a></li>");
                    }

                    resp.Write("</body></html>");
                }
                else
                {
                    OutputLoginForm(resp, string.Empty);
                }
            } finally
            {
                networkLed.Low();
            }
        }
 private static void OutputCredentialsForm(HttpServerResponse resp, string Message)
 {
     resp.Write("<html><head><title>Sensor</title></head><body><form method='POST' action='/credentials' target='_self' autocomplete='true'>");
     resp.Write(Message);
     resp.Write("<h1>Update Login Credentials</h1><p><label for='UserName'>User Name:</label><br/><input type='text' name='UserName'/></p>");
     resp.Write("<p><label for='Password'>Password:</label><br/><input type='password' name='Password'/></p>");
     resp.Write("<p><label for='NewUserName'>New User Name:</label><br/><input type='text' name='NewUserName'/></p>");
     resp.Write("<p><label for='NewPassword1'>New Password:</label><br/><input type='password' name='NewPassword1'/></p>");
     resp.Write("<p><label for='NewPassword2'>New Password again:</label><br/><input type='password' name='NewPassword2'/></p>");
     resp.Write("<p><input type='submit' value='Update'/></p></form></body></html>");
 }
예제 #5
0
        internal void Write(HttpServerResponse httpResponse)
        {
            httpResponse.WriteHead(_statusCode, _headers);

            if (_content != null)
            {
                httpResponse.Write(_content, Encoding.UTF8);
            }

            httpResponse.End();
        }
        private static void HttpGetHtml(HttpServerResponse resp, HttpServerRequest req, bool Protected)
        {
            networkLed.High();
            try
            {
                LinkSpriteJpegColorCamera.ImageSize Resolution;
                string Encoding;
                byte   Compression;

                if (Protected)
                {
                    string SessionId = req.Header.GetCookie("SessionId");
                    if (!CheckSession(SessionId))
                    {
                        throw new HttpTemporaryRedirectException("/");
                    }
                }

                GetImageProperties(req, out Encoding, out Compression, out Resolution);

                resp.ContentType = "text/html";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.Expires     = DateTime.Now;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                resp.Write("<html><head/><body><h1>Camera, ");
                resp.Write(DateTime.Now.ToString());
                resp.Write("</h1><img src='camera?Encoding=");
                resp.Write(Encoding);
                resp.Write("&Compression=");
                resp.Write(Compression.ToString());
                resp.Write("&Resolution=");
                resp.Write(Resolution.ToString().Substring(1));
                resp.Write("' width='640' height='480'/>");
                resp.Write("</body><html>");
            } finally
            {
                networkLed.Low();
            }
        }
        private static void HttpGetCameraDevice(HttpServerResponse resp, HttpServerRequest req)
        {
            networkLed.High();
            try
            {
                string Xml;
                byte[] Data;
                int    c;

                using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Camera.UPnP.CameraDevice.xml"))
                {
                    c               = (int)stream.Length;
                    Data            = new byte[c];
                    stream.Position = 0;
                    stream.Read(Data, 0, c);
                    Xml = TextDecoder.DecodeString(Data, System.Text.Encoding.UTF8);
                }

                string HostName = System.Net.Dns.GetHostName();
                System.Net.IPHostEntry HostEntry = System.Net.Dns.GetHostEntry(HostName);

                foreach (System.Net.IPAddress Address in HostEntry.AddressList)
                {
                    if (Address.AddressFamily == req.ClientEndPoint.AddressFamily)
                    {
                        Xml = Xml.Replace("{IP}", Address.ToString());
                        break;
                    }
                }

                Xml = Xml.Replace("{PORT}", upnpServer.Port.ToString());
                Xml = Xml.Replace("{UDN}", defaultSettings.UDN);

                resp.ContentType = "text/xml";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                resp.Write(Xml);
            } finally
            {
                networkLed.Low();
            }
        }
예제 #8
0
        private static void HttpGetRoot(HttpServerResponse resp, HttpServerRequest req)
        {
            networkLed.High();
            try
            {
                resp.ContentType = "text/html";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                resp.Write("<html><head><title>Sensor</title></head><body><h1>Welcome to Sensor</h1><p>Below, choose what you want to do.</p><ul>");
                resp.Write("<li>View Data</li><ul>");
                resp.Write("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
                resp.Write("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
                resp.Write("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
                resp.Write("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li>");
                resp.Write("<li><a href='/html'>Data in a HTML page with graphs</a></li></ul>");
                resp.Write("</body></html>");
            } finally
            {
                networkLed.Low();
            }
        }
예제 #9
0
		private static void OutputCredentialsForm (HttpServerResponse resp, string Message)
		{
			resp.Write ("<html><head><title>Actuator</title></head><body><form method='POST' action='/credentials' target='_self' autocomplete='true'>");
			resp.Write (Message);
			resp.Write ("<h1>Update Login Credentials</h1><p><label for='UserName'>User Name:</label><br/><input type='text' name='UserName'/></p>");
			resp.Write ("<p><label for='Password'>Password:</label><br/><input type='password' name='Password'/></p>");
			resp.Write ("<p><label for='NewUserName'>New User Name:</label><br/><input type='text' name='NewUserName'/></p>");
			resp.Write ("<p><label for='NewPassword1'>New Password:</label><br/><input type='password' name='NewPassword1'/></p>");
			resp.Write ("<p><label for='NewPassword2'>New Password again:</label><br/><input type='password' name='NewPassword2'/></p>");
			resp.Write ("<p><input type='submit' value='Update'/></p></form></body></html>");
		}
예제 #10
0
		private static void HttpGetRoot (HttpServerResponse resp, HttpServerRequest req)
		{
			string SessionId = req.Header.GetCookie ("SessionId");

			resp.ContentType = "text/html";
			resp.Encoding = System.Text.Encoding.UTF8;
			resp.ReturnCode = HttpStatusCode.Successful_OK;

			if (CheckSession (SessionId))
			{
				resp.Write ("<html><head><title>Actuator</title></head><body><h1>Welcome to Actuator</h1><p>Below, choose what you want to do.</p><ul>");
				resp.Write ("<li><a href='/credentials'>Update login credentials.</a></li>");
				resp.Write ("<li><a href='/set'>Control Outputs</a></li>");
				resp.Write ("<li>View Output States</li><ul>");
				resp.Write ("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
				resp.Write ("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
				resp.Write ("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
				resp.Write ("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li></ul>");
				resp.Write ("</ul></body></html>");

			} else
				OutputLoginForm (resp, string.Empty);
		}
예제 #11
0
        private static void HttpGetHtml(HttpServerResponse resp, HttpServerRequest req)
        {
            networkLed.High();
            try
            {
                resp.ContentType = "text/html";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.Expires     = DateTime.Now;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                resp.Write("<html><head><meta http-equiv='refresh' content='60'/><title>Sensor Readout</title></head><body><h1>Readout, ");
                resp.Write(DateTime.Now.ToString());
                resp.Write("</h1><table><tr><td>Temperature:</td><td style='width:20px'/><td>");

                lock (synchObject)
                {
                    resp.Write(HtmlUtilities.Escape(temperatureC.ToString("F1")));
                    resp.Write(" C</td></tr><tr><td>Light:</td><td/><td>");
                    resp.Write(HtmlUtilities.Escape(lightPercent.ToString("F1")));
                    resp.Write(" %</td></tr><tr><td>Motion:</td><td/><td>");
                    resp.Write(motionDetected.ToString());
                    resp.Write("</td></tr></table>");

                    if (perSecond.Count > 1)
                    {
                        resp.Write("<h2>Second Precision</h2><table><tr><td><img src='historygraph?p=temp&base=sec&w=350&h=250' width='480' height='320'/></td>");
                        resp.Write("<td style='width:20px'/><td><img src='historygraph?p=light&base=sec&w=350&h=250' width='480' height='320'/></td>");
                        resp.Write("<td style='width:20px'/><td><img src='historygraph?p=motion&base=sec&w=350&h=250' width='480' height='320'/></td></tr></table>");

                        if (perMinute.Count > 1)
                        {
                            resp.Write("<h2>Minute Precision</h2><table><tr><td><img src='historygraph?p=temp&base=min&w=350&h=250' width='480' height='320'/></td>");
                            resp.Write("<td style='width:20px'/><td><img src='historygraph?p=light&base=min&w=350&h=250' width='480' height='320'/></td>");
                            resp.Write("<td style='width:20px'/><td><img src='historygraph?p=motion&base=min&w=350&h=250' width='480' height='320'/></td></tr></table>");

                            if (perHour.Count > 1)
                            {
                                resp.Write("<h2>Hour Precision</h2><table><tr><td><img src='historygraph?p=temp&base=h&w=350&h=250' width='480' height='320'/></td>");
                                resp.Write("<td style='width:20px'/><td><img src='historygraph?p=light&base=h&w=350&h=250' width='480' height='320'/></td>");
                                resp.Write("<td style='width:20px'/><td><img src='historygraph?p=motion&base=h&w=350&h=250' width='480' height='320'/></td></tr></table>");

                                if (perDay.Count > 1)
                                {
                                    resp.Write("<h2>Day Precision</h2><table><tr><td><img src='historygraph?p=temp&base=day&w=350&h=250' width='480' height='320'/></td>");
                                    resp.Write("<td style='width:20px'/><td><img src='historygraph?p=light&base=day&w=350&h=250' width='480' height='320'/></td>");
                                    resp.Write("<td style='width:20px'/><td><img src='historygraph?p=motion&base=day&w=350&h=250' width='480' height='320'/></td></tr></table>");

                                    if (perMonth.Count > 1)
                                    {
                                        resp.Write("<h2>Month Precision</h2><table><tr><td><img src='historygraph?p=temp&base=month&w=350&h=250' width='480' height='320'/></td>");
                                        resp.Write("<td style='width:20px'/><td><img src='historygraph?p=light&base=month&w=350&h=250' width='480' height='320'/></td>");
                                        resp.Write("<td style='width:20px'/><td><img src='historygraph?p=motion&base=month&w=350&h=250' width='480' height='320'/></td></tr></table>");
                                    }
                                }
                            }
                        }
                    }
                }

                resp.Write("</body><html>");
            } finally
            {
                networkLed.Low();
            }
        }
예제 #12
0
		private static void HttpGetHtml (HttpServerResponse resp, HttpServerRequest req)
		{
			networkLed.High ();
			try
			{
				string SessionId = req.Header.GetCookie ("SessionId");
				if (!CheckSession (SessionId))
					throw new HttpTemporaryRedirectException ("/");

				resp.ContentType = "text/html";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.Expires = DateTime.Now;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				resp.Write ("<html><head><meta http-equiv='refresh' content='60'/><title>Sensor Readout</title></head><body><h1>Readout, ");
				resp.Write (DateTime.Now.ToString ());
				resp.Write ("</h1><table><tr><td>Temperature:</td><td style='width:20px'/><td>");

				lock (synchObject)
				{
					resp.Write (HtmlUtilities.Escape (temperatureC.ToString ("F1")));
					resp.Write (" C</td></tr><tr><td>Light:</td><td/><td>");
					resp.Write (HtmlUtilities.Escape (lightPercent.ToString ("F1")));
					resp.Write (" %</td></tr><tr><td>Motion:</td><td/><td>");
					resp.Write (motionDetected.ToString ());
					resp.Write ("</td></tr></table>");

					if (perSecond.Count > 1)
					{
						resp.Write ("<h2>Second Precision</h2><table><tr><td><img src='historygraph?p=temp&base=sec&w=350&h=250' width='480' height='320'/></td>");
						resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=light&base=sec&w=350&h=250' width='480' height='320'/></td>");
						resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=motion&base=sec&w=350&h=250' width='480' height='320'/></td></tr></table>");

						if (perMinute.Count > 1)
						{
							resp.Write ("<h2>Minute Precision</h2><table><tr><td><img src='historygraph?p=temp&base=min&w=350&h=250' width='480' height='320'/></td>");
							resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=light&base=min&w=350&h=250' width='480' height='320'/></td>");
							resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=motion&base=min&w=350&h=250' width='480' height='320'/></td></tr></table>");

							if (perHour.Count > 1)
							{
								resp.Write ("<h2>Hour Precision</h2><table><tr><td><img src='historygraph?p=temp&base=h&w=350&h=250' width='480' height='320'/></td>");
								resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=light&base=h&w=350&h=250' width='480' height='320'/></td>");
								resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=motion&base=h&w=350&h=250' width='480' height='320'/></td></tr></table>");

								if (perDay.Count > 1)
								{
									resp.Write ("<h2>Day Precision</h2><table><tr><td><img src='historygraph?p=temp&base=day&w=350&h=250' width='480' height='320'/></td>");
									resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=light&base=day&w=350&h=250' width='480' height='320'/></td>");
									resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=motion&base=day&w=350&h=250' width='480' height='320'/></td></tr></table>");

									if (perMonth.Count > 1)
									{
										resp.Write ("<h2>Month Precision</h2><table><tr><td><img src='historygraph?p=temp&base=month&w=350&h=250' width='480' height='320'/></td>");
										resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=light&base=month&w=350&h=250' width='480' height='320'/></td>");
										resp.Write ("<td style='width:20px'/><td><img src='historygraph?p=motion&base=month&w=350&h=250' width='480' height='320'/></td></tr></table>");
									}
								}
							}
						}
					}
				}

				resp.Write ("</body><html>");

			} finally
			{
				networkLed.Low ();
			}
		}
예제 #13
0
		private static void OutputLoginForm (HttpServerResponse resp, string Message)
		{
			resp.Write ("<html><head><title>Sensor</title></head><body><form method='POST' action='/' target='_self' autocomplete='true'>");
			resp.Write (Message);
			resp.Write ("<h1>Login</h1><p><label for='UserName'>User Name:</label><br/><input type='text' name='UserName'/></p>");
			resp.Write ("<p><label for='Password'>Password:</label><br/><input type='password' name='Password'/></p>");
			resp.Write ("<p><input type='submit' value='Login'/></p></form></body></html>");
		}
예제 #14
0
		private static void HttpGetRoot (HttpServerResponse resp, HttpServerRequest req, bool Protected)
		{
			networkLed.High ();
			try
			{
				string SessionId = req.Header.GetCookie ("SessionId");
				string Host;

				resp.ContentType = "text/html";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				if ((!Protected) || CheckSession (SessionId))
				{
					resp.Write ("<html><head><title>Camera</title></head><body><h1>Welcome to Camera</h1><p>Below, choose what you want to do.</p><ul>");
					resp.Write ("<li><a href='/html'>View camera.</a></li>");

					if (Protected)
						resp.Write ("<li><a href='/credentials'>Update login credentials.</a></li>");
					else
					{
						int i;

						Host = req.Header.Host;
						if ((i = Host.IndexOf (':')) > 0)
							Host = Host.Substring (0, i);

						resp.Write ("<li><a href='http://");
						resp.Write (Host);
						resp.Write (':');
						resp.Write (upnpServer.Port.ToString ());
						resp.Write ("/StillImage'>Still Image Web service.</a></li>");
					}

					resp.Write ("</body></html>");
				} else
					OutputLoginForm (resp, string.Empty);
			} finally
			{
				networkLed.Low ();
			}
		}
        private static void HttpGetRoot(HttpServerResponse resp, HttpServerRequest req)
        {
            networkLed.High();
            try
            {
                string SessionId = req.Header.GetCookie("SessionId");

                resp.ContentType = "text/html";
                resp.Encoding    = System.Text.Encoding.UTF8;
                resp.ReturnCode  = HttpStatusCode.Successful_OK;

                if (CheckSession(SessionId))
                {
                    StringBuilder sb = new StringBuilder();
                    string        EventParameters;

                    lock (synchObject)
                    {
                        sb.Append("?Temperature=");
                        sb.Append(XmlUtilities.DoubleToString(temperatureC, 1));
                        sb.Append("&amp;TemperatureDiff=1&amp;Light=");
                        sb.Append(XmlUtilities.DoubleToString(lightPercent, 1));
                        sb.Append("&amp;LightDiff=10&amp;Motion=");
                        sb.Append(motionDetected ? "1" : "0");
                        sb.Append("&amp;Timeout=25");
                    }

                    EventParameters = sb.ToString();

                    resp.Write("<html><head><title>Sensor</title></head><body><h1>Welcome to Sensor</h1><p>Below, choose what you want to do.</p><ul>");
                    resp.Write("<li><a href='/credentials'>Update login credentials.</a></li>");
                    resp.Write("<li>View Data</li><ul>");
                    resp.Write("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
                    resp.Write("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
                    resp.Write("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
                    resp.Write("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li>");
                    resp.Write("<li><a href='/html'>Data in a HTML page with graphs</a></li></ul>");
                    resp.Write("<li>Wait for an Event</li><ul>");
                    resp.Write("<li><a href='/event/xml");
                    resp.Write(EventParameters);
                    resp.Write("'>Return XML data when event occurs.</a></li>");
                    resp.Write("<li><a href='/event/json");
                    resp.Write(EventParameters);
                    resp.Write("'>Return JSON data when event occurs.</a></li>");
                    resp.Write("<li><a href='/event/turtle");
                    resp.Write(EventParameters);
                    resp.Write("'>Return TURTLE data when event occurs.</a></li>");
                    resp.Write("<li><a href='/event/rdf");
                    resp.Write(EventParameters);
                    resp.Write("'>Return RDF data when event occurs.</a></li>");
                    resp.Write("</ul></body></html>");
                }
                else
                {
                    OutputLoginForm(resp, string.Empty);
                }
            } finally
            {
                networkLed.Low();
            }
        }
예제 #16
0
		private static void HttpGetCameraDevice (HttpServerResponse resp, HttpServerRequest req)
		{
			networkLed.High ();
			try
			{
				string Xml;
				byte[] Data;
				int c;

				using (Stream stream = Assembly.GetExecutingAssembly ().GetManifestResourceStream ("Camera.UPnP.CameraDevice.xml"))
				{
					c = (int)stream.Length;
					Data = new byte[c];
					stream.Position = 0;
					stream.Read (Data, 0, c);
					Xml = TextDecoder.DecodeString (Data, System.Text.Encoding.UTF8);
				}

				string HostName = System.Net.Dns.GetHostName ();
				System.Net.IPHostEntry HostEntry = System.Net.Dns.GetHostEntry (HostName);

				foreach (System.Net.IPAddress Address in HostEntry.AddressList)
				{
					if (Address.AddressFamily == req.ClientEndPoint.AddressFamily)
					{
						Xml = Xml.Replace ("{IP}", Address.ToString ());
						break;
					}
				}

				Xml = Xml.Replace ("{PORT}", upnpServer.Port.ToString ());
				Xml = Xml.Replace ("{UDN}", defaultSettings.UDN);

				resp.ContentType = "text/xml";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				resp.Write(Xml);

			} finally
			{
				networkLed.Low ();
			}
		}
예제 #17
0
		private static void HttpGetHtml (HttpServerResponse resp, HttpServerRequest req, bool Protected)
		{
			networkLed.High ();
			try
			{
				LinkSpriteJpegColorCamera.ImageSize Resolution;
				string Encoding;
				byte Compression;

				if (Protected)
				{
					string SessionId = req.Header.GetCookie ("SessionId");
					if (!CheckSession (SessionId))
						throw new HttpTemporaryRedirectException ("/");
				}

				GetImageProperties (req, out Encoding, out Compression, out Resolution);

				resp.ContentType = "text/html";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.Expires = DateTime.Now;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				resp.Write ("<html><head/><body><h1>Camera, ");
				resp.Write (DateTime.Now.ToString ());
				resp.Write ("</h1><img src='camera?Encoding=");
				resp.Write (Encoding);
				resp.Write ("&Compression=");
				resp.Write (Compression.ToString ());
				resp.Write ("&Resolution=");
				resp.Write (Resolution.ToString ().Substring (1));
				resp.Write ("' width='640' height='480'/>");
				resp.Write ("</body><html>");

			} finally
			{
				networkLed.Low ();
			}
		}
예제 #18
0
		private static void HttpGetSet (HttpServerResponse resp, HttpServerRequest req)
		{
			string s;
			int i;
			bool b;

			foreach (KeyValuePair<string,string> Query in req.Query)
			{
				if (!XmlUtilities.TryParseBoolean (Query.Value, out b))
					continue;

				s = Query.Key.ToLower ();
				if (s == "alarm")
				{
					if (b)
					{
						AlarmOn ();
						state.Alarm = true;
					} else
					{
						AlarmOff ();
						state.Alarm = false;
					}
				} else if (s.StartsWith ("do") && int.TryParse (s.Substring (2), out i) && i >= 1 && i <= 8)
				{
					digitalOutputs [i - 1].Value = b;
					state.SetDO (i, b);
				}
			}

			state.UpdateIfModified ();

			resp.ContentType = "text/html";
			resp.Encoding = System.Text.Encoding.UTF8;
			resp.ReturnCode = HttpStatusCode.Successful_OK;

			resp.Write ("<html><head><title>Actuator</title></head><body><h1>Control Actuator Outputs</h1>");
			resp.Write ("<form method='POST' action='/set' target='_self'><p>");

			for (i = 0; i < 8; i++)
			{
				resp.Write ("<input type='checkbox' name='do");
				resp.Write ((i + 1).ToString ());
				resp.Write ("'");
				if (digitalOutputs [i].Value)
					resp.Write (" checked='checked'");
				resp.Write ("/> Digital Output ");
				resp.Write ((i + 1).ToString ());
				resp.Write ("<br/>");
			}

			resp.Write ("<input type='checkbox' name='alarm'");
			if (alarmThread != null)
				resp.Write (" checked='checked'");
			resp.Write ("/> Alarm</p>");
			resp.Write ("<p><input type='submit' value='Set'/></p></form></body></html>");
		}
예제 #19
0
		private static void HttpGetRoot (HttpServerResponse resp, HttpServerRequest req)
		{
			networkLed.High ();
			try
			{
				resp.ContentType = "text/html";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				resp.Write ("<html><head><title>Sensor</title></head><body><h1>Welcome to Sensor</h1><p>Below, choose what you want to do.</p><ul>");
				resp.Write ("<li>View Data</li><ul>");
				resp.Write ("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
				resp.Write ("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
				resp.Write ("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
				resp.Write ("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li>");
				resp.Write ("<li><a href='/html'>Data in a HTML page with graphs</a></li></ul>");
				resp.Write ("</body></html>");
			} finally
			{
				networkLed.Low ();
			}
		}
예제 #20
0
        internal void Write(HttpServerResponse httpResponse)
        {
            httpResponse.WriteHead(_statusCode, _headers);

            if (_content != null) {
                httpResponse.Write(_content, Encoding.UTF8);
            }

            httpResponse.End();
        }
        private static void HttpGetSet(HttpServerResponse resp, HttpServerRequest req)
        {
            string s;
            int    i;
            bool   b;

            foreach (KeyValuePair <string, string> Query in req.Query)
            {
                if (!XmlUtilities.TryParseBoolean(Query.Value, out b))
                {
                    continue;
                }

                s = Query.Key.ToLower();
                if (s == "alarm")
                {
                    if (b)
                    {
                        AlarmOn();
                        state.Alarm = true;
                    }
                    else
                    {
                        AlarmOff();
                        state.Alarm = false;
                    }
                }
                else if (s.StartsWith("do") && int.TryParse(s.Substring(2), out i) && i >= 1 && i <= 8)
                {
                    digitalOutputs [i - 1].Value = b;
                    state.SetDO(i, b);
                }
            }

            state.UpdateIfModified();

            resp.ContentType = "text/html";
            resp.Encoding    = System.Text.Encoding.UTF8;
            resp.ReturnCode  = HttpStatusCode.Successful_OK;

            resp.Write("<html><head><title>Actuator</title></head><body><h1>Control Actuator Outputs</h1>");
            resp.Write("<form method='POST' action='/set' target='_self'><p>");

            for (i = 0; i < 8; i++)
            {
                resp.Write("<input type='checkbox' name='do");
                resp.Write((i + 1).ToString());
                resp.Write("'");
                if (digitalOutputs [i].Value)
                {
                    resp.Write(" checked='checked'");
                }
                resp.Write("/> Digital Output ");
                resp.Write((i + 1).ToString());
                resp.Write("<br/>");
            }

            resp.Write("<input type='checkbox' name='alarm'");
            if (alarmThread != null)
            {
                resp.Write(" checked='checked'");
            }
            resp.Write("/> Alarm</p>");
            resp.Write("<p><input type='submit' value='Set'/></p></form></body></html>");
        }
예제 #22
0
		private static void HttpGetRoot (HttpServerResponse resp, HttpServerRequest req)
		{
			networkLed.High ();
			try
			{
				string SessionId = req.Header.GetCookie ("SessionId");

				resp.ContentType = "text/html";
				resp.Encoding = System.Text.Encoding.UTF8;
				resp.ReturnCode = HttpStatusCode.Successful_OK;

				if (CheckSession (SessionId))
				{
					StringBuilder sb = new StringBuilder ();
					string EventParameters;

					lock (synchObject)
					{
						sb.Append ("?Temperature=");
						sb.Append (XmlUtilities.DoubleToString (temperatureC, 1));
						sb.Append ("&amp;TemperatureDiff=1&amp;Light=");
						sb.Append (XmlUtilities.DoubleToString (lightPercent, 1));
						sb.Append ("&amp;LightDiff=10&amp;Motion=");
						sb.Append (motionDetected ? "1" : "0");
						sb.Append ("&amp;Timeout=25");
					}

					EventParameters = sb.ToString ();

					resp.Write ("<html><head><title>Sensor</title></head><body><h1>Welcome to Sensor</h1><p>Below, choose what you want to do.</p><ul>");
					resp.Write ("<li><a href='/credentials'>Update login credentials.</a></li>");
					resp.Write ("<li>View Data</li><ul>");
					resp.Write ("<li><a href='/xml?Momentary=1'>View data as XML using REST</a></li>");
					resp.Write ("<li><a href='/json?Momentary=1'>View data as JSON using REST</a></li>");
					resp.Write ("<li><a href='/turtle?Momentary=1'>View data as TURTLE using REST</a></li>");
					resp.Write ("<li><a href='/rdf?Momentary=1'>View data as RDF using REST</a></li>");
					resp.Write ("<li><a href='/html'>Data in a HTML page with graphs</a></li></ul>");
					resp.Write ("<li>Wait for an Event</li><ul>");
					resp.Write ("<li><a href='/event/xml");
					resp.Write (EventParameters);
					resp.Write ("'>Return XML data when event occurs.</a></li>");
					resp.Write ("<li><a href='/event/json");
					resp.Write (EventParameters);
					resp.Write ("'>Return JSON data when event occurs.</a></li>");
					resp.Write ("<li><a href='/event/turtle");
					resp.Write (EventParameters);
					resp.Write ("'>Return TURTLE data when event occurs.</a></li>");
					resp.Write ("<li><a href='/event/rdf");
					resp.Write (EventParameters);
					resp.Write ("'>Return RDF data when event occurs.</a></li>");
					resp.Write ("</ul></body></html>");

				} else
					OutputLoginForm (resp, string.Empty);
			} finally
			{
				networkLed.Low ();
			}
		}