MT8070iH+модем ОВЕН ПМ01
Добавлено:
08 июн 2016, 16:27
distren
Здравствуйте!
С панели MT8070iH необходимо отправлять СМС-ки аварий на телефон.Я подключаю модем напрямую к панели, с помощью free Protokol, пересылаю используя OUTPORT.
По инструкции модема для работы необходимо послать команду: AT+CMGS=<”номер”>. Затыка в кавычках.
Подскажите пожалуйста как из панели можно послать символ "кавычки двойные".
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
08 июн 2016, 17:03
den_po
Собирать строку в массиве из нескольких частей. Код символа "кавычки" - 34 (0x22)
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
08 июн 2016, 19:22
HWAK
distren писал(а):Здравствуйте!
С панели MT8070iH необходимо отправлять СМС-ки аварий на телефон.Я подключаю модем напрямую к панели, с помощью free Protokol, пересылаю используя OUTPORT.
По инструкции модема для работы необходимо послать команду: AT+CMGS=<”номер”>. Затыка в кавычках.
Подскажите пожалуйста как из панели можно послать символ "кавычки двойные".
Если не затруднит, можете поделиться рабочим макросом для работы с ПМ01?
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 10:46
den_po
Нереально иметь коллекцию примеров для всего существующего оборудования.
Формирование строки как-то так
- Код: Выделить всё
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 длина строки
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 15:05
distren
Спасибо большое den_po.
HWAK.Обязательно выложу как только заработает макрос
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 16:23
HWAK
Я попробовал по этому примеру сделать макрос, но команду, для ввода номера телефона, AT+CMGS="81234567890" прибор из макроса не воспринимает, но если эту команду ввести через Hyperterminal и пробовать остальную часть макроса с текстом и подтверждением ввода текста, то 1 смс выдает.
. Вот кусочек макроса для окончания.
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
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 16:33
den_po
Команды обычно завершаются символом с кодом 13 вроде
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 17:24
distren
Дав инструкции написано: После наименования команды должен следовать символ перевода строки – 0Dh(13).Хотя перевод строки вроде 10.После ввода номера надо дождаться ответа модема в виде символа ">"
Через гиппертерминал все хорошо.))) А вот с панелькой пока не выходит.
Читаю inport - ом выдает error
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 17:44
distren
Ура! пришел ">" макрос:
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)
Re: MT8070iH+модем ОВЕН ПМ01
Добавлено:
09 июн 2016, 17:55
den_po
distren писал(а):StringCopy(CmdNumbText[0], CommandNumber[0])
Если команда в процессе работы не меняется, проще без объявления лишних переменных
StringCopy("AT+CMGS=", CommandNumber[0])