Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FTP ит SIM900
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
Lexi
Всем доброго времени суток!
Пытаюсь поднять соединение по GPRS и вытащить файл по FTP

Вот листнг простой проги
Код
for(ttt=0;ttt<5; ttt++)
   {
   printf("AT\r");
   delay_ms(500);
   }

printf("ATE0\r");
delay_ms(500);
  
printf("AT+CREG?\r");
delay_ms(500);  

printf("AT+SAPBR=3,1,\"APN\",\"internet.life.com.by\"\r");
delay_ms(500);

printf("AT+SAPBR=1,1\r");
delay_ms(5000);

printf("AT+SAPBR=2,1\r");
delay_ms(500);

printf("AT+FTPCID=1\r");
delay_ms(500);

printf("AT+FTPSERV=\"srv7.host-food.ru\"\r");
delay_ms(500);

printf("AT+FTPUN=\"тут ник\"\r");
delay_ms(500);

printf("AT+FTPPW=\"тут пароль\"\r");
delay_ms(500);

printf("AT+FTPPUTNAME=\"123.txt\"\r");
delay_ms(500);

printf("AT+FTPPUTPATH=\"/\"\r");
delay_ms(500);

printf("AT+FTPPUT=1\r");
delay_ms(10000);


В ответ получаю +FTPPUT:1,62
Ошибка DNS, на каком этапе и чей DNS указывать???

С уважением, Lexi
CADiLO
Здесь смотрели примеры ?

SIM900_IP_Application Note_V1.02.pdf
Lexi
Сейчас посмотрю и опробую. Спасибо

Сразу не догнал... Да в этом докумете смотрел.
Может чего и пропустил.
Вот спрашиваю, чтобы встать на путь истинный.
CADiLO
>>> и вытащить файл по FTP

Так вытащить с сервера или положить на сервер ?

PUT - это на сервер
GET - вытащить с сервера

Lexi
Задача вытащить файл из сервера
CADiLO
Тогда вы не то используете.

FTP GET Method.

Download data from FTP server


то есть вытаскиваем с сервера на модуль
Lexi
Спасибо, сча в течении часа попробую. Результат отпишу.

Ну вот код
Код
printf("AT+SAPBR=3,1,\"APN\",\"internet.life.com.by\"\r");
delay_ms(500);

printf("AT+SAPBR=1,1\r");
delay_ms(5000);

printf("AT+SAPBR=2,1\r");
delay_ms(500);

printf("AT+FTPCID=1\r");
delay_ms(500);

printf("AT+FTPSERV=\"srv7.host-food.ru\"\r");
delay_ms(500);

printf("AT+FTPUN=\"пользователь\"\r");
delay_ms(500);

printf("AT+FTPPW=\"пароль\"\r");
delay_ms(500);

printf("AT+FTPPUTNAME=\"123.txt\"\r");
delay_ms(500);

printf("AT+FTPPUTPATH=\" / \"\r");
delay_ms(500);

printf("AT+FTPGET=1\r");
delay_ms(10000);


везде все нормально, но на последний запрос ответ +FTPGET:1,66
CADiLO
66 Operation not allow - Данная операция не поддерживается сервером

srv7.host-food.ru - это разве FTP????
введите его в эксплорере - куда попадаем ? правильно - на HTTPS

так что правильно - HTTP сервер не поддерживает FTP операции


FTP.
Параметры ftp соединения
AT+FTPSERV=«ftp.site.ru» — адрес ftp сервера
AT+FTPUN=«login» — логин
AT+FTPPW=«password» — пароль
AT+FTPPUTPATH="/" — путь
AT+FTPPUTNAME=«test.txt» — имя файла
AT+FTPMODE=1 — режим работы ftp

•1, — пассивный. Стоит по умолчанию
•0, — активный.
AT+FTPTYPE=«A» — тип передаваемых данных.

•A, — только ASCII символы.
•I, — двоичный режим.
AT+FTPPUTOPT=«APPE» — режим открытия файла.

•«APPE» — добавить в конец файла
•«STOR» — создать файл. Если файл существует, то он будет перезаписан.
•«STOU» — создать уникальный файл. Если файл существует, то будет создан файл с заданным именем и дополненный в имени цифрами.
AT+FTPPUT=1 — открытие ftp соединения
+FTPPUT:1,1,1260 — сессия на запись открыта. Максимальная длина записи 1260 байт.
AT+FTPPUT=2,10 — запись 10 символов.
+FTPPUT:2,10 — после появления приглашения нужно ввести 10 символов. Эха не будет.
AT+FTPPUT:2,0 — закрытие ftp соединения.

