I have two positioners one for a ku dish and a second for a C Band dish.
Would it be possibles to cater for the southern hemispere by a switch.
Your East is my West.
Mike
On 22.04.2013 12:37, Mike Booth wrote:
I have two positioners one for a ku dish and a second for a C Band dish.
The general desire for multiple positioners appears to be rather low, so I guess I won't do the extra work to handle such cases.
Would it be possibles to cater for the southern hemispere by a switch.
Your East is my West.
It was probably a bad idea of the rotor manufacturers to use the terms "east" and "west" in the first place ;-) They should rather have used "left" and "right" (as seen from behind the dish). However, if VDR starts using left/right instead of east/west, it might just cause more confusion than it helps. On the other hand, at the cPositioner level left/right sure would make much more sense, because it is independent of the site's latitude.
So what do you folks think? Should I change
virtual void DriveEast(void) {} virtual void DriveWest(void) {} virtual void StepEast(int Steps = 1) {} virtual void StepWest(int Steps = 1) {} virtual void SetLimitEast(void) {} virtual void SetLimitWest(void) {}
to
virtual void DriveLeft(void) {} virtual void DriveRight(void) {} virtual void StepLeft(int Steps = 1) {} virtual void StepRight(int Steps = 1) {} virtual void SetLimitLeft(void) {} virtual void SetLimitRight(void) {}
or even
virtual void Drive(bool Left) {} // true = left, false = right virtual void Step(int Steps) {} // <0 = left, >0 = right virtual void SetLimit(bool Left) {} // true = left, false = right
?
Klaus
Al 22/04/13 14:28, En/na Klaus Schmidinger ha escrit:
So what do you folks think?
I don't have any preference wrt Left/Right East/West. My last (and only) set top box with integrated positioner was analogue and used East/West, but I don't remember if it had any provision for the southern hemisphere (I suppose you could just reverse the polarity of the motor). Hey, it also had skew control :-)
But..
virtual void Drive(bool Left) {} // true = left, false = right virtual void Step(int Steps) {} // <0 = left, >0 = right virtual void SetLimit(bool Left) {} // true = left, false = right
I do like this one (less cluttered interface)
Bye
Am 22.04.2013 14:28, schrieb Klaus Schmidinger:
... or even
virtual void Drive(bool Left) {} // true = left, false = right virtual void Step(int Steps) {} // <0 = left, >0 = right virtual void SetLimit(bool Left) {} // true = left, false = right
?
If you would go this way, I would prefer an enum as parameter, because it's easier to use and the code is easier to understand. You don't have to remember if true is left or right. :) "Step" would than have two parameters, the enum and an uint.
Regards, Lars.
Klaus
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
On 22.04.2013 20:56, Lars Hanisch wrote:
Am 22.04.2013 14:28, schrieb Klaus Schmidinger:
... or even
virtual void Drive(bool Left) {} // true = left, false = right virtual void Step(int Steps) {} // <0 = left, >0 = right virtual void SetLimit(bool Left) {} // true = left, false = right
?
If you would go this way, I would prefer an enum as parameter, because it's easier to use and the code is easier to understand. You don't have to remember if true is left or right. :) "Step" would than have two parameters, the enum and an uint.
Well, I guess especially with the Step() function it could have been nice to have the sign indicate the direction. But then again VDR itself probably isn't going to use Step() with anything else but '1', so
enum ePositionerDirection { pdLeft, pdRight }; virtual void Step(ePositionerDirection Direction, uint NumSteps = 1);
should do just fine...
Klaus