I am doing protocol integration for Milestone XProtect Professional+ with our API, and I would like to know given a set of PTZ relative speeds, i.e. { -10, 3, +20} that are between -100 and +100, what would be the best command to use. Our API assumes setting the speed to 0 would stop the move in that direction.
I think the RecorderCommandService PTZMoveStart and PTZMoveStop is what you are looking for. This uses a double and the ranges are in general [0..1].
There is no protocol sample but there is a sample that comes close, the PTZandPresets sample is a MIP library .Net sample but it illustrates the use of PTZMoveStart and PTZMoveStop.
It seems that PTZSetAbsolutePosition is not available for c type servers, so my only choice would be PTZ, and I would have to figure out how frequent to issue the request in order to achieve the desired behavior.
PTZSetAbsolutePosition is doing something else entirely, it is configuring PTZ Presets on the e-code XProtect servers.
You should, from my understanding of your question, either use PTZMoveStart or PTZMoveAbsoluteCommand, both of which you can see used in the sample. PTZMoveStart is doing movement in a certain direction until you stop with PTZMoveStop. PTZMoveAbsoluteCommand makes the camera move to the absolute coordinates you order.
The sample is not protocol, you should use the Recorder Command Service. You can find both PTZMoveStart and PTZMoveAbsoluteCommand on the Recorder Commend Service.