Для чтения все практически аналогично, только PUT меняется на GET. Так AT+FTPPUTPATH становится AT+FTPGETPATH.
AT+FTPGET=1 — открытие ftp соединения.
+FTPGET:1,1 — данные для чтения доступны.
AT+FTPGET=2,10 — чтение 10 байт данных. Если данных меньше, то вернется сколько есть.
+FTPGET:2,10 — сколько данных будет для считывания.
Повторное чтение, если указатель стоит на конце файла вернет +FTPGET:2,0.
AT+FTPGET:2,0 — закрытие ftp соединения.


взято здесь: http://we.easyelectronics.ru/part/gsm-gprs...st-vtoraya.html
Lexi
Странно ,но...
таким макаром вполне понимает тотал командер... Я вписал туда все свои параметры для авторизации и работет...
Может порт надо как-то указать???
Вот из параметров сервера
* FTP, POP3, SMTP, IMAP:
srv7.host-food.ru

Я пытался сделать по аноупу, покуда не получается

Почитав документацию изменил PUT на GET
и получил

Код
printf("AT+FTPCID=1\r");
delay_ms(500);

printf("AT+FTPSERV=\"ftp.h22164.srv7.test-hf.ru\"\r");
delay_ms(500);

printf("AT+FTPUN=\"login\"\r");
delay_ms(500);

printf("AT+FTPPW=\"pass\"\r");
delay_ms(500);

printf("AT+FTPGETNAME=\"123.txt\"\r");
delay_ms(500);

printf("AT+FTPGETPATH=\"/\"\r");
delay_ms(500);

printf("AT+FTPGET=1\r");
delay_ms(10000);


В результате опвет как изначально, просит DNS, но чей?? +FTPGET:1,62
И куда его указать???

CADiLO
Давайте попробуем обойтись для начала без DNS

введите IP вместо имени

IP адрес: 91.227.16.17
Имя сайта: ftp.h22164.srv7.test-hf.ru
Lexi
сделал, ошибка 63, тобишь ошибка подключения
CADiLO
Давайте попробуем с простого

вот IP

ftp://192.150.16.26/

это ftp://ftp.adobe.com/

логин и пароль не нужны

попробуйте утянуть оттуда ftp://192.150.16.26/license.txt
- размер 2 килобайта (2809байт)

когда получится переходите к более сложным серверам с логином и паролем, потом к DNS


причем желательно вначале весь процесс пройти ручками в терминале, чтобы нормально видеть ответы
Lexi
Код
AT

OK
AT

OK
AT

OK
AT

OK
AT

OK
ATE1

OK
AT+CREG?

+CREG: 0,1

OK
AT+SAPBR=3,1,"APN","internet.life.com.by"

OK
AT+SAPBR=1,1

ERROR
AT+SAPBR=2,1

+SAPBR: 1,1,"46.191.103.223"

OK
AT+FTPCID=1

OK
AT+FTPSERV="192.150.16.26"

OK
AT+FTPUN=""

ERROR
AT+FTPPW=""

ERROR
AT+FTPGETNAME="license.txt"

OK
AT+FTPGETPATH="/"

OK
AT+FTPMODE=1

OK
AT+FTPGET=1

OK

+FTPGET:1,63
Lexi
Вот еще интересный случай
даю полный отчет от модуля
Цитата
AT

OK
AT

OK
AT

OK
AT

OK
AT

OK
ATE1

OK
AT+CREG?

+CREG: 0,1

OK
AT+CSQ

+CSQ: 16,3

OK
AT+CUSD=1,"*100#"

OK

+CUSD: 0,"USSD sessia zavershena",64
AT+SAPBR=2,1

+SAPBR: 1,1,"46.191.98.252"

OK
AT+CIPPING="ftp.adobe.com"

+CIPPING: 1,"193.104.215.67",600,255
+CIPPING: 2,"193.104.215.67",600,255
+CIPPING: 3,"193.104.215.67",600,255
+CIPPING: 4,"193.104.215.67",600,255

OK
AT+FTPCID=1

OK
AT+FTPSERV="192.150.16.26"

