Навигация:
<< >> Оглавление Указатель

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.10. Обмен данными по сети

§3.7.10.4. Данные приняты сервером

Это событие возникает при обмене данными по сети в блоке, передавшем данные на сервер, после получения сервером этих данных, если блок, передавая данные, запросил такое подтверждение получения. Событие возникает при получении данных именно сервером, а не блоком-получателем данных – серверу еще только предстоит отправить данные получателю. Стандартный модуль автокомпиляции не автоматизирует передачу данных между блоками по сети, желающие реализовать ее могут изучить §2.15 руководства программиста.

Текст реакции на подтверждение приема данных вводится на вкладке «события» левой панели редактора модели: раздел «сеть», подраздел «данные приняты сервером». В классе блока для нее создается функция с именем rdsbcppNetAccepted следующего вида:

  // Data accepted by the server
  void rdsbcppBlockClass::rdsbcppNetAccepted( AccData)
  {
     … пользовательский текст реакции … 
  }

Параметр функции AccData – это указатель на структуру RDS_NETACCEPTDATA, описывающую переданные данные, прием которых подтверждается:

  typedef struct {
     ConnId;     // Идентификатор соединения
     HostA;       // URL или IP-адрес сервера (UTF8)
     HostW;      // URL или IP-адрес сервера (UTF16)
    // Host;     // URL или IP-адрес сервера ()
     Port;       // Порт
     ChannelA;    // Имя канала (UTF8)
     ChannelW;   // Имя канала (UTF16)
    // Channel;  // Имя канала ()
     Id;         // Идентификатор полученного блока данных
  } ;
  typedef  *;

Поля структуры имеют следующий смысл:

ConnId (int)
Уникальный идентификатор сетевого соединения, возвращенный сервисной функцией при его создании.
HostA (RDSCSTR), HostW (RDSWCSTR), Host (RDSXCSTR)
Имя (URL) или IP-адрес сервера, с которым установлено соединение.
Port (int)
Номер сетевого порта, через который идет обмен данными.
ChannelA (), ChannelW (), Channel ()
Имя канала передачи данных, в который были переданы данные.
Id (int)
Целый идентификатор переданных данных (произвольное целое число, указанное передавшим данные блоком в вызове одной из функций передачи).

При написании моделей блоков без использования модуля автокомпиляции подтверждению получения данных сервером соответствует константа RDS RDS_BFM_NETDATAACCEPTED.


<< >> Оглавление Указатель