From cd10b439d0465afa6bce38188a4e9d8a5e74d859 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Wed, 21 Aug 2013 11:02:52 +0200 Subject: Added basic support for positioners to control steerable satellite dishes --- PLUGINS.html | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'PLUGINS.html') diff --git a/PLUGINS.html b/PLUGINS.html index 0141c563..454eae2d 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -99,6 +99,7 @@ structures and allows it to hook itself into specific areas to perform special a
  • Skins
  • Themes
  • Devices +
  • Positioners
  • Audio
  • Remote Control
  • Conditional Access @@ -2024,6 +2025,49 @@ new cMyDeviceHook; and shall not delete this object. It will be automatically deleted when the program ends. +
    +

    Positioners

    + +
    Now you see me - now you don't!

    + +If you are using a positioner (also known as "motor" or "rotor") to move your +satellite dish to receive various satellites, you will be using the 'P' command +in the diseqc.conf file. This command sends the necessary data to the +positioner to move the dish to the satellite's orbital position. By default VDR +uses its builtin DiSEqC positioner control. If your positioner requires a different +method of controlling (like maybe via a serial link), you can derive a class +from cPositioner, as in + +

    +#include <vdr/positioner.h>
    +
    +class cMyPositioner : public cPositioner {
    +private:
    +  void SendDiseqc(uint8_t *Codes, int NumCodes);
    +public:
    +  cMyPositioner(void);
    +  virtual void Drive(ePositionerDirection Direction);
    +  virtual void Step(ePositionerDirection Direction, uint Steps = 1);
    +  virtual void Halt(void);
    +  virtual void SetLimit(ePositionerDirection Direction);
    +  virtual void DisableLimits(void);
    +  virtual void EnableLimits(void);
    +  virtual void StorePosition(uint Number);
    +  virtual void RecalcPositions(uint Number);
    +  virtual void GotoPosition(uint Number, int Longitude);
    +  virtual void GotoAngle(int Longitude);
    +  };
    +

    + +See the implementation of cDiseqcPositioner in diseqc.c for details. +

    +You should create your derived positioner object in the +Start() function of your plugin. +Note that the object has to be created on the heap (using new), +and you shall not delete it at any point (it will be deleted automatically +when the program ends). +

    +

    Audio

    "The stereo effect may only be experienced if stereo equipment is used!"

    -- cgit v1.2.3