OK
AT+FTPGETNAME="license.txt"

OK
AT+FTPGETPATH="/"

OK
AT+FTPGET=1

OK

+FTPGET:1,64


Почему при пинге одного и тогоже simcom дает совешенно иной адрес?
Цитата
AT+CIPPING="ftp.adobe.com"

+CIPPING: 1,"193.104.215.67",600,255
+CIPPING: 2,"193.104.215.67",600,255
+CIPPING: 3,"193.104.215.67",600,255
+CIPPING: 4,"193.104.215.67",600,255

OK


От компа
Цитата
C:\Documents and Settings\User>ping ftp.adobe.com

Обмен пакетами с ftpgen.wip4.adobe.com [192.150.16.26] по 32 байт:

Ответ от 192.150.16.26: число байт=32 время=170мс TTL=241
Ответ от 192.150.16.26: число байт=32 время=170мс TTL=241
Ответ от 192.150.16.26: число байт=32 время=170мс TTL=241
Ответ от 192.150.16.26: число байт=32 время=173мс TTL=241

Статистика Ping для 192.150.16.26:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 170мсек, Максимальное = 173 мсек, Среднее = 170 мсек


Есть ли вероятность, что в вышеуказанной прошиве FTP просто не работает??
К какой прошиве указан аноуп SIM900_IP_Application Note_V1.02.pdf ???

Итак... продолжаем )))
Решил пощупать по TCP сервачек
Цитата
AT

OK
AT

OK
AT

OK
AT

OK
AT

OK
ATE1

OK
AT+CREG?

+CREG: 0,1

OK
AT+CSQ

+CSQ: 16,0

OK
AT+CUSD=1,"*100#"

OK

+CUSD: 4
AT+CGATT?

+CGATT: 1

OK
AT+CIFSR

46.191.103.182
AT+CIPSTART="TCP", "192.150.16.26", 21

OK

CONNECT OK
220-ftp.adobe.com
220-Adobe Systems, Inc.
220-
220-By downloading software of Adobe Systems Incorporated or its
220-subsidiaries from this site, you agree to the terms and
220-conditions described in ftp://ftp.adobe.com/license.txt
220-
220-Web browser users: Click on Web_User_Click_Here.html
220-
220-FTP client users: To connect, use "anonymous" as the login,
220-and use your e-mail address as the password. For example,
220-login: anonymous
220-password: ftpuser@adobe.com
220-
220-
220

Отсюда вывод
Цитата
логин и пароль не нужны

Всетаки нужны


Один четр, ошибка 64
Цитата
AT+CGATT?

+CGATT: 1

OK
AT+SAPBR=3,1,"Contype","GPRS"

OK
AT+SAPBR=3,1,"APN","internet.life.com.by"

OK
AT+SAPBR=1,1

ERROR
AT+FTPCID=1

OK
AT+FTPPORT=21

OK
AT+FTPMODE=1

OK
AT+FTPTYPE="A"

OK
AT+FTPCID=1

OK
AT+FTPSERV="192.150.16.26"

OK
AT+FTPUN="anonymous"

OK
AT+FTPPW="ftpuser@adobe.com"

OK
AT+FTPGETNAME="license.txt"

OK
AT+FTPGETPATH="/"

OK
AT+FTPGET=1

OK

+FTPGET:1,64
CADiLO
Лично перепроверил - ищем ошибку у себя.


RDY

+CFUN: 1

+CPIN: READY

Call Ready
at+gsv
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B08SIM900M64_ST_DTMF_JD_MMS

OK
at+cgatt?
+CGATT: 1

OK
at+sapbr=3,1,"Contype","GPRS"
OK
at+sapbr=3,1,"APN","www.ab.kyivstar.net"
OK
at+sapbr=1,1
OK
at+ftpcid=1
OK
at+ftpserv="simcom.exavault.com" // Ftp сервер симкома - проверял на нем потому что 100% уверен что не висит и L:P правильные
OK
at+ftpun="мой логин"
OK
at+ftppw="мой пароль"
OK
at+ftpgetname="2010.TXT"
OK
at+ftpgetpath="/"
OK
at+ftpget=1
OK

+FTPGET:1,1

at+ftpget=2,1024

