未読メールの数を Arduino+Ethernet Shield でチェックしようとしていて、2 つの IMAP リクエストを送信しています。client.read(server_answer) で、char に格納します。Serial.print(server_answer) でシリアルに送信すると、次のようになります。
* OK IMAP server ready H migmx111 92345
0 OK LOGIN completed
* STATUS INBOX (UNSEEN 1)
0 OK STATUS completed
* STATUS INBOX (MESSAGES 1917)
0 OK STATUS completed
* BYE Server logging out
0 OK LOGOUT completed
ここで私の質問: 2 つの数字 (メールと未読メールの合計数、例では未読 1 件と合計 1917 件) を抽出するにはどうすればよいですか? それらを2つの異なる文字列で取得するにはどうすればよいですか? LCD に数字とテキスト (「[数] 件の新着メールがあります!」) を表示したいと考えています。
それが役立つ場合、ここに私のコードの興味深い部分があります:
void loop()
{
updateClient();
checkAvail();
}
void updateClient()
{
if ((millis() - updateTimer) > 10000)
{
Ethernet.begin(mac, ip);
// Serial.println("connecting...");
delay(1000);
if (client.connect())
{
//Serial.println("connected");
client.println("0 login myusername mypasswd");
client.println("0 STATUS INBOX (UNSEEN)");
client.println("0 STATUS INBOX (MESSAGES)");
client.println("0 logout");
clientConnected = true;
}
else
{
Serial.println("connection failed");
}
updateTimer = millis();
}
}
void checkAvail()
{
if (clientConnected)
{
if (client.available())
{
server_answer = client.read();
Serial.print(server_answer);
}
if (!client.connected())
{
Serial.println();
// Serial.println("disconnecting.");
client.stop();
clientConnected = false;
}
}
}