Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900. Проблема с переключением режима передачи ftp
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Radmir
Добрый день. Работаем с модулем sim900 (прошивка версии 1137B11SIM900M64_ST). Стоит задача в получении размера файла, находящегося на ftp-сервере. Выполняем следующие команды:

Код
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","internet***"
AT+SAPBR=3,1,"USER","***"
AT+SAPBR=3,1,"PWD","***"

AT+SAPBR=1,1

AT+FTPSERV="ftp.***.ru"
AT+FTPUN="***"
AT+FTPPW="***"

AT+FTPGETPATH="/"
AT+FTPGETNAME="test.txt"

AT+FTPSIZE


В ответ получаем "+FTPSIZE:1,77,0"

С запросом содержимого файла проблем не возникает.

Для выяснения причин на ftp-сервере было включено логирование ftp-команд.
После чего выяснилось, что ftp-сервер на запрос SIZE в режиме передачи ASCII отвечает ошибкой 550(SIZE not allowed in ASCII mode).
Следуя рекомендациям ftp-сервера, перед выполнением команды "AT+FTPSIZE" была добавлена строка "AT+FTPTYPE="I":

Код
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","internet***"
AT+SAPBR=3,1,"USER","***"
AT+SAPBR=3,1,"PWD","***"

AT+SAPBR=1,1

AT+FTPSERV="ftp.***.ru"
AT+FTPUN="***"
AT+FTPPW="***"

AT+FTPGETPATH="/"
AT+FTPGETNAME="test.txt"

AT+FTPTYPE="I"

AT+FTPSIZE


В результате получаем ту же самую ошибку. После просмотра логов было обнаружено, что после выполнения команды смены режима передачи данных (AT+FTPTYPE="I") ftp-сервер не переходит в режим binary(в логах ftp-сервера нет команды TYPE I). Т.е. sim900 не меняет режим передачи.
Далее на ftp-сервере по умолчанию был задан двоичный режим передачи данных, после чего команда AT+FTPSIZE стала возвращать корректный результат. Были протестированы 2 ftp-сервера (vsftpd, proftpd) - результат одинаковый.

Вопрос заключается в следующем: есть ли это недоработка программного обеспечения модуля или что-то было упущено?
Если это недоработка ПО, есть ли варианты решения данной проблемы (например, с помощью Embedded AT, java)?
CADiLO
Попробуйте AT+FTPTYPE давать сразу после AT+FTPSERV.
Radmir
Попробовал, то же самое.
CADiLO
А если серверу сказать сменить тип например из плагина к FAR, TC, или какого другого клиента.
Ну или телнетом зайти. Чтобы увидеть что он ответит на команду смены бинари/текстовый.
Radmir
Клиенты (Filezilla, Totalcmd) успешно меняют тип передачи данных. Проблема именно с модулем - он даже не отсылает серверу команду "TYPE I".
CADiLO
А какая версия прошивки ?

Перепроверил - у меня на 8 и 9 версии нормально на нашем сервере переключает режим.
Radmir
Цитата
Работаем с модулем sim900 (прошивка версии 1137B11SIM900M64_ST).
CADiLO
Извините - не заметил в начале сообщения.
По этой прошивке ничего не скажу. Мы модули с евроверсиями прошивок не поставляем.
Я проверял на нашей ветке - 1137B09SIM900M64_ST_DTMF_JD_MMS.
Radmir
До этого стояла прошивка B09 (заводская). Команды "AT+FTPSIZE" не было вообще. Насколько мне известно, эта команда появилась в прошивке B10.
CADiLO
Да. Но дело в том что начиная с 8 версии ветки разделились и появилась ветка сделаная по нашей просьбе - с декодером DTMF, Jamming детектором и прочим - чего нет в вашей версии. И FTP было уже начиная с этой 8 версии.

И осталась так называемая евроверсия - она как раз у Вас.

Наша ветка последняя версия 09 (нам просто включили в девятую все что было наработано плюс еще некоторые фичи которые не вошли в евроверсию ), евроветка - последняя версия 11.

Поэтому мы не отслеживаем то что к нам не поступает и не тестируем. В Вашем регионе дистрибьюторы МТ-Систем и Макрогрупп.
Напишите им, может они в курсе проблемы или помогут ее решить.
Radmir
Проблема решена. Инженеры SIMCom по нашему запросу внесли исправления в прошивку B11. Файл прикрепляю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.