.netMF (netduino plus 2) を実行するマイクロコントローラーを使用して、Web サーバーを使用して家の中のデバイスを制御しています。以下のコードは、インターネット経由でマイクロコントローラーに接続するデバイスに単純な html ページを書き込みます。
while (true)
{
Socket clientSocket = listenerSocket.Accept();
bool dataReady = clientSocket.Poll(5000000, SelectMode.SelectRead);
if (dataReady && clientSocket.Available > 0)
{
byte[] buffer = new byte[clientSocket.Available];
int bytesRead = clientSocket.Receive(buffer);
string request =
new string(System.Text.Encoding.UTF8.GetChars(buffer));
if (request.IndexOf("ON") >= 0)
{
outD7.Write(true);
}
else if (request.IndexOf("OFF") >= 0)
{
outD7.Write(false);
}
string statusText = "Light is " + (outD7.Read() ? "ON" : "OFF") + ".";
string response = WebPage.startHTML(statusText, ip);
clientSocket.Send(System.Text.Encoding.UTF8.GetBytes(response));
}
clientSocket.Close();
}
public static string startHTML(string ledStatus, string ip)
{
string code = "<html><head><title>Netduino Home Automation</title></head><body> <div class=\"status\"><p>" + ledStatus + " </p></div> <div class=\"switch\"><p><a href=\"http://" + ip + "/ON\">On</a></p><p><a href=\"http://" + ip + "/OFF\">Off</a></p></div></body></html>";
return code;
}
これはうまく機能するので、単純な html の代わりに使用する完全な jquery モバイル Web サイトを作成しました。この Web サイトはデバイスの SD カードに保存されており、以下のコードを使用して、上記の単純な html の代わりに完全な Web サイトを書き込む必要があります。
ただし、私の問題は、netduino が単一の HTML ページのみをブラウザーに書き込み、HTML で参照される JS/CSS スタイル ファイルがまったくないことです。完全な Web サイトとして、ブラウザーがこれらのファイルをすべて読み取るようにするにはどうすればよいですか?
SDからWebサイトを読み取るために私が書いたコードは次のとおりです。
private static string getWebsite()
{
try
{
using (StreamReader reader = new StreamReader(@"\SD\index.html"))
{
text = reader.ReadToEnd();
}
}
catch (Exception e)
{
throw new Exception("Failed to read " + e.Message);
}
return text;
}
string code = " etcビットを次のように置き換えました
string code = getWebsite();