On 21.04.2013 20:17, Luca Olivetti wrote:
Al 21/04/13 15:52, En/na Klaus Schmidinger ha escrit:
Any visual feedback will be done via the channel display of the skin, by comparing CurrentLongitude() to TargetLongitude(). And of course any section filtering will start only after the target position has been reached.
Mmh, how will the system decide between "GotoAngle" and "GotoPosition"?
That will be done in diseqc.conf. There may still be another function through which the positioner can tell VDR about its "capabilities".
I have a linear actuator and I can only work with pulses. While in theory calculating the angle is possible, it'd be difficult to do and it will vary based on the geometry of the mount.
The cPositioner class is an abstract model of a device that can steer a dish to a given orbital position (longitude), or a previously stored position (number). How a particular positioner does this is totally up to its implementation.
Also, I don't like the use of "Number" in StorePosition, mainly because I've been using Source up until now, but I guess I can live with that.
You can still use "source", because that's just what is given as the "Longitude" parameter in GotoAngle() (without the 'S').
From the complete interface it seems that everything regarding
positioning will be managed by vdr itself, so the main screen of my plugin[*] will be made redundant (good! I'm lazy),
That's the plan ;-).
one thing I see missing is some way to show error conditions (I have "Limit reached" and "Motor error", which means the motor isn't moving even if it should).
OK, I'll add
virtual cString Error(void) { return NULL; } ///< Returns a short, single line string indicating an error condition. ///< NULL means there is no error.
Klaus