Цитата(ДЕЙЛ @ Sep 8 2015, 21:37)

Отправляю данные на сервер:
AT+CIPSEND=0,6
> байты запроса
0, SEND OK
+CIPRXGET:1,0
AT+CIPRXGET=2,0,1040
+CIPRXGET:2,0,1040,200 [1040 байтов ответа]
Как я понимаю, модуль принял 1240 байт, из них 1040 байт передал по UART, 200 байт оставил у себя в буфере. Как правильно вытащить эти байты наружу? В дукументации на эту тему негусто написано.
Нужно отдельно посылать команду AT+CIPRXGET=2,0,200 или можно не задумываясь опять отправлять AT+CIPRXGET=2,0,1040 из соображений, что модуль сначала буфер вытолкнет через последовательный порт, а потом новые данные с сервера? Пока нет возможности сравнить отправляемые данные с сервера с принятыми в SIM900.
В системе команд, по-моему, довольно ясно описано. Шлите AT+CIPRXGET=2,0,length, главное, чтобы length было меньше 1460. В ответ вы получите +CIPRXGET:2,0,200,0, если оставшиеся 200 байт были последние. А если не последние, то последний параметр будет не равен нулю. А раз не равен нулю, то опять подавайте AT+CIPRXGET=2,0,length. Если последний параметр в URC +CIPRXGET: равен нулю и нет URC +CIPRXGET:1,0, то считаем, что ничего с сервера больше нет.
Кстати, AT+CIPRXGET=4,<id> (мультисокет) и AT+CIPRXGET=4 (односокетовое соед-е), возвращает кол-во данных в буфере.