我想首先發送整個文本到認定其長度和使用AT + CIPSEND = 長度的函數讀取一些文本服務器的通數據來這裏稍後打開TCP端口。在我的響應數據中添加一些額外的信息之前,一切正常。 我懷疑的字符限制,但無法找到一個理由,即使調試幾個小時。Arduino的字符串連接Serial.println()不工作
Serial.println()不顯示任何輸出,因爲它似乎字符串連接是不健康的。問題是文本沒有被傳遞,因此CIPSEND不起作用。相應的代碼部分及其輸出如下所示。
void sendHTTPResponse(int connectionId, String content) {
Serial.println("SENDHTTPRESPONSE1: " + content);
// build HTTP response
String httpResponse;
String httpHeader;
// HTTP Header
httpHeader = "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n";
httpHeader += "Content-Length: ";
httpHeader += content.length();
httpHeader += "\r\n";
httpHeader += "Connection: close\r\n\r\n";
Serial.println("SENDHTTPRESPONSE2: " + httpHeader);
httpResponse = httpHeader + content + " "; // There is a bug in this code: the last character of "content" is not sent, I cheated by adding this extra space
Serial.println("HTTPRESPONSE3: " + httpResponse);
sendCIPData(connectionId, httpResponse);
}
和串行監視器輸出。 HTTPRESPONSE3似乎在某種程度上是空的?
SENDHTTPRESPONSE1: {"data":[{"id":"100"}]}{"data":[{"id":"100"}]}{"data":[{"id":"100"}]}{"data":[{"id":"100"}]}
SENDHTTPRESPONSE2: HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 92
Connection: close
DATA LENGTH:
======================================================
Executing command: AT+CIPSEND=0,0
HTTP/1.1
CoAT+CIPSEND=0,0
在此先感謝。
Arduino是不是C!而你的代碼並不適合這麼小的設備。將桌面編程技術應用於像Arduino這樣的裸機嵌入式設備是一個不錯的主意。 – Olaf
你有什麼建議?或者請鏈接一些參考。 – eden
這是沒有輔導網站。但是,你爲什麼不直接發送文本? – Olaf