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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Обмен данными между GSM-модулями
ДЕЙЛ
сообщение Mar 16 2015, 19:32
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



CODE
//перезапуск
AT+CFUN=1,1
yyyy

//проверка регистрации в сети
Send: AT+CREG?<cr><lf>
AT+CREG?

+CREG: 1,1

OK

//проверка GPRS
Send: AT+CGATT?<cr><lf>
AT+CGATT?

+CGATT: 1

OK

//закрытие всех соединений
Send: AT+CIPSHUT<cr><lf>
AT+CIPSHUT

SHUT OK

//проверка инициализации модуля IP
Send: AT+CIPSTATUS<cr><lf>
AT+CIPSTATUS

OK

STATE: IP INITIAL

//устанавливаем только одно соединение
Send: AT+CIPMUX=0<cr><lf>
AT+CIPMUX=0

OK

//настройки GPRS
Send: AT+CSTT="internet.mts.ru","mts","mts"<cr><lf>
AT+CSTT="internet.mts.ru","mts","mts"

OK

//соединяемся с заданными настройками
Send: AT+CIICR<cr><lf>
AT+CIICR

OK

//смотрим свой IP
Send: AT+CIFSR<cr><lf>
AT+CIFSR

10.49.180.250

//включаем TCP-соединение
Send: AT+CIPSTART="TCP","yandex.ru",80<cr><lf>
AT+CIPSTART="TCP","yandex.ru",80

OK

CONNECT OK

//после этой команды должно появиться приглашение для записи отправляемых данных
Send: AT+CIPSEND<cr><lf>
AT+CIPSEND


и в этом месте всё виснет, никаких признаков жизни
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 17 2015, 10:07
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



А как вы получаете лог? Может оно буферизует символы (до символа конца строки)?
Go to the top of the page
 
+Quote Post
megajohn
сообщение Mar 17 2015, 10:14
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(ДЕЙЛ @ Mar 16 2015, 22:32) *
и в этом месте всё виснет, никаких признаков жизни



а ножка RTS в каком состоянии ? Включено ли управление Flow Control ?


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
ДЕЙЛ
сообщение Mar 17 2015, 12:18
Сообщение #34


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



Цитата(megajohn @ Mar 17 2015, 14:14) *
а ножка RTS в каком состоянии ? Включено ли управление Flow Control ?

Я использую только TX-RX, остальные ножки не трогаю. Это принципиально для работы с TCP/IP?

Цитата(XVR @ Mar 17 2015, 14:07) *
А как вы получаете лог? Может оно буферизует символы (до символа конца строки)?

скопировал как текст из окна программы
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 18 2015, 13:01
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(ДЕЙЛ @ Mar 17 2015, 15:18) *
скопировал как текст из окна программы
Тогда показывайте текст программы (ту часть, что читает данные с модуля)

Go to the top of the page
 
+Quote Post
ДЕЙЛ
сообщение Mar 24 2015, 13:57
Сообщение #36


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



Цитата(XVR @ Mar 18 2015, 17:01) *
Тогда показывайте текст программы (ту часть, что читает данные с модуля)

Вкратце вот так:
Код
procedure TForm1.RxTimerTimer(Sender: TObject);
var
     Errors : Dword;
LenReceive : DWord;
          i : integer;
RxData, Log, NumStr : string;

begin
RxData := '';
ClearCommError(hCom, Errors ,@Stat);//?????????? ????
LenReceive := Stat.cbInQue;
If LenReceive>0 Then
   Begin  {1}
     ReadFile(hCom,RXBUF,LenReceive,LenReceive,nil);
     For i:=0 to LenReceive-1 Do
       Begin
         if (RXBUF[i]<>$A) and (RXBUF[i]<>$D) then
           begin
            RxData := RxData + Chr(RXBUF[i]);
           end
         else
           begin
               ListBox1.Items.Strings[ListBox1.ItemIndex] :='       '+RxData;
               RxData := '';
               ListBox1.TopIndex := ListBox1.Items.Count - 1;
           end;

       End;
   End; {1}

end;

Данные он отправляет без приглашения, смски тоже. В прикреплённом файле только что дописанная программа для работы с SIM900. В инете не нашёл, поэтому сам сочинил. До этого ковырялся в программе от другова модуля.

Сообщение отредактировал ДЕЙЛ - Mar 24 2015, 22:01
Прикрепленные файлы
Прикрепленный файл  SIM900_DIALOG.rar ( 210.68 килобайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 25 2015, 14:45
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Ну вот же -
Код
         if (RXBUF[i]<>$A) and (RXBUF[i]<>$D) then
По тексту программы видно, что пока она не примет символ конца строки или перевода каретки (CR или LF) она ничего никуда не выводит, а тихо и молча накапливает принятые символы в RxData

А модуль после приглашения '>' никаких CR/LF не добавляет (в отличие от остальных команд)
Go to the top of the page
 
+Quote Post
ДЕЙЛ
сообщение Mar 30 2015, 21:47
Сообщение #38


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



Цитата(XVR @ Mar 25 2015, 18:45) *
Ну вот же -
Код
         if (RXBUF[i]<>$A) and (RXBUF[i]<>$D) then
По тексту программы видно, что пока она не примет символ конца строки или перевода каретки (CR или LF) она ничего никуда не выводит, а тихо и молча накапливает принятые символы в RxData

А модуль после приглашения '>' никаких CR/LF не добавляет (в отличие от остальных команд)

Есть такое дело, неподумавши накодил rolleyes.gif
Подправил свою программу ещё в некоторых местах и добавил функцию сниффера(для него ещё нужно железо).
Прикрепленные файлы
Прикрепленный файл  SIM900_DIALOG.rar ( 215.01 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post
ДЕЙЛ
сообщение Apr 20 2015, 09:34
Сообщение #39


Местный
***

Группа: Участник
Сообщений: 234
Регистрация: 7-11-13
Пользователь №: 79 085



http://alex-exe.ru/programm/terminal-sim900-dialog/ здесь последняя версия терминала и статья на эту тему
Go to the top of the page
 
+Quote Post
k155la3
сообщение Apr 26 2015, 07:55
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Альтернативный и более оптимальный вариант увязки двух точек по GSM - GPRS.
Но тут без договора с провайдером не обойтись (если достаточно передача даных в рамках одной сети-провайдера).
Получаем 2 стат. IP в интрасети провайдера. И нет необходимости работать с DNS, лезть во внешнюю сеть.
Не надо проходить стадию "установить соединение".
IP-пакет влетел в терминал на одной стороне, и вылетел на другой.
Для такой связи оптимально и по простоте и по быстродействию использовать не TCP а UDP - можешь сам реализовать протокол обмена.
Платежные терминалы кажется так работают. ( креснтое знамение 3 перстами - блокировка "кажется" )

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:33
Рейтинг@Mail.ru


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