configureCallback

Установите функцию обратного вызова и условие триггера для связи

    Описание

    пример

    configureCallback(t,"terminator",callbackFcn) устанавливает функцию обратного вызова callbackFcn инициировать каждый раз, когда терминатор строки доступен для чтения из клиента, подключенного к серверу TCP/IP t. Синтаксис устанавливает BytesAvailableFcnMode свойство t на "terminator" и BytesAvailableFcn свойство к callbackFcn.

    Установите символ терминатора строки, используя configureTerminator.

    пример

    configureCallback(t,"byte",count,callbackFcn) устанавливает функцию обратного вызова callbackFcn запускать каждый раз, когда новая count Доступно количество байтов для чтения. Синтаксис устанавливает BytesAvailableFcnMode свойство t на "byte", а BytesAvailableFcnCount свойство к count, и BytesAvailableFcn свойство к callbackFcn.

    пример

    configureCallback(t,"off") отключает коллбэки. Синтаксис устанавливает BytesAvailableFcnMode свойство t на "off".

    Примеры

    свернуть все

    Создайте функцию обратного вызова readFcn и сохраните его как .m файл в текущей рабочей директории.

    function readFcn(src,~)
    message = readline(src);
    disp(message)
    end
    

    Создайте сервер TCP/IP, который прослушивает подключения в localhost и порт 4000.

    server = tcpserver("localhost",4000)
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Создайте клиент TCP/IP для подключения к объекту сервера с помощью tcpclient. Необходимо указать тот же IP-адрес и номер порта, которые вы используете для создания server.

    client = tcpclient("localhost",4000)
    client = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Установите функцию обратного вызова readFcn для запуска, когда терминатор строки доступен для чтения на сервере. Функция обратного вызова readFcn считывает и отображает сообщение, отправленное подключенным клиентом.

    configureCallback(server,"terminator",@readFcn)

    Просмотрите свойства, чтобы подтвердить изменение.

    server.BytesAvailableFcnMode
    ans = 
    "terminator"
    
    server.BytesAvailableFcn
    ans = function_handle with value:
        @readFcn
    
    

    Запись строки данных ASCII в клиент TCP/IP. Поскольку клиент подключен к серверу, эти данные доступны на сервере. Когда сервер получает данные с терминатором строки от клиента, server запускает функцию обратного вызова, которая отображает данные.

    writeline(client,"Hello, world!")

    Hello, world!

    Отключите коллбэк.

    configureCallback(server,"off")

    Проверьте, что коллбэк отключен.

    server.BytesAvailableFcnMode
    ans = 
    "off"
    

    Создайте функцию обратного вызова readByteFcn и сохраните его как .m файл в текущей рабочей директории.

    function readByteFcn(src,~)
    data = read(src,src.NumBytesAvailable);
    disp(data)
    end
    

    Создайте сервер TCP/IP, который прослушивает подключения в localhost и порт 4000.

    server = tcpserver("localhost",4000)
    server = 
      TCPServer with properties:
    
            ServerAddress: "127.0.0.1"
               ServerPort: 4000
                Connected: 0
            ClientAddress: ""
               ClientPort: []
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Создайте клиент TCP/IP для подключения к объекту сервера с помощью tcpclient. Необходимо указать тот же IP-адрес и номер порта, которые вы используете для создания server.

    client = tcpclient("localhost",4000)
    client = 
      tcpclient with properties:
    
                  Address: 'localhost'
                     Port: 4000
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    

    Установите функцию обратного вызова readByteFcn для запуска, когда доступно пять байтов новых данных для чтения на сервере. Функция обратного вызова readByteFcn считывает и отображает все данные, отправленные от подключенного клиента.

    configureCallback(server,"byte",5,@readByteFcn)

    Просмотрите свойства, чтобы подтвердить изменение.

    server.BytesAvailableFcnMode
    ans = 
    "byte"
    
    server.BytesAvailableFcnCount
    ans = 5
    
    server.BytesAvailableFcn
    ans = function_handle with value:
        @readByteFcn
    
    

    Запись пяти байтов данных в клиент TCP/IP. Поскольку клиент подключен к серверу, эти данные доступны на сервере. Когда сервер получает пять байтов данных от клиента, server запускает функцию обратного вызова, которая отображает данные.

    write(client,1:5,"uint8")

    1 2 3 4 5

    Отключите коллбэк.

    configureCallback(server,"off")

    Проверьте, что коллбэк отключен.

    server.BytesAvailableFcnMode
    ans = 
    "off"
    

    Входные параметры

    свернуть все

    Сервер TCP/IP, заданный как tcpserver объект.

    Пример: configureCallback(t,"byte",128,@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать каждый раз, когда доступно 128 байт новых данных для чтения с сервера TCP/IP t.

    Количество байтов доступных данных для запуска коллбэка, заданное в виде положительного целого значения. Установите BytesAvailableFcnCount свойство, использующее этот аргумент.

    Пример: configureCallback(t,"byte",128,@callbackFcn) устанавливает callbackFcn коллбэк, чтобы инициировать каждый раз, когда доступно 128 байтов новых данных для чтения.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Функция обратного вызова, которая запускается при выполнении условия триггера, задается как указатель на функцию. Указатель на функцию может быть именованным указателем на функцию или анонимной функцией с входными параметрами. Установите BytesAvailableFcn свойство, использующее этот аргумент.

    Пример: configureCallback(t,"terminator",@callbackFcn) устанавливает callbackFcn Коллбэк для запуска, когда терминатор строки доступен для чтения.

    Типы данных: function_handle

    См. также

    |

    Введенный в R2021a