+FTPGET:2,50
123456789123456789012345678912345678901`2345678911
OK

Все работает как написано. Кстати адобовский и меня по таймауту (ошибка 64) отбросил.
Еще может быть нюанс во входе на FTP - активный или пассивный режим. Для симкомовского у меня "passive mode" в FAR выставлено.
Тогда еще с FTPMODE нужно поиграться.

Вобщем я просто посмотрел настройки с которыми работаю, ввел по апнотесу и все сработало.
nillll
Добрый день. Я решил потестить sim900D 07 версия прошивка. Попробовал организовать ftp соединение. Все ок до того момента как отправляю AT+FTPGET=1.

Пишет +FTPGET:1,61

не могли бы вы подсказать в чем дело. Может на sim900 это канает?
CADiLO
По вопросу 1,61 уже отвечали китайцы

Вопрос был таким:

Device checks the update of file on FPT server periodically. For that the file is opened and read the headline.
Depending on headline, device downloads or not this file. IF not the session is closed.
After closed the session with out downloading the file FW 1137B08SIM900M64_ST response OK
After download the file response - +FTPGET:1,0 and for AT+SAPBR=0,1 – no mistakes. The session closed automatically.
The same operation but for FW 1137B08SIM900M64_ST_DTMF_JD_MMS or FW 1137B09SIM900M64_ST always getting - +FTPGET:1,61
Is it mistake in firmware or it is mistake with operations?

AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","www.umc.ua"
OK
AT+SAPBR=3,1,"USER",""
OK
AT+SAPBR=3,1,"PWD",""
OK
AT+SAPBR=1,1
OK
AT+FTPCID=1
OK
AT+FTPREST=0
OK
AT+FTPMODE=0
OK
AT+FTPUN="sirius"
OK
AT+FTPPW="*********"
OK
AT+FTPSERV="xx.xx.xx.xx"
OK
AT+FTPPORT=2122
OK
AT+FTPGETPATH="N3718/"
OK
AT+FTPGETNAME="ftp_m3718_v0.32.bin.02.bin"
OK
AT+FTPGET=1

+FTPGET:1,1

AT+FTPGET=2,64

+FTPGET:2,0
OK
AT+FTPGET=2,64

+FTPGET:2,64
„¶ў[¦]Iк«юЄЁЄ+љ®ЄeЭ+g‰сСВ%§ІыаGяЫf_O.ЗЂ,ё"тЁ л2јц/°шB™`/qy°$•В
OK
AT+SAPBR=0,1
+FTPGET:1,61


It is normal and correct that it always get URC: +FTPGET: 1,61 after AT+SAPBR=0,1.
AT+SAPBR=0,1 means to close the bearer.


И обновитесь до 1137B09SIM900D64_ST_DTMF_JD_MMS, (или до европейской 1137B10SIM900D64_ST)
были дополнения и исправления по работе с FTP.
nillll
Спасибо CADiLO

Я тестирую sim900D на версии 1137B07SIM900D64_ST.
В итоге все также делаю, но как дохожу до момента передачи

AT+FTPGET=1

выдает сразу +FTPGET: 1,61. До этого все команды были с ответами ОК.

Действительно лучше прошить модуль sim900D под 1137B09SIM900D64_ST_DTMF_JD_MMS, (или до европейской 1137B10SIM900D64_ST)? Или на этой версии, которой я использую у кого то работает?

Я просто в этом деле новичек sm.gif


CADiLO
Это на разных FTP серверах всегда эта ошибка или только с одним пробовали?

Попробуйте еще переключить активный или пассивный режим, тип передаваемых данных,
иногда порт может быть не стандартный 21й, а другой.....
Нужно точно знать как реализован FTP сервер и чего ему нужно.
Проще всего попробовать на нескольких публичных серверах.

Если не получится, выкладывайте Лог файл, посмотрим......
nillll
Вот быстренько кинул код, что отправляю :

....

