getSystemDateAndTime method

Future<DateTime> getSystemDateAndTime()

Implementation

Future<DateTime> getSystemDateAndTime() async {
  const String body = '<tds:GetSystemDateAndTime/>';
  final response = await client.soapRequest(body,
      action: 'http://www.onvif.org/ver10/device/wsdl/GetSystemDateAndTime');

  final document = XmlDocument.parse(response);
  const ttNs = 'http://www.onvif.org/ver10/schema';

  final systemDateAndTimeTo =
      document.findAllElements('SystemDateAndTime', namespace: ttNs).first;
  final utcTime =
      systemDateAndTimeTo.findElements('UTCDateTime', namespace: ttNs).first;

  final time = utcTime.findElements('Time', namespace: ttNs).first;
  final date = utcTime.findElements('Date', namespace: ttNs).first;

  return DateTime.utc(
    int.parse(date.findElements('Year', namespace: ttNs).first.innerText),
    int.parse(date.findElements('Month', namespace: ttNs).first.innerText),
    int.parse(date.findElements('Day', namespace: ttNs).first.innerText),
    int.parse(time.findElements('Hour', namespace: ttNs).first.innerText),
    int.parse(time.findElements('Minute', namespace: ttNs).first.innerText),
    int.parse(time.findElements('Second', namespace: ttNs).first.innerText),
  );
}