реклама на сайте
подробности

 
 
> SIM900 Ожидание +FTPGET:1,0 ответ +FTPGET:1,64 TimeOut
bugish
сообщение Apr 18 2013, 13:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 7-06-12
Из: Севастополь, Россия
Пользователь №: 72 202



Возникла необходимость переезжать на другой FTP сервер, решили протестировать и тут все пошло не так как планировали:
После приема данных с FTP сервера жду ответ +FTPGET:1,0 методично отсреливая AT+FTPGET=2,1024 раз в 3 сек
(взято из примера в комплекте SIM900DevIDE),а +FTPGET:1,0 не приходит в течении 30 секунд и модуль рапортует +FTPGET:1,64 - timeout, следовательно программа расценивает это сообщение как неудачный прием данных.

Теоретически ответ +FTPGET:2,0 OK приходит после приема всего файла, но не является окончанием сессии, надо ждать +FTPGET:1,0 окончание приема данных.

От старого FTP сервера +FTPGET:1,0 ответ приходил через 16 секунд, это вызывало некое непонимание, но не сильно напрягало
(так было на версиях 1137B04SIM900M64_ST_EAT, 1137B01SIM900M64_ST_DTMF_JD_EAT, 1137B02V01SIM900M64_ST_DTMF_JD_EAT).
При подключении к обоим серверам FTP клиентом с ПК, после передачи чеко видно 226 File sent ok.

Стал перечитывать доки по поводу AT+FTPGET:
(FTP HTTP AT Commands User Guide AN_SIM900_FTP_HTTP_APP_V1.00)
If data transfer finished: +FTPGET:1,0 (FTP HTTP AT Commands User Guide AN_SIM900_FTP_HTTP_APP_V1.00)

AT+FTPGET=2,1024
+FTPGET:2,0 OK
Request to read 1024 bytes again. 0 bytes are now available, but it is not the end of session

(SIM900 AT Commands Manual_V1.06)
If data transfer finished: +FTPGET:1,0 (SIM900 AT Commands Manual_V1.06)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bugish
сообщение Apr 19 2013, 05:05
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 7-06-12
Из: Севастополь, Россия
Пользователь №: 72 202



У меня тоже с моего тестового без проблем (простой комп со статическим IP в интернете и прикрученным FTP сервером под винду), сервер на который пытаюсь переехать точно на линухе.

Может тогда для уверенного приема сначала выполнить AT+FTPSIZE, затем контролировать количество принятых байтов после получения +FTPGET:2,0 OK проверить размер и игнорировать +FTPGET:1,64.

Просто делать конец приема по +FTPGET:2,0 OK нельзя, так как я наблюдал следующую ситуацию, сначала приходило пару ответов +FTPGET:2,0 OK, а только после этого начинал передаваться файл AT+FTPGET:2,<reqlength>, а затем 5 раз +FTPGET:2,0 OK .

Сообщение отредактировал bugish - Apr 19 2013, 05:06
Go to the top of the page
 
+Quote Post
vassabi
сообщение Jun 2 2013, 11:27
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 18-02-13
Из: Киев
Пользователь №: 75 678



Цитата(bugish)
....AT+FTPSIZE, затем контролировать количество принятых байтов после получения +FTPGET:2,0 OK проверить размер и игнорировать +FTPGET:1,64.

Тоже сейчас над таким вариантом думаю, но +FTPGET:1,64 игнорировать нельзя, т.к. сессия в этом случае прервана.
У меня вообще ответ на AT+FTPGET=2,1024 может двадцать раз прийти +FTPGET=2,0, затем какие-то цифры типа +FTPGET=2,484, опять +FTPGET=2,0 и так пока не придет +FTPGET=1,0...
Ждать от модуля на каждую посылку +FTPGET=1,1 неоправдано долго...

Сообщение отредактировал vassabi - Jun 3 2013, 08:46
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016