SerialPutString("at+cgatt?\r\n");
Delay(20000000);
SerialPutString("AT+SAPBR=3,1,\"Contype\",\"GPRS\"\r\n");
Delay(20000000);
SerialPutString("AT+SAPBR=3,1,\"APN\",\"internet.beeline.ru\"\r\n");
Delay(20000000);
SerialPutString("AT+SAPBR=3,1,\"USER\",\"beeline\"\r\n");
Delay(20000000);
SerialPutString("AT+SAPBR=3,1,\"PWD\",\"beeline\"\r\n");
Delay(20000000);
SerialPutString("AT+SAPBR=1,1\r\n");
Delay(20000000);
SerialPutString("AT+FTPCID=1\r\n");
Delay(20000000);
SerialPutString("AT+FTPREST=0\r\n");
Delay(20000000);
SerialPutString("AT+FTPMODE=0\r\n");
Delay(20000000);
SerialPutString("AT+FTPMODE?\r\n");
Delay(20000000);
SerialPutString("AT+FTPUN=\"******\"\r\n");
Delay(20000000);
SerialPutString("AT+FTPPW=\"******\"\r\n");
Delay(20000000);
SerialPutString("AT+FTPSERV=\"ftp.fedorov-v.ru\"\r\n");
Delay(20000000);
SerialPutString("AT+FTPPORT=2122\r\n");
Delay(20000000);
SerialPutString("AT+FTPGETPATH=\"/\"\r\n");
Delay(20000000);
SerialPutString("AT+FTPGETPATH?\r\n");
Delay(20000000);
SerialPutString("AT+FTPGETNAME=\"2012.txt\"\r\n");
Delay(20000000);
SerialPutString("AT+FTPGETNAME?\r\n");
Delay(20000000);
SerialPutString("AT+FTPGET=1\r\n");
Delay(20000000);


после этой команды выдает
+FTPGET:1,61

+SAPBR 1: DEACT

Установил порт на 21

SerialPutString("AT+FTPPORT=21\r\n");

Стал просить теперь DNS

+FTPGET:1,62
CADiLO
вот теперь попробуйте вместо имени ftp.fedorov-v.ru, ввести его IP
зайдет или нет ?
nillll
Попробовал ввести Ip ftp'ника как вы и посоветовали.

Такая же ошибка. +FTPGET:1,61

Что посылаю (черновой вариант):

...

SerialPutString("at+cgatt?\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=3,1,\"Contype\",\"GPRS\"\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=3,1,\"APN\",\"internet.beeline.ru\"\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=3,1,\"USER\",\"beeline\"\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=3,1,\"PWD\",\"beeline\"\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=1,1\r\n");
Delay(5000000);
SerialPutString("AT+SAPBR=2,1\r\n");
Delay(10000000);
SerialPutString("AT+FTPCID=1\r\n");
Delay(5000000);
SerialPutString("AT+FTPREST=0\r\n");
Delay(10000000);
SerialPutString("AT+FTPMODE=1\r\n");
Delay(5000000);
SerialPutString("AT+FTPSERV=\"188.93.212.151\"\r\n");
Delay(5000000);
SerialPutString("AT+FTPUN=\"логин\"\r\n");
Delay(5000000);
SerialPutString("AT+FTPPW=\"пароль\"\r\n");
Delay(5000000);
SerialPutString("AT+FTPPORT=21\r\n");
Delay(5000000);
SerialPutString("AT+FTPGETPATH=\"/\"\r\n");
Delay(5000000);
SerialPutString("AT+FTPGETNAME=\"2012.txt\"\r\n");
Delay(10000000);
SerialPutString("AT+FTPGETNAME?\r\n");
Delay(10000000);
SerialPutString("AT+FTPGET=1\r\n");
Delay(10000000);
SerialPutString("AT+FTPGET=2,10\r\n");
Delay(20000000);

Ответ:

...

+CGATT: 1
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
+FTPGETNAME: "2012.txt"
OK
OK
ERROR
+FTPGET:1,61
+SAPBR 1: DEACT
NORMAL POWER DOWN
CADiLO
ERROR от кого???

Можно в формате как я выше приводил? - запрос+ответ

зачем лишние запросы типа AT+FTPGETNAME?

модуль сам отключился???? - NORMAL POWER DOWN ?????
nillll
...

AT+FTPGETNAME="2012.txt"

OK

AT+FTPGET=1

OK

AT+FTPGET=2,10

ERROR

+FTPGET:1,61

Вот так примерно.
CADiLO
не вижу чтобы вы дождались +FTPGET:1,1

после
AT+FTPGET=1

OK


На предыдущей страничке работающий пример - дождались +FTPGET:1,1 и только потом AT+FTPGET=2,ххххххх



nillll
Долго ждать его? У вас через какое время примерно он появляется?
CADiLO
от сервера зависит - но ответ должен быть обязательно - или подтверждение выполнения или с ошибкой
у меня было от 2-3 секунд до минуты....
быстро здесь не получится

