MT8070iH+модем ОВЕН ПМ01

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

MT8070iH+модем ОВЕН ПМ01

Сообщение distren » 08 июн 2016, 16:27

Здравствуйте!
С панели MT8070iH необходимо отправлять СМС-ки аварий на телефон.Я подключаю модем напрямую к панели, с помощью free Protokol, пересылаю используя OUTPORT.
По инструкции модема для работы необходимо послать команду: AT+CMGS=<”номер”>. Затыка в кавычках.
Подскажите пожалуйста как из панели можно послать символ "кавычки двойные".
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение den_po » 08 июн 2016, 17:03

Собирать строку в массиве из нескольких частей. Код символа "кавычки" - 34 (0x22)
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение HWAK » 08 июн 2016, 19:22

distren писал(а):Здравствуйте!
С панели MT8070iH необходимо отправлять СМС-ки аварий на телефон.Я подключаю модем напрямую к панели, с помощью free Protokol, пересылаю используя OUTPORT.
По инструкции модема для работы необходимо послать команду: AT+CMGS=<”номер”>. Затыка в кавычках.
Подскажите пожалуйста как из панели можно послать символ "кавычки двойные".


Если не затруднит, можете поделиться рабочим макросом для работы с ПМ01?
HWAK
 
Сообщения: 42
Зарегистрирован: 20 июл 2015, 00:29

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение den_po » 09 июн 2016, 10:46

Нереально иметь коллекцию примеров для всего существующего оборудования.

Формирование строки как-то так
Код: Выделить всё
char dest[128]
char quote[2]={34,0}
char num[13]="+79001234567"

StringCopy("AT+CMGS=<", dest[0]) //первую чать копируем
StringCat(quote[0], dest[0]) //добавляем кавычку
StringCat(num[0], dest[0]) //добавляем номер
StringCat(quote[0], dest[0]) //добавляем кавычку
StringCat(">", dest[0])

int l
l=StringLength(dest[0]) //в переменной l длина строки
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение distren » 09 июн 2016, 15:05

Спасибо большое den_po.
HWAK.Обязательно выложу как только заработает макрос
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение HWAK » 09 июн 2016, 16:23

Я попробовал по этому примеру сделать макрос, но команду, для ввода номера телефона, AT+CMGS="81234567890" прибор из макроса не воспринимает, но если эту команду ввести через Hyperterminal и пробовать остальную часть макроса с текстом и подтверждением ввода текста, то 1 смс выдает. :D . Вот кусочек макроса для окончания.

char mess[14]="alarm"// ввод текста
char ctrl[2]={26,0}// подтверждение ввода Ctrl-Z

OUTPORT(mess[0], "Free Protocol", 14)// message
OUTPORT(ctrl[0], "Free Protocol", 2)// ctrl+Z
HWAK
 
Сообщения: 42
Зарегистрирован: 20 июл 2015, 00:29

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение den_po » 09 июн 2016, 16:33

Команды обычно завершаются символом с кодом 13 вроде
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение distren » 09 июн 2016, 17:24

Дав инструкции написано: После наименования команды должен следовать символ перевода строки – 0Dh(13).Хотя перевод строки вроде 10.После ввода номера надо дождаться ответа модема в виде символа ">"
Через гиппертерминал все хорошо.))) А вот с панелькой пока не выходит.
Читаю inport - ом выдает error
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение distren » 09 июн 2016, 17:44

Ура! пришел ">" макрос:

unsigned char str_0Dh[2]={13,0}
unsigned char CmdNumbText[8]="AT+CMGS=" // текст команды ввода смс
unsigned char quot[2]={34,0} // кавычки
unsigned char Cmd7[2]="+7" // текст +7
unsigned short kod // код оператора в панели
unsigned char str_KodOperator[4] // текст код оператора
unsigned int tel
unsigned char str_tel[7] // текст номер телефона
unsigned char CommandNumber[32] // команда ввода номера

// собираем строку ввода номера
GetData(Kod, "Local HMI", RW, 30, 1) // берем код опер.
DEC2ASCII(Kod, str_KodOperator[0], 3) // преобразуем в строку
GetData(tel, "Local HMI", RW, 31, 1) // берем номер телефона
DEC2ASCII(tel, str_tel[0], 7) // преобразуем в строку

StringCopy(CmdNumbText[0], CommandNumber[0])
StringCat(quot[0], CommandNumber[0])
StringCat(Cmd7[0], CommandNumber[0])
StringCat(str_KodOperator[0], CommandNumber[0])
StringCat(str_tel[0], CommandNumber[0])
StringCat(quot[0], CommandNumber[0])
StringCat(str_0Dh[0], CommandNumber[0])
int l2
l2=StringLength(CommandNumber[0])
SetData(l2, "Local HMI", LW, 13, 1)

SetData(CommandNumber[0], "Local HMI", LW, 200, 28)
OUTPORT(CommandNumber[0], "modem owen", 32)
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: MT8070iH+модем ОВЕН ПМ01

Сообщение den_po » 09 июн 2016, 17:55

distren писал(а):StringCopy(CmdNumbText[0], CommandNumber[0])

Если команда в процессе работы не меняется, проще без объявления лишних переменных
StringCopy("AT+CMGS=", CommandNumber[0])
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 2

cron