setRelayOutputSettings method

Future<void> setRelayOutputSettings(
  1. String relayOutputToken, {
  2. String mode = 'Monostable',
  3. String delayTime = 'PT5S',
  4. String idleState = 'open',
})

Configures relay output settings. mode: 'Monostable' (auto-reset after delay) or 'Bistable' (latching). delayTime: ISO 8601 duration, e.g. 'PT5S' = 5 seconds. idleState: 'open' (normally open) or 'closed' (normally closed).

Implementation

Future<void> setRelayOutputSettings(
  String relayOutputToken, {
  String mode = 'Monostable',
  String delayTime = 'PT5S',
  String idleState = 'open',
}) async {
  OnvifLogger.instance.log(
    'SetRelayOutputSettings token=$relayOutputToken mode=$mode delay=$delayTime idleState=$idleState',
    name: _tag,
  );
  final String body =
      '<tmd:SetRelayOutputSettings xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl">'
      '<tmd:RelayOutputToken>$relayOutputToken</tmd:RelayOutputToken>'
      '<tmd:Properties>'
      '<tt:Mode xmlns:tt="http://www.onvif.org/ver10/schema">$mode</tt:Mode>'
      '<tt:DelayTime xmlns:tt="http://www.onvif.org/ver10/schema">$delayTime</tt:DelayTime>'
      '<tt:IdleState xmlns:tt="http://www.onvif.org/ver10/schema">$idleState</tt:IdleState>'
      '</tmd:Properties>'
      '</tmd:SetRelayOutputSettings>';
  await client.soapRequest(
    body,
    action:
        'http://www.onvif.org/ver10/deviceIO/wsdl/SetRelayOutputSettings',
  );
  OnvifLogger.instance.log(
    'SetRelayOutputSettings OK token=$relayOutputToken',
    name: _tag,
  );
}