Maxhjk
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Модем Cinterion BGS2T RS232 Есть следующие проблемы. Буду благодарен, если ответите хотя бы на часть вопросов по их решению. Вместо русских символов при чтении файлов через http или ftp выдает знаки вопроса (?). Протокол https не открывается - пишет: AT^SISO=0 +CME ERROR: missing input value AT^SISR=0,1500 +CME ERROR: operation not allowed Не воспринимает имя пользователя и пароль при использовании ftp или ftpput в соответствии с руководством по AT-командам модема и выдает ошибку: AT^SISS=0,address,"ftp://user:password@ftp.sitename.ru/directory/filename.txt/;type=a" +CME ERROR: invalid input value ftp-cайты, где не надо вводить имя пользователя и пароль, открываются. Но через ftp не читает бинарные файлы и выдает пустые строчки. Не работают ни type=i, ни type=a. Не воспринимает знак “_” (например, в имени каталога при ftp-соединении) и выдает ошибку: ^SIS: 0, 0, 105, "550 Failed to change directory.\0D\0A" AT^SISR=0,200 +CME ERROR: operation failed Примеры кода на C# с AT-командами: http-соединение: SerialPort port = OpenPort(port_name, baud_rate); Thread.Sleep(1000); port.WriteLine("AT+CGDCONT=1,\"IP\",\"internet.beeline.ru\"\r"); //Не уверен, что обязательно Thread.Sleep(1000); port.WriteLine("AT+CMEE=2\r"); //Расширенный режим сообщений об ошибках Thread.Sleep(1000); port.WriteLine("AT^SCFG=\"Tcp/WithURCs\",\"on\"\r"); Thread.Sleep(1000); port.WriteLine("AT^SICS=0,\"inactTO\", \"0\"\r"); //Создается профиль соединения № 0 (Inactivity timeout) Thread.Sleep(1000); port.WriteLine("AT^SICS=0,\"conType\", \"GPRS0\"\r"); Thread.Sleep(1000); port.WriteLine("AT^SICS=0,\"user\", \"beeline\"\r"); Thread.Sleep(1000); port.WriteLine("AT^SICS=0,\"passwd\", \"beeline\"\r"); Thread.Sleep(1000); port.WriteLine("AT^SISS=0,srvType,\"Http\"\r"); //Создается сервис-профиль Thread.Sleep(1000); port.WriteLine("AT^SISS=0,conId,0\r"); //Используется профиль соединения № 0 Thread.Sleep(1000); port.WriteLine("AT^SISS=0,hcMethod,0\r"); //0=GET Thread.Sleep(1000); port.WriteLine("AT^SISS=0,address,http://www.site.ru/"); Thread.Sleep(1000); port.WriteLine("AT^SISO=0\r"); //Открытие соединения Thread.Sleep(1000); for (int i = 0; i < 10; i++) { port.WriteLine("AT^SISR=0,1500\r"); Thread.Sleep(1000); } port.WriteLine("AT^SICI?\r"); //Информация о соединении Thread.Sleep(1000); port.WriteLine("AT^SISE=0\r"); //Информация об ошибках Thread.Sleep(1000); port.WriteLine("AT^SISC=0\r"); //Закрытие соединения Thread.Sleep(1000); String sms = port.ReadExisting(); //Читаем ответы на AT-команды с модема Thread.Sleep(1000); MessageBox.Show(sms); Thread.Sleep(1000); port.Close(); Для ftp-соединения создается следующий сервис профиль, остальное то же самое. port.WriteLine("AT^SISS=0,srvType,\"ftp\"\r"); Thread.Sleep(1000); port.WriteLine("AT^SISS=0,conId,0\r"); Thread.Sleep(1000); //Читаем файл в режиме ASCII port.WriteLine("AT^SISS=0,address,\"ftp://ftp.site.ru/directory/filename.txt;type=a\"\r"); Thread.Sleep(1000); |