async def METHOD_NAME(
    reader: WaitableCallback, expected: NodeId
) -> Tuple[float, float, bool, bool]:
    async for response, arb_id in reader:
        assert isinstance(response, UpdateMotorPositionEstimationResponse)
        node = NodeId(arb_id.parts.originating_node_id)
        if node == expected:
            return (
                float(response.payload.current_position.value / 1000.0),
                float(response.payload.encoder_position.value) / 1000.0,
                bool(
                    response.payload.position_flags.value
                    & MotorPositionFlags.stepper_position_ok.value
                ),
                bool(
                    response.payload.position_flags.value
                    & MotorPositionFlags.encoder_position_ok.value
                ),
            )
    raise StopAsyncIteration