continuousMove static method Null safety

XmlDocumentFragment continuousMove(
  1. String profileToken,
  2. {required PtzPosition velocity,
  3. int? timeout}
)

XML for the continuousMove, requires a profileToken and PtzPosition, and optionally timeout

Implementation

static XmlDocumentFragment continuousMove(String profileToken,
    {required PtzPosition velocity, int? timeout}) {
  Transport.builder.element('ContinuousMove', nest: () {
    Transport.builder.namespace(Xmlns.tptz); //tptz

    Transport.builder.element('ProfileToken', nest: () {
      Transport.builder.namespace(Xmlns.tptz);
      Transport.builder.text(profileToken);
    });

    Transport.builder.element('Velocity', nest: () {
      Transport.builder.namespace(Xmlns.tptz);

      Transport.builder.element('PanTilt', nest: () {
        Transport.builder.namespace(Xmlns.tt);
        Transport.builder.attribute('x', velocity.panTilt!.x);
        Transport.builder.attribute('y', velocity.panTilt!.y);
      });

      Transport.builder.element('Zoom', nest: () {
        Transport.builder.namespace(Xmlns.tt);

        Transport.builder
            .attribute('x', velocity.zoom != null ? velocity.zoom!.x : 0);
      });
    });

    Transport.builder.element('Timeout', nest: () {
      Transport.builder.namespace(Xmlns.tptz);
      Transport.builder.text('PT${timeout}S');
    });
  });

  return Transport.builder.buildFragment();
}