Перейти к содержимому

Фотография

Чтение SMS с USB-модема

QTP AT USB MSCOMM ActiveX

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 kmdm229

kmdm229

    Новый участник

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Шелехов Алексей


Отправлено 07 апреля 2014 - 17:54

Выкладываю функцию чтения смс с помощью QTP и AT-комманд напрямую из USB-модема. Может быть кому-то пригодится.

Function getSMS(timeout)
  getSMS = false
    Set oComm = CreateObject("MSCOMMLib.MSComm")
    oComm.CommPort = 7
    oComm.Settings = "9600,n,8,1"
    oComm.PortOpen = True
    oComm.InputMode = comInputModeText
    oComm.InputLen = 0
    oComm.Output ="AT+CMGF = 1" & vbCrLf
    oComm.Output = "AT+CNMI=1,2,0,0,0" & vbCrLf
    wait 0,500
   For i = 0 to timeout
            out = oComm.Input
            If полученная смс содержит "CMT" Then
                getSMS = out
                Exit for
            End If
            wait 1
            i = i+1
    Next
oComm.PortOpen = False
set oComm = nothing
End Function

Этот код можно по желанию разбить на отдельные функции и сделать класс для работы с COM-портом. Также можно доделать проверку подключения модема.

Извиняюсь за возможные ошибки и форматирование, т.к. писал на коленке.


  • 1

#2 ch_ip

ch_ip

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

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 07 апреля 2014 - 20:47

Круто, спасибо!
Ошибок явных не нашел, разве что мне не нравится, что функция возвращает или булевское значение, или строку. Я бы предпочел, чтобы тип данных всегда был один, например, получить пустую строку, если смс не пришло.
  • 0

#3 QA*

QA*

    Активный участник

  • Members
  • PipPip
  • 104 сообщений
  • Город:Москва

Отправлено 08 апреля 2015 - 05:15

MSCOMMLib.MSComm с сайта Microsoft можно скачать? А то мой qtp жалуется на её отсутствие.
  • 0



Темы с аналогичным тегами QTP, AT, USB, MSCOMM, ActiveX

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных