arduino消息服务器,在C(Arduino IDE)中将API链接消息解析为服务器(示例代码)
我正在使用Arduino IDE來(lái)編程我的微控制器,它有一個(gè)內(nèi)置的Wi-Fi芯片(ESP8266 NodeMCU),它連接到我的互聯(lián)網(wǎng)路由器,然后有一個(gè)特定的IP(就像192.168.1.5)。
所以我想通過(guò)添加到鏈接的消息發(fā)送命令(和數(shù)據(jù)),然后鏈接變?yōu)?#xff1a;192.168.1.5/?A=data1&B=data2。
當(dāng)從LAN中的設(shè)備啟動(dòng)上面的鏈接時(shí),我可以在String變量中獲取消息,這里我現(xiàn)在有一條包含"?A=data1&B=data2"的消息。
所以問(wèn)題是:如何在單獨(dú)的變量中獲取A和B內(nèi)容?
第二個(gè)更簡(jiǎn)單的問(wèn)題:如何將內(nèi)容轉(zhuǎn)換為布爾值,int或float變量?
答案
算法看起來(lái)像這樣。此示例僅打印令牌,但您應(yīng)該能夠修改它以處理鍵,值和異常情況。
#include
#include
#include
#define MESSAGE_TOKENS ("=&?")
int main()
{
char *msg = "?A=data1&B=data2";
char *msg_dup = strdup(msg);
char *tok = strtok(msg_dup, MESSAGE_TOKENS);
while (tok != NULL)
{
char delim = msg[tok - msg_dup - 1];
switch(delim)
{
case '?':
case '&':
printf("key=%s
", tok);
break;
case '=':
printf("val=%s
", tok);
break;
default:
break;
}
tok = strtok(NULL, MESSAGE_TOKENS);
}
free(msg_dup);
}
對(duì)于數(shù)據(jù)類型,您可以使用ctype.h頭文件(link)的方法。例如,您可以通過(guò)迭代字符串的所有字符并驗(yàn)證所有字符都是數(shù)字來(lái)驗(yàn)證字符串是否為數(shù)字(isnumber()方法)。
總結(jié)
以上是生活随笔為你收集整理的arduino消息服务器,在C(Arduino IDE)中将API链接消息解析为服务器(示例代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到井水干了是什么意思
- 下一篇: 梦到地里着火了什么寓意