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 в виде a 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