вручную терминалом пройдите все операции дожидаясь ответов и URC.
nillll
Спасибо CADiLO.

Решил все таки поменять ftp сервак и получилось все таки прочитать 2012.txt из его подкаталога.

...
AT+FTPGET=1

OK

+FTPGET:1,1

AT+FTPGET=2,1024

+FTPGET:2,57
12345 12344532492348923 skdfhsjdfhs 2342 ыврпыовап !,,Юб.
OK

+FTPGET:1,61

+SAPBR 1: DEACT

Теперь хотелось бы научиться на сервер записывать что нибудь sm.gif Сижу пока разбираюсь.
CADiLO
Я так и не смог зайти на FTP сервер Adobe. Cразу не вышло, да и времени особо не было.

По хорошему надо смотреть каким-нибуть клиентом лог соединения (я во FlashGet смотрел процесс ) и тогда большинство опций становится понятным.
nillll
Пробую открыть соединение на запись

выдает вот это:

AT+FTPPUT=1
OK

+FTPPUT:1,77

Что за operate error? sm.gif
nillll
Здраствуйте. Ломаю голову над этим:

AT+FTPPUT=1
OK

+FTPPUT:1,77

Никак не могу открыть ftp соединение на запись. Чтение удается, а запись никак. Подскажите может есть временные ftp серваки. Хотелось бы протестировать sim900 на запись. Может подскажете на каком вы серваке тестировали? Если кто работал с sim900.
nillll
Идея вот вчем. Хочу удалить файл. Но на команду FTPDELE отвечает модуль ERROR. Кто нибудь сталкивался с этой проблемой?

Вот код:

IIIIюююю
RDY

+CFUN: 1

+CPIN: READY

Call Ready
AT

OK
at+ipr=115200

OK
at+cpin?

+CPIN: READY

OK
at+crc=1

OK
at+cops=0,0

OK
at+crsl=90

OK
at+clvl=40

OK
at+cops?

+COPS: 0,0,"Beeline"

OK
at+gmr

Revision:1137B10SIM900D64_ST

OK
at+cgatt?

+CGATT: 1

OK
AT+SAPBR=3,1,"Contype","GPRS"

OK
AT+SAPBR=3,1,"APN","internet.beeline.ru"

OK
AT+SAPBR=3,1,"USER","beeline"

OK
AT+SAPBR=3,1,"PWD","beeline"

OK
AT+SAPBR=1,1

OK
AT+FTPCID=1

OK
AT+FTPSERV="xxxxx.ru"

OK
AT+FTPUN="xxxxx"

OK
AT+FTPPW="xxxxx"

OK
AT+FTPPORT=21

OK
AT+FTPGETNAME="1.txt"

OK
AT+FTPGETPATH="/"

OK
AT+FTPDELE=1

ERROR
CADiLO
AT+FTPDELE=1

а =1 зачем????

просто AT+FTPDELE
Толян
Цитата(nillll @ May 29 2012, 11:29) *
Здраствуйте. Ломаю голову над этим:

AT+FTPPUT=1
OK

+FTPPUT:1,77
...

Аналогичная проблема на SIM900D Revision:1137B08SIM900D64_ST_DTMF_JD_MMS
отправляю файл на FTP двумя методами:
1) данный вариант работает без проблем
AT+FTPMODE=0
AT+FTPTYPE="A"
AT+FTPPUTOPT="STOR"

2) а этот не работает (не могу выполнить запись в конец файла)
AT+FTPMODE=0
AT+FTPTYPE="A"
AT+FTPPUTOPT="APPE"

Лог обмена:
...

AT+FTPPUTNAME="123.txt"
OK

AT+FTPPUTPATH="/"
OK

AT+FTPPUTOPT="APPE"
OK

AT+FTPTYPE="A"
OK

AT+FTPPUT=1
+FTPPUT:1,77 <-- что за ответ такой? ткните носом где почитать...

AT+FTPPUT=2,5
ERROR

12345
ERROR

...

Может кто сталкивался с этим? Подскажите плиз куда копать. Хотелось бы не перезаписывать существующий файл, а добавлять в него данные, но что-то не выходит sad.gif
CADiLO
SIM900_AT Command Manual_V1.05.pdf

1,77 - ошибка выполняемой операции - коды ошибок в описании команды FTPGET.

