// Group2.h: interface for the CGroup class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_GROUP2_H__3C112190_BD3B_478A_8685_456DB3B570FF__INCLUDED_) #define AFX_GROUP2_H__3C112190_BD3B_478A_8685_456DB3B570FF__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 enum CommPartner { CP_GC=0, CP_MX=1, CP_ESC=2, CP_SX=3, CP_TX=4, CP_FREE=5, CP_OVL=6, CP_MICV=7, CP_BIONIC=8 }; enum ContrMode { CM_PI=0, CM_KS=1, CM_M10=2, CM_SID=3, CM_NONE=4 }; struct PossibleModes { BOOL PI; BOOL KS; BOOL M10; BOOL SID; BOOL DD; }; class CGroup : public CObject { public: CGroup(CArchive& ar, UINT uiFileVersion); CGroup(UINT uiID, CString strName, CommPartner cpPartner = CP_GC, int nUnits = 0, int nLoad = 1000); virtual ~CGroup(); public: void AddUnit(); void RemoveUnit(); void Serialize(CArchive &ar, UINT uiFileVersion); void SetID(UINT uiID) { m_uiID = uiID; } void SetName(CString strName) { m_strName = strName; } void SetCommission(CString strComm); void SetType(UINT uiPartner, UINT uiMode); void SetType(CommPartner cpPartner, ContrMode cmMode); void SetCommPartner(CommPartner cpPartner); void SetCommPartner(UINT uiPartner); void SetContrMode(ContrMode cmMode); void SetContrMode(UINT uiMode); void SetUnitCount(int nCount); void SetLoad(int nLoad) { m_nLoad = nLoad; } void SetFilePath(CString strPath){ m_strFilePath = strPath;} UINT GetID() { return m_uiID; } CString GetName() { return m_strName; } CString GetCommission() { return m_strCommission;} CommPartner GetCommPartner() { return m_cpPartner; } ContrMode GetContrMode() { return m_cmMode; } int GetUnitCount() { return m_nUnitCount; } int GetLoad() { return m_nLoad; } CString GetFilePath() { return m_strFilePath; } CObList* GetElevatorList() { return &m_oblUnits; } BOOL IsDD() { return m_bIsDD; } void SetDD(BOOL bDD); BOOL IsMX(); BOOL IsSchId(); int GetVXType(); int GetICCType(); int GetTopFloor(CObList* pFloors); int GetBottomFloor(CObList* pFloors); int GetEntrySides(CObList* pFloors); int GetMainFloor(CObList* pFloors, BOOL bGroup = FALSE); void SetMainFloor(int nFloor) { m_nMainFloor = nFloor; } int GetFloorCount(CObList* pFloors); void UpdateFeatures(); void SetFeature (int nFeature, int nValue); int GetFeature (int nFeature) {return m_arrFeatures[nFeature]; } void SetEleFeature (int nFeature, int nValue); int GetEleFeature (int nFeature) {return m_arrEleFeatures[nFeature]; } CString GetAvailableFeaturesGROUP(); CString GetAvailableFeaturesUNIT(); CString GetAvailableFeaturesNUDGING(); CString GetAvailableFeaturesCONTROLLER(); CString GetAvailableFeaturesCOMMPARTNER(); CString GetAvailableFeaturesCONTRMODE(); CString GetAvailableFeaturesNBRDECKS(); CString FindTX(CString strComm); CString FindSX(CString strComm); BOOL FindComm(CString strDir, CString strShort, CString* pResult); CString FindAE(CString strPath); CString FindDP(CString strPath); private: BOOL m_bIsDD; CommPartner m_cpPartner; UINT m_uiPartner; ContrMode m_cmMode; UINT m_uiMode; UINT m_uiID; CString m_strName; CString m_strCommission; int m_nUnitCount; int m_nLoad; CString m_strFilePath; CObList m_oblUnits; int m_nMainFloor; int m_arrFeatures[32]; int m_arrEleFeatures[144]; public: CString GetCommPartnerString(); CString GetCommPartnerShortString(); static CString GetCommPartnerString(CommPartner cmPartner); static CString GetCommPartnerShortString(CommPartner cmPartner); CString GetContrModeString(); CString GetContrModeShortString(); static CString GetContrModeString(ContrMode cmMode); static CString GetContrModeShortString(ContrMode cmMode); }; #endif // !defined(AFX_GROUP2_H__3C112190_BD3B_478A_8685_456DB3B570FF__INCLUDED_)