我已经使用树莓和sim5320E模块构建了一个原型。目标是使用此3G模块通过HTTP发送大量数据(〜100Kb)。
我已遵循SIM5320的AT命令集第16.5(HTTPS)节中指定的说明: https://cdn-shop.adafruit.com/datasheets/SIMCOM_SIM5320_ATC_EN_V2.02.pdf
它运行正常,但速度较慢。
根据我对文档的了解(以及从测试中看到的),必须将要发送的数据分成最大4096字节的块。
必须使用命令AT + CHTTPSSEND将每个块发送到所谓的“发送缓冲区”。
我们不时要使用AT + CHTTPSSEND检查发送缓冲区的缓存中是否有太多数据吗?命令。
最后一个AT + CHTTPSSEND命令将提交所有正在发送的数据。
我的问题是,每个AT + CHTTPSSEND大约需要10秒才能完成,这意味着我的HTTP请求将需要大约250秒才能完成。
有人知道什么可能导致这种缓慢吗?
以下是一些说明问题的代码:
def send_chunk(self, chunk):
# Send chunk
self._send('CHTTPSSEND={}'.format(len(chunk)), wait_for=">")
self._send_raw(chunk.encode())
# Check how much data is left in the sending buffer
# Wait for this data to be under 3Kb
data_left = 3001
while data_left > 3000:
response = self._send('CHTTPSSEND?', wait_for="+CHTTPSSEND:")
data_left = int(response.strip().split(" ")[1])
time.sleep(2)
这是我得到的日志:
>> AT+CHTTPSSEND=4096 -> This commands takes ~10 seconds
<< >
>> Sending chunk of data
<< OK
>> AT+CHTTPSSEND?
<< +CHTTPSSEND: 0