Просмотрите еще раз синтаксис, воможно требуется указать длину.
И проверьте позволяет ли сам сервер операцию "арpend".....
Толян
Цитата(CADiLO @ Jun 11 2012, 09:13) *
...И проверьте позволяет ли сам сервер операцию "арpend"...

Спасибо за подсказку. Проблема действительно оказалась в том, что FTP сервер на www.holm.ru не поддерживает операцию "арpend"

Ответ со стороны сервера:
Error 451 123.txt: Append/Restart not permitted, try again
CADiLO
Тут нужно точно знать что сервер умеет, а что нет. Так например большинству FTP под виндами пофигу большие или маленькие буквы в именах. А Юниксоподобные системы к этому чуствительны. Так и с набором команд - например сервер может не уметь пассивный или активный режим, добавление, докачку или закачку частями и даже может быть банальным - ридонли. А мы думаем что модуль не жужжит и мучимся. Я сам на подобное нарывался и долго не мог понять почему не работает. Потом оказывалось что на другом сервере работает, а тот который мучил просто не умеет.
Павел_Б
Здравствуйте Уажаемые форумчане.
Тоже решил побаловаться gprs. И поставил простую задачу. Хочу загрузить в МК через SIM900 html страничку.
То есть грубо говоря есть в сети страничка например 123123123123123.narod.ru
В теле странички есть текст "123".
Как мне скачать страничку через модуль с помощью МК?
Я так понял что в помощь нам дана дока SIM900_IP_Application Note_V1.02.pdf
Мы её открываем на пункте 2.1 HTTP Get metod.
То что у меня получается. В HEX кодировке то что я передаю, в ASCII то что принимаю.
Код
Call Ready

> 41 54 48 0D 0D
AT
OK

> 41 54 2B 48 54 54 50 49 4E 49 54 0D 0D
AT+HTTPINIT
OK

> 41 54 2B 48 54 54 50 50 41 52 41 3D 22 43 49 44 22 2C 31 0D
AT+HTTPPARA="CID",1
OK

> 41 54 2B 48 54 54 50 50 41 52 41 3D 22 55 52 4C 22 2C 22 77 77 77 2E 79 61 2E 72 75 22 0D
AT+HTTPPARA="URL","www.ya.ru"
OK

> 41 54 2B 48 54 54 50 41 43 54 49 4F 4E 3D 30 0D
AT+HTTPACTION=0
OK

+HTTPACTION:0,601,0

> 41 54 2B 48 54 54 50 52 45 41 44 0D
AT+HTTPREAD
OK

> 41 54 2B 48 54 54 50 52 45 41 44 0D
AT+HTTPREAD
OK

А данные (html код) не вылазят из uart sad.gif
Где я напутал? Подскажите пожалуйста.
Толян
Цитата(Павел_Б @ Jun 13 2012, 19:47) *
...
+HTTPACTION:0,601,0
...

sim900_at command manual_v1.05.pdf стр. 209
601 Network Error <-- ваш случай

Предоставленный вами лог либо не полный, либо вы забыли подключиться к Internet wink.gif
Если используете оператора MTS UKR, то вот вам пример рабочего лога:
...
AT+SAPBR=3,1,"Contype","GPRS"
OK

AT+SAPBR=3,1,"APN","www.umc.ua"
OK

AT+SAPBR=3,1,"USER",""
OK

AT+SAPBR=3,1,"PWD",""
OK

AT+SAPBR=1,1
OK

AT+SAPBR=2,1
+SAPBR: 1,1,"121.171.14.32"
OK

AT+HTTPINIT
OK

AT+HTTPPARA="CID",1
OK

AT+HTTPPARA="URL","babla.bolshe.net"
OK

AT+HTTPACTION=0
OK
+HTTPACTION:0,
200,776

AT+HTTPREAD
+HTTPREAD:776..<!-- ><!-- "><!-- '><!-- ;><!-- -->.</textarea></form></title></comment></a></div></span></ilay и т.д.
Павел_Б
Цитата(Толян @ Jun 21 2012, 01:48) *

Спасибо! Заработало sm.gif
nilllllllllll
Всем привет.

Вопрос такой: Можно ли открывать сразу несколько файлов на чтение или на запись одновременно в ftp у sim900? Реализованно ли это? А то что то у меня не хочет sm.gif
CADiLO
Только в один поток.
nillll
Цитата(CADiLO @ Jul 4 2012, 10:25) *
Только в один поток.


