Регистрация Правила Главная форума Поиск |
0
- 28.05.2012 - 09:40
|
Разрабатываем возможность рассылки СМС через GSM модем более менее приемлемое решение нашли через внешнюю библиотеку: RS=Новый COMОБъект("MSCOMMLib.MSComm"); RS.Settings = "115200,n,8,1"; RS.CommPort=5; RS.Handshaking = 1; RS.RThreshold = 1; RS.SThreshold = 1; RS.InputLen = 0; RS.RTSEnable = 1; RS.InputMode = 0 ; Если RS.PortOpen тогда RS.PortOpen=false; КонецЕсли; RS.PortOpen=True; RS.Output="ATZ"+Символ(13); Буфер=""; Пока ((Найти(СокрЛП(Буфер),"OK")=0) И (Найти(СокрЛП(Буфер),"ERROR")=0)) Цикл Буфер=Буфер+СокрЛП(RS.Input); КонецЦикла; Сообщить(Буфер); RS.Output="AT+CMGF=0"+Символ(13); Буфер=""; Пока ((Найти(СокрЛП(Буфер),"OK")=0) И (Найти(СокрЛП(Буфер),"ERROR")=0)) Цикл Буфер=Буфер+СокрЛП(RS.Input); КонецЦикла; Сообщить(Буфер); RS.Output="AT+CMGS=26"+Символ(13); Буфер=""; Пока ((Найти(СокрЛП(Буфер),"OK")=0) И (Найти(СокрЛП(Буфер),"ERROR")=0))Цикл Буфер=Буфер+СокрЛП(RS.Input); КонецЦикла; Сообщить(Буфер); RS.Output="0011000B919740186559F60008170C041F04400 438043204350442"+Символ(26); Тестовые СМС ки отправляются, но получается обработка привязана к данному системному блоку - на другом системнике ее запускаешь - уже неизвестно, какой там COM порт, надо узнавать и править... а может 1С как как то опрашивать COM порты на предмет занятости? | |
1
- 28.05.2012 - 09:43
|
Еще нашли способ работать через запись/считывание: модемЧ = Новый ЗаписьТекста("\\.\Com5",КодировкаТекста.ANSI); Строк="ATIMEI"+Символ(13); модемЧ.ЗаписатьСтроку(Строк); Сообщить("Отправлена строка - "+ТекущаяДата()); модемЧ.Закрыть(); МодемЧ= Новый ЧтениеТекста(); МодемЧ.Открыть("\\.\Com5",КодировкаТекста.ANSI); сч=0; Буфер=""; Сообщить("Начало ожидания ответа - "+ТекущаяДата()); Пока ((Найти(СокрЛП(Буфер),"OK")=0) И (Найти(СокрЛП(Буфер),"ERROR")=0)) Цикл Состояние(сч); Буфер=Буфер+СокрЛП(МодемЧ.ПрочитатьСтроку()); Сообщить("Время цикла - "+ТекущаяДата()); сч=сч+1; КонецЦикла; Сообщить(сч); Сообщить(Буфер); Сообщить("Получен Ответ - "+ТекущаяДата()); Здесь всё хорошо ничего внешнего не используется, но обнаружились странные задержки по времени: Отправлена строка - 25.05.2012 11:37:36 Начало ожидания ответа - 25.05.2012 11:37:36 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:38:42 Время цикла - 25.05.2012 11:39:15 ATIMEIManufacturer: TCT Mobile International LimitedModel: HSPA Data CardRevision: WX111000XXIMEI: 355249042491906+GCAP: +CGSM,+FCLASS,+DSManufacturer: TCT Mobile International LimitedModel: HSPA Data CardRevision: WX111000XXIMEI: 355249042491906+GCAP: +CGSM,+FCLASS,+DSOK Получен Ответ - 25.05.2012 11:39:15 Т.е. ожидание ответа почти две минуты, Может кто знает Из-за чего может быть такой долгий срок ответа ? | |
2
- 28.05.2012 - 09:57
| Предлагаю вынести номер порта в константу, чтобы не править код. | |
3
- 28.05.2012 - 11:05
| 2-Ткачик > В атрибуты вызова метода... | |
4
- 28.05.2012 - 12:12
| 2-Ткачик > В принципе - да, это самый очевидный выход и так и сделаем если другого не найдем, просто не хотелось бы человеческий фактор совсем задействовать.3-VZ > А в атрибуты он откуда попадать будет ? | |
5
- 28.05.2012 - 12:13
| (3) Я старый клюшечник и не знаю слов "атрибуты вызова метода"... | |
![]() | Интернет-форум Краснодарского края и Краснодара |