Сообщения между клиентом и сервером для отображения параметров в GUI.
// Server to Client SRV_ParamEventNotifier::doSend_RangeInt - > Client::UI_ParamEventNotifier::onRxMess_RangeInt SRV_ParamEventNotifier::doSend_RangeDbl -> Client::UI_ParamEventNotifier::onRxMess_RangeDbl SRV_ParamEventNotifier::doSend_RangeStr -> Client::UI_ParamEventNotifier::onRxMess_RangeStr SRV_ParamEventNotifier::doSend_Names -> Client::UI_ParamEventNotifier::doRxMess_Names SRV_ParamEventNotifier::doSend_Enables -> Client::UI_ParamEventNotifier::doRxMess_Enables SRV_ParamEventNotifier::doSend_ValueInt -> Client::UI_ParamEventNotifier::doRxMess_ValueInt SRV_ParamEventNotifier::doSend_ValueDbl -> Client::UI_ParamEventNotifier::doRxMess_ValueDbl // Client To Server SRV_ParamEventNotifier::onRx_AddParams <- Client::UI_ParamEventNotifier::doSrv_AddParams SRV_ParamEventNotifier::onRx_DelParams <- Client::UI_ParamEventNotifier::doSrv_DelParams SRV_ParamEventNotifier::onRx_SetParamsInt <- Client::UI_ParamEventNotifier::doSrv_SetParamsInt SRV_ParamEventNotifier::onRx_SetParamsDbl <- Client::UI_ParamEventNotifier::doSrv_SetParamsDbl
Например, есть набор параметров, описывающих функционал некоторой платы TestAFM1 (Амплитуда/Фаза/Частота генераторов, уровень ЦАП, координаты/параметры моторов и т.д.) При работе некоторых алгоритмов, например ФАПЧ или движения моторов, значения параметров меняются и должны быть отображены в клиентах на удаленных РС. Изменение параметра генерирует сообщение, которое получает серверный нотификатор SRV_ParamEventNotifier и рассылает его по клиентам если этот параметр отображается.
Params_TestAFM1::changedRange(ID) -> SRV_ParamEventNotifier::onChangedRange(ID) -> doSend_RangeInt -> Clients -> doSend_RangeDbl -> Clients -> doSend_RangeStr -> Clients Params_TestAFM1::changedNames(ID) -> SRV_ParamEventNotifier::OnChangedNames(ID) -> doSend_Names -> Clients Params_TestAFM1::changedEnables(ID) -> SRV_ParamEventNotifier::OnChangedEnables(ID) -> doSend_Enables -> Clients Params_TestAFM1::changedValue(ID) -> SRV_ParamEventNotifier::OnChangedValue(ID) -> doSend_ValueInt -> Clients -> doSend_ValueDbl -> Clients
Также, параметр может быть изменен в GUI на удаленном РС и должен синхронно отобразиться на остальных подключенных удаленных РС. Вызов setValue(newValue) параметра приведет к вызову Params_TestAFM1::changedValue(ID) для извещения клиентов об изменении:
regParams(ID).setValue(newValue) <- SRV_ParamEventNotifier::onRx_SetParamsInt <- Client::doSrv_SetParamsInt regParams(ID).setValue(newValue) <- SRV_ParamEventNotifier::onRx_SetParamsDbl <- Client::doSrv_SetParamsDbl