⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pslamptask.h

📁 基于sipfoundy 公司开发的sipx协议API
💻 H
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////#ifndef _PsLampTask_h_#define _PsLampTask_h_// SYSTEM INCLUDES// APPLICATION INCLUDES#include "os/OsBSem.h"#include "os/OsRWMutex.h"#include "os/OsTask.h"#include "ps/PsLampDev.h"#include "ps/PsLampInfo.h"// DEFINES// MACROS// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STRUCTS// TYPEDEFS// FORWARD DECLARATIONS//:Task responsible for managing the phone set lampsclass PsLampTask : public OsTask{/* //////////////////////////// PUBLIC //////////////////////////////////// */public:/* ============================ CREATORS ================================== */   static PsLampTask* getLampTask(void);     //:Return a pointer to the Lamp task, creating it if necessary   virtual   ~PsLampTask();     //:Destructor/* ============================ MANIPULATORS ============================== */   OsStatus init(const int maxLampIndex);     //:Cause the Lamp task to (re)initialize itself     // The task will allocate an array [0..maxLampIndex] of PsLampInfo     // objects to hold lamp state.   OsStatus setLampInfo(int index,                        int lampId,                        const char* lampName,                        PsLampInfo::LampMode lampMode);     //:Set the lamp information for the lamp designated by "index"     // Returns OS_NOT_FOUND if the index is out of range.   OsStatus setMode(int lampId, PsLampInfo::LampMode lampMode);     //:Set the mode for the lamp indicated by lampId     // Returns OS_NOT_FOUND if there is no lamp with that lampId.   OsStatus setMode(const char* pLampName, PsLampInfo::LampMode lampMode);     //:Set the mode for the lamp indicated by pLampName     // Returns OS_NOT_FOUND if there is no lamp with that name./* ============================ ACCESSORS ================================= */   const PsLampInfo& getLampInfo(const int index);     //:Return the lamp information for the lamp designated by "index"   int getMaxLampIndex(void) const;     //:Returns the max index for the array of PsLampInfo objects   OsStatus getMode(int lampId, PsLampInfo::LampMode& rMode);     //:Get the current mode for the lamp designated by lampId     // The mode is returned in the "rMode" variable.      // Returns OS_NOT_FOUND if there is no lamp with that lampId.   OsStatus getMode(const char* pLampName, PsLampInfo::LampMode& rMode);     //:Get the current mode for the lamp designated by pLampName     // The mode is returned in the "rMode" variable.      // Returns OS_NOT_FOUND if there is no lamp with that name.   OsStatus getName(int lampId, const char*& rpName);     //:Returns the name for the lamp designated by lampId     // The name is returned in the "rpName" variable.      // Returns OS_NOT_FOUND if there is no lamp with that lampId./* ============================ INQUIRY =================================== *//* //////////////////////////// PROTECTED ///////////////////////////////// */protected:   PsLampTask();     //:Constructor (called only indirectly via getLampTask())     // We identify this as a protected (rather than a private) method so     // that gcc doesn't complain that the class only defines a private     // constructor and has no friends.   int run(void* pArg);     //:The body of the task.     // Responsible for updating the lamps as needed./* //////////////////////////// PRIVATE /////////////////////////////////// */private:   enum LampTaskConstants   {      TICK_PERIOD_MSECS = 50,      FLASH_ON_TICKS    = 10,      FLASH_OFF_TICKS   = 10,      FLUTTER_ON_TICKS  = 1,      FLUTTER_OFF_TICKS = 1,      WINK_ON_TICKS     = 1,      WINK_OFF_TICKS    = 19   };      void calculateLampModeAggregates(void);     //:Calculate the lamp mode aggregates (the lamp IDs that are turned on      //:for each mode)   void doCleanup(void);     //:Release dynamically allocated storage     // A write lock should be acquired before calling this method.   int            mMaxLampIdx;       // max lamp index   int            mModeTickMultiple; // common multiple for all tick modes   OsRWMutex      mMutex;            // mutex for synchonizing access to data   int            mTickCnt;          // current lamp tick count   PsLampInfo*    mpLampInfo;        // ptr to an array of PsLampInfo objects   PsLampDev*     mpLampDev;         // ptr to lamp device                                     // Logical OR of lamps in various modes   unsigned long  mModeBrokenFlutterLamps;  // Broken flutter mode lamps   unsigned long  mModeFlashLamps;          // Flash mode lamps   unsigned long  mModeFlutterLamps;        // Flutter mode lamps   unsigned long  mModeSteadyLamps;         // Steady mode lamps   unsigned long  mModeWinkLamps;           // Wink mode lamps   unsigned long  mOnLamps;          // Lamps that are turned on   // Static data members used to enforce Singleton behavior   static PsLampTask* spInstance;    // pointer to the single instance of                                     //  the PsLampTask class   static OsBSem      sLock;         // semaphore used to ensure that there                                     //  is only one instance of this class   PsLampTask(const PsLampTask& rPsLampTask);     //:Copy constructor (not implemented for this task)   PsLampTask& operator=(const PsLampTask& rhs);     //:Assignment operator (not implemented for this class)};/* ============================ INLINE METHODS ============================ */#endif  // _PsLampTask_h_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -