루아 스크립트를 사용하여 ESP8266 NodeMCU를 프로그래밍합니다. 문자열을 처음부터 잘랐다가 더 이상 확장한다는 문제를 디버깅하는 중이었습니다. 나는 ESP8266에서 안드로이드 전화로 보낸다.ESP8266 문자열 최대 크기 247 바이트?
문제점을 다음과 같이 UART 인터페이스를 통해 esp를 테스트 할 때 더 많이 보았습니다. 문자열 컨테이너를 선언 할 때 최대 문자열 크기는 247 자입니다. 나는 247번째을 초과하면이 오류가 :
stdin:1: unexpected symbol near '='
문자열 분명히 너무 긴하지만 최대 효율을 위해 문자열 당 적어도 2048 바이트를 보내야합니다. 문자열 변수의 입력 제한을 확장 할 수 있습니까?
(HTTP Get 응답의 경우 2048 바이트 패킷 및 86 바이트 오버 헤드 구성) ESP8266의 TCP 송신 버퍼는 2920 바이트입니다.
str_resp0 = "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n";
str_resp1 = "Connection: close\r\n\r\n";
send_buf = "";
uart.on("data", "$",
function(data)
t = {send_buf,data}
send_buf = table.concat(t);
if data=="quit$" then
uart.on("data") -- quit the function
end
end, 0)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
--print(payload)
conn:send(str_resp0)
conn:send(str_resp1)
conn:send(send_buf)
send_buf = "";
end)
conn:on("sent",function(conn) conn:close()
end)
end)
당신이 말하는 루아 문자열은 무엇입니까? – greenapps
'처음에 끊어지고 더 확장됩니다.' 이해가 안되네. 예를 들어주십시오. – greenapps
전송 ---> 버퍼 = "버닝 버킷 위로 점프하다"---> 버퍼 = "버닝 버킷 위로 점프하다". 그래서 문자열의 시작 부분이 사라집니다. – ionman