Программа содержит 4 модуля класса, позволяющие при помощи несложного кода подключаться к различному оборудованию по протоколу Telnet, и выполнять требуемый набор команд.
Команды могут включать в себя значения из диапазона ячеек листа Excel, или же загружаться из внешнего файла.
Примерно так можно задать настройки подключения к конкретному оборудованию:
Function UNIT() As Telnet_Equipment ' функция возвращает все необходимые настройки для подключения к оборудованию ' в ввиде объекта типа Telnet_Equipment Set UNIT = New Telnet_Equipment With UNIT .Name = "АТС UNIT-004" .IP = "192.168.64.122" .Port = 6701 .Login = "user" .Password = "password" .ResponseBeforeLogin = "*004*" .ResponseLogonSucceed = "*Делайте ваш выбор*>*" .Prompt = "*" & vbNewLine & ">" & vbNewLine With .LogonCommands .AddCommand "ytermenter", "*Ваше имя >*", "", 2000 .AddCommand .Equipment.Login, "*Ваш пароль >*", "", 200 .AddCommand .Equipment.Password, "*Делайте ваш выбор*", "", 1000 End With End With End Function
А так выглядит макрос, заполняющий таблицу телефонных номеров в АТС UNIT:
Sub test_UNIT() ' макрос подключается через Telnet к АТС UNIT TS-004 ' и заполняет данными нужную таблицу Dim ATS As Telnet_Equipment: Set ATS = UNIT PrintEquipmentResponses = True If Not ATS.Connection.Logon Then ' пытаемся подключиться к оборудованию ATS.Connection.Disconnect MsgBox "Не удалось подключиться к UNIT TS-004", vbCritical, "Ошибка соединения" Exit Sub End If ' если выполнение кода дошло до этого места - значит, подключение прошло удачно Debug.Print Now, "Подключение к UNIT TS-004 выполнено" Dim ExecAnswers As Collection: Set ExecAnswers = New Collection Dim cell As Range, ra As Range: Application.ScreenUpdating = False Set ra = Range([A1], Range("A" & Rows.count).End(xlUp)) ' добавляем команды, которые необходимо будет выполнить ATS.Commands.AddCommand "428", "*Делайте ваш выбор*", "" For Each cell In ra.Cells ' перебираем все ячейки в первом столбце ATS.Commands.AddCommand "3", "*Enter - выход*", "" ATS.Commands.AddCommand cell.Text, "*2. - длина номера меньше или равна*", _ "Неприемлемо! Будьте аккуратнее!" ATS.Commands.AddCommand "0", "*F. - на анализатор номера*", "" ATS.Commands.AddCommand "4", "*номер глобального внешнего выхода*", "" ATS.Commands.AddCommand "20", "*С какой цифры номера (начина с 1-й) :*", "" ATS.Commands.AddCommand "1", "*Делайте ваш выбор*", "" ATS.Commands.AddCommand "5e", "*>*", "" Next cell ATS.Commands.AddCommand "0", "*Делайте ваш выбор*", "" ATS.Commands.AddCommand "5", "*Enter - выход*", "" ATS.Commands.AddCommand "33", "*", "" ' выполняем все команды в порядке их записи ATS.Commands.ExecuteAll ExecAnswers ATS.Commands.ClearItems ' необязательно, если не будут добавляться новые команды ATS.Connection.Disconnect ' отключаемся End Sub
Комментарии
Отправить комментарий