Т.е я так понял нельзя. Т.е открыл сессию прочитал к примеру или записал сколько надо файл, закрыл сессию. Потом другой файл также открывать
nilllllllllll
добрый день всем.

Вопрос такой: можно ли каким либо способом узнать список имен файлов в таком то каталоге на ftp сервере с помощью sim900???? Вопрос горит sad.gif Помогите кто нибудь с ответом.
rd-npoit
Здравствуйте. Проблема со взятием файла с фтп, а именно: +FTPGET:1,61. Мой листинг:

RDY

+CFUN: 1

+CPIN: READY

+CREG: 0

+CREG: 2

Call Ready

+CREG: 1
at+sapbr=3,1,"contype","gprs"

OK
at+sapbr=3,1,"apn","internet.beeline.ru"

OK
at+sapbr=3,1,"user","beeline"

OK
at+sapbr=3,1,"pwd","beeline"

OK
at+sapbr=1,1

OK
at+sapbr=2,1

+SAPBR: 1,1,"198.19.180.137"

OK
at+sapbr=4,1

+SAPBR:
CONTYPE: GPRS
APN: internet.beeline.ru
PHONENUM:
USER: beeline
PWD: beeline
RATE: 2

OK
at+ftpserv="rd-npoit.ftp.narod.ru"

OK
at+ftpun="мой логин"

OK

at+ftpgetpath="/"
OK

at+ftpgetname="test.txt"
OK

at+ftpget=1
OK

+FTPGET:1,61


Уже и номер порта проверял, тип передаваемых данных менял, режимы работы фтп тоже менял. Но ничего не помогает. Проверил есть ли связь с инетом: сделал пример с http от пользователя Толяна - код страницы скачался. Короче я в тупике. Нуждаюсь в помощи. Заранее благодарю!
rd-npoit
Здравствуйте. Проблема со взятием файла с фтп, а именно: +FTPGET:1,61. Мой листинг:

RDY

+CFUN: 1

+CPIN: READY

+CREG: 0

+CREG: 2

Call Ready

+CREG: 1
at+sapbr=3,1,"contype","gprs"

OK
at+sapbr=3,1,"apn","internet.beeline.ru"

OK
at+sapbr=3,1,"user","beeline"

OK
at+sapbr=3,1,"pwd","beeline"

OK
at+sapbr=1,1

OK
at+sapbr=2,1

+SAPBR: 1,1,"198.19.180.137"

OK
at+sapbr=4,1

+SAPBR:
CONTYPE: GPRS
APN: internet.beeline.ru
PHONENUM:
USER: beeline
PWD: beeline
RATE: 2

OK
at+ftpserv="rd-npoit.ftp.narod.ru"

OK
at+ftpun="мой логин"

OK

at+ftpgetpath="/"
OK

at+ftpgetname="test.txt"
OK

at+ftpget=1
OK

+FTPGET:1,61


Уже и номер порта проверял, тип передаваемых данных менял, режимы работы фтп тоже менял. Но ничего не помогает. Проверил есть ли связь с инетом: сделал пример с http от пользователя Толяна - код страницы скачался. Короче я в тупике. Нуждаюсь в помощи. Заранее благодарю!
SergOv
Цитата(rd-npoit @ Feb 27 2013, 12:53) *
Уже и номер порта проверял, тип передаваемых данных менял, режимы работы фтп тоже менял. Но ничего не помогает. Проверил есть ли связь с инетом: сделал пример с http от пользователя Толяна - код страницы скачался. Короче я в тупике. Нуждаюсь в помощи. Заранее благодарю!

А, собственно, где в листинге установка соединения ?
rd-npoit
SergOv,
установка связи с gprs:

at+sapbr=1,1
OK

установка ftp соединения:

at+ftpget=1
OK

Или Вы имеете ввиду что-то дополнительное?
SergOv
Цитата(rd-npoit @ Feb 27 2013, 13:59) *
SergOv,
установка связи с gprs:

at+sapbr=1,1
OK

установка ftp соединения:

at+ftpget=1
OK

Или Вы имеете ввиду что-то дополнительное?

А CGATT = 1 не надо ??
rd-npoit
По умолчанию в 1 стоит CGATT. Но я все равно at+cgatt=1 прописал. Проблема не исчезла.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.