Стартовая страница › Форумы › Разработка и интеграция › DrvSmsBu 6.3.0 — Доп.каналы
- В этой теме 18 ответов, 4 участника, последнее обновление 1 месяц назад сделано manjey73.
-
АвторСообщения
-
03.11.2024 в 19:09 #35431manjey73Участник
Добавлены каналы входящего сообщения и номера
Длина данный = 20 (до 160 символов)
Номер в виде double значения. Учитывайте при работе со скриптамиСамое интересное, почему Михаил это не добавил изначально в 6-й версии и не сделал это красивее ?
- Эта тема была изменена 1 месяц назад от manjey73.
03.11.2024 в 19:21 #35433manjey73УчастникСразу вопрос Михаилу.
Почему это ошибка
DataTypeID = TagDataType.ASCII
а это работаетDataTypeID = 2
в group.CnlPrototypes.Add
И второй вопрос. Как сделать, чтобы Sms можно было отправлять и на русском. Создать еще один канал с параметрами Unicode?
Как в данном случае проверять message.Text на Ascci или Unicode правильно?
з.ы. Вообще может вы сами окультурите и внедрите это просто в базовый драйвер?
Так будет правильнее, я так думаю. А то как-то добавил там всего строчек 20 кода, и то, больше для добавления каналов.- Этот ответ был изменен 1 месяц назад от manjey73.
03.11.2024 в 20:11 #35445manjey73УчастникДа, Модем Huawei E1550 Отправка и прием СМС — ОК!
04.11.2024 в 10:29 #35446sergyltdУчастникСпасибо!
Буду пробовать. Полезная штука.04.11.2024 в 10:59 #35451MikhailМодераторНапишите DataTypeID = (int)TagDataType.ASCII
Как сделать, чтобы Sms можно было отправлять и на русском. Создать еще один канал с параметрами Unicode? Как в данном случае проверять message.Text на Ascci или Unicode правильно?
При отправке СМС на русском по-другому кодируется PDU. Детали нужно смотреть в документации. Как проверить текст сообщения — желательно автоматически распознать на основе тех символов, которые в него входят. В C# переменная типа string хранит данные в Unicode в любом случае.
Вообще может вы сами окультурите и внедрите это просто в базовый драйвер?
В ближайшее время другие задачи. Вы можете наследовать классы Logic и View от базового драйвера, чтобы не копипастить код. Так сделано в DrvEnronModbus.
04.11.2024 в 11:10 #35452JurasskParkУчастникА почему Bu?)
04.11.2024 в 11:35 #35453manjey73Участник@JurasskPark писать Buran слишком длинно 🙂
Писать Ba, Ab как то неправильно, либо надо ВА или АВ.
з.ы. не решил ещё окончательно в общем.
От имени и фамилии в общем.
@Mikhail дело в том, что я код прописал прямо внутри метода, если делать наследованием, то наверное код получится более громоздким. По этому и говорю, лучше это добавить в штатный драйвер DrvSms, а включение доп функционала можно либо через Options сделать, но по кнопке Свойства запускается Адресная книга. Либо просто через командную строку, с указанием количества блока данных.
И Номер телефона наверное лучше не в double, а в Integer.
Я вообще код по сути не писал, просто скопировал то, что когда-то делал для 5-й версии с правкой на версию 6. И все.04.11.2024 в 11:38 #35454manjey73УчастникТо есть, если изменю на Unicode и буду себе отправлять смс хоть на английском, хоть на русском, то сообщение примется нормально?
Проверю вечером. Тогда для вх. сообщения одного канала будет достаточно.04.11.2024 в 18:09 #35455sergyltdУчастникЧто-то я затупил. А как получить сообщение в цифре? Ну, то есть я посылаю 1000 , на выходе хочу Double=1000? EncodeAscii(Substring(Cnl.ToString(),0,4)) компилится нормально, ноне работает.
Мне надо в МАУ установить триггер на сообщение в зависимости от содержания.04.11.2024 в 19:03 #35456manjey73УчастникЗаменил канал на тип строки Unicode. Теперь принимает на русском и английском нормально.
04.11.2024 в 19:05 #35457manjey73УчастникВся строка это массив каналов. Там вроде была формула как получать строки.
Уже потом эти строки парсите как вам нравится.Честно, не заморачивался 🙂 Возможно ваша формула не совсем верна
04.11.2024 в 19:13 #35458manjey73УчастникCnl.ToString() — ну это точно не то. Потому что первым байтом в ASCII будет 31
04.11.2024 в 19:27 #35459sergyltdУчастникУ меня модем в режиме PDU. А драйвер преобразует входящие СМС из PDU в обычный текст? Если я читаю сообщение АТ командой, то получаю вот что:
2024-11-04 14:16:23 Command AtCmd to the device [4] SMS_mess Send: AT+CMGR=53 Receive: +CMGR: 0,,76 07919759984617F20409d0d456f32d060008421140814303213a041204300448002004470435043a003a00a00071002e00740062002e00720075002f0078003100540071006d00430045004d0059006300590076
Это я послал 1111
04.11.2024 в 19:59 #35460manjey73Участникну судя по всему первые цифры это номер телефона. А что там дальше именно в pdu я не очень в курсе.
Отдельные каналы преобразуют уже message.Text и message.Phone в отдельные каналы.
04.11.2024 в 20:04 #35461manjey73Участниктак понимаю PDU еще требует расшифровки. Я добавил чуть-чуть кода уже после расшифровки драйвером.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.