async def test_set_monitoring_mode(opc, mocker): """ test set_monitoring_mode parameter for all MIs of a subscription """ myhandler = MySubHandler() o = opc.opc.nodes.objects monitoring_mode = ua.SetMonitoringModeParameters() mock_set_monitoring = mocker.patch.object(ua, "SetMonitoringModeParameters", return_value=monitoring_mode) mock_client_monitoring = mocker.patch("asyncua.client.ua_client.UaClient.set_monitoring_mode", new=CoroutineMock()) v = await o.add_variable(3, 'SubscriptionVariable', 123) sub = await opc.opc.create_subscription(100, myhandler) await sub.set_monitoring_mode(ua.MonitoringMode.Disabled) assert monitoring_mode.MonitoringMode == ua.MonitoringMode.Disabled await sub.set_monitoring_mode(ua.MonitoringMode.Reporting) assert monitoring_mode.MonitoringMode == ua.MonitoringMode.Reporting
async def set_monitoring_mode(self, monitoring: ua.MonitoringMode) -> ua.uatypes.StatusCode: """ The monitoring mode parameter is used to enable/disable the sampling of MonitoredItems (Samples don't queue on the server side) :param monitoring: The monitoring mode to apply :return: Return a Set Monitoring Mode Result """ node_handles = [] for mi in self._monitored_items.values(): node_handles.append(mi.server_handle) params = ua.SetMonitoringModeParameters() params.SubscriptionId = self.subscription_id params.MonitoredItemIds = node_handles params.MonitoringMode = monitoring return await self.server.set_monitoring_mode(params)