




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 站场图显示模块站场图显示模块 详细设计详细设计 2 1.引言引言.4 1.1. 编写目的及背景.4 1.2. 定义.4 2.站场图模块的结构站场图模块的结构.4 2.1. 物理结构.5 2.1.1.Inc 目录.6 2.1.2.Res 目录.7 2.1.3.Src 目录 .7 2.2. 概述.8 3.站场图模块设计说明站场图模块设计说明.9 3.1. CZCTVIEW 站场图视图类.9 3.1.1.概述.9 3.1.2.主要数据成员描述.9 3.1.3.主要函数描述.10 3.2. CSTATION 站场类.12 3.2.1.概述.12 3.2.2.主要数据成员描述.12 3.2.3.主要函数描述.13 3.3. CSTATIONSET 站集类.19 3.3.1.概述.19 3.3.2.主要数据成员描述.19 3.3.3.主要函数描述.19 3.4. 数据类型.24 3.4.1.ObjectType 设备类型枚举.24 3.5. CZCTLOADER_INI载入站场图类.25 3.5.1.CZctLoader 类.25 3.5.2.概述.25 3.5.3.主要数据成员描述.25 3.5.4.主要函数描述.25 3.6. CZCTSAVER保存站场图类 .28 3.7. CZCTELEMENT站场元素类.28 3.7.1.概述.28 3.7.2.主要数据成员描述.28 3.7.3.主要函数描述.30 3.8. 各种站场图元素类.39 3.8.1.道岔表示类.39 3.8.2.道岔类.39 3.8.3.信号机类.40 3.8.4.无岔区段或股道类.41 3.8.5.按钮类.41 3.8.6.表示灯类.42 3 3.8.7.文本类.42 3.8.8.绝缘节类.42 3.8.9.箭头类.43 3.8.10. 车次窗类.43 3.8.11. 脱轨器类.43 3.8.12. 信号楼类.44 3.8.13. 站台类.44 3.8.14. 桥梁类.44 4.使用说明使用说明.44 4 站场图显示模块详细设计站场图显示模块详细设计 1. 引言引言 1.1. 编写目的及背景编写目的及背景 在 CTC 项目中,有多个模块需要显示站场图,且各个模块对站场图的显示和操作有不同 需求,旧站场图模块抽象的功能较为单一,功能已经越来越不能满足各个模块的需求,各 个模块各自实现了自己所需功能,各模块所实现的功能重复性较多,在此前提下,急需把 各个模块所需功能提取出来,扩充旧站场图模块,编写新的站场图模块,新模块提取了各 个模块需求的共性,且最大限度地满足各个模块的使用需求,在原有站场图模块的基础上, 使其结构更加合理,条理清晰,易于扩充。 1.2. 定义定义 站场图模块站场图模块:如未特别说明,指新站场图模块。 站场视图站场视图:用来显示站场图的视图,其程序实现为 CZctView 类。 CZctView:显示站场图的视图类。 CStation:站场类,包含一个站的所有站场元素。 CStationSet:站集类,包含有一个或多个站场类。 CZctElement:所有站场图元素的基类,表示一个站场元素。 单站单站:一个站场所有元素的集合,在程序中用 CStation 类表示。 站集站集:单站的集合,在程序中由 CStationSet 类表示。 ZctElementList:站场图元素列表,其为双向链表结构。 2. 站场图模块的结构站场图模块的结构 站场图模块编写的总体原则为,把各个子功能,在物理和逻辑上都划分清晰,一个逻辑 上的功能在物理上有一个实现文件与之对应,这样便于理解和以后的扩充,整个模块可以 分为 3 部分,现分别描述如下: 一:各个站场图元素,如“道岔”,“信号机”,“按钮”等,这部分主要是对站场图 各个元素的抽象,不同的站场图元素用不同类进行抽象实现。这部分主要放置在 Src/ZctElements 文件夹下,每一类元素对应一个文件。现在实现的站场图元素有 14 种: “按钮”,“箭头”,“表示灯”,“桥梁”,“道岔”,“道岔表示”,“绝缘节”, “信号机”,“信号楼”,“站台”,“脱轨器”,“车次窗”,“区段”和“文本”。 5 二:站场元素的管理,即站和站集。站包含一个站的元素列表,主要来管理这个站的元 素,在程序中由 CStation 类实现。站集包含一个或多个站,可以管理多个站。在程序中由 CStationSet 来实现。 三:站场和站集的显示。程序中的 CZctView 类实现了站场和站集的显示,并支持多种 对站场图的操作。 2.1. 物理结构物理结构 模块的物理组织,即文件和文件夹的组织,模块的所有文件放在 Zctxs 文件夹中,其下 的文件及文件夹如下: inc :存放模块中的所有头文件。 res :存放模块使用的资源文件。 src :程序源文件目录。 ZctModule.cpp: 站场图模块主文件。 为了方便模块的使用,其他模块如需要站场图模块,只要在项目中加入 此一个文件即可,其包含了系统中的其他所有文件。 6 2.1.1. Inc 目录目录 AnNiu.h: 按钮类的头文件 Arrow.h: 箭头类的头文件 BiaoShiDeng.h: 表示灯类的头文件 Bridge.h: 桥梁类的头文件 DaoCha.h: 道岔类的头文件 Dcbs.h: 道岔表示的头文件 DisplayPara.h: 显示设置结构头文件 IniFile.h: 读写 INI 文件类的头文件 Jyj.h: 绝缘节类的头文件 LogicKgl.h: 逻辑开关量类的头文件 RealKgl.h: 实际开关量类的头文件 Signal.h: 信号机类的头文件 SignStair.h: 信号楼类的头文件 StaDesktop.h: 站台类的头文件 Station.h: 车站类的头文件 StationSet.h: 站集类的头文件 Tgq.h: 脱轨器类的头文件 Train.h: 车列类的头文件 7 TrainNo.h: 车次窗类的头文件 WcqdorGd.h: 无岔区段或股道类的头文件 WenBen.h: 文本类的头文件 ZctElement.h: 抽象的站场图元素类的头文件 ZctElementCollection.h: 站场图元素集合类的头文件 ZctLoader.h: 站场图载入类的头文件 ZctSaver.h: 站场图保存类的头文件 ZctView.h: 站场图显示类的头文件 Zctxs.h: 预定义头文件 2.1.2. Res 目录目录 2.1.3. Src 目录目录 8 2.2. 概述概述 站场图模块采用文档/视图结构,视图类(CZctView)用来显示站场图,文档类 (CStation/CStationSet)来对单站和多站进行管理。为了简化模块的使用,把单站看成是 多站的特例进行统一处理。CStatoinSet 中含有 CStation 的链表,各个单站在站集中由一个 双向链表串接在一起。 开封宁陵县商丘 对站场元素进行抽象,用 CZctElement 类表示,其为抽象类,不能生成具体实例,所有 实际的站场图元素都由该类派生,代表实际的站场图元素,如道岔,信号机等。 CStation 中包含有一个站场元素列表(ZctElementList),站的所有站场元素均在该链表 中。 信号机道岔文本 站场图模块的编写没有考虑多线程程序的使用,如果在多线程程序中使用该模块,程序 中要保证数据的一致性。 为了消除屏幕的闪烁,站场图的显示采用双缓冲,建立一个内存图,所有的绘图操作发 生在内存图上,绘制好后再贴到屏幕上。内存图的大小和屏幕的大小一致,在屏幕大小改 变时为了减少频繁生成内存位图,在屏幕大小变小时不重新生成内存位图,而用原来的内 存位图。 为了提高效率,减少绘制时的工作量,在绘制运行图元素时,仅绘制屏幕可见元素,略 过不可见元素的绘制。每个元素都有一个可视矩形区域,该区域不包括元素的名称,如果 该区域和窗口视图区域(CZctView)有重叠,则认为该元素可见。 在站集多屏幕情形下,所有的元素都可见时,如果一个元素的状态发生变化,绘制一个 站的所有元素,也会有非常大工作量,在模块中采取只绘制状态发生变化的元素。但如此 的话将会引发新的问题,即有些元素状态发生变化前后的画法不一致,这就要求首先清除 元素,然后再按新的画法进行绘制,清除元素有多种方式,其一,就是取得元素的显示矩 形,然后用视图背景色进行填充,这样会把此区域中的其他元素也清掉,对于“道岔”特 别明显,这种方法也不能清掉元素的名称。其二为用背景色重新绘制该元素,程序中即采 取此种方法。清除掉旧的状态,再按新状态绘制元素,仅绘制状态发生变化的元素,cpu 占用率可降至最低。 当元素的状态发生变化,按新状态绘制后会引发另外一个问题,对于“股道”,其状态 发生变化,重新绘制后,原来在上面的“按钮”,变成了在“股道”的下面,即在“股道” 绘制后,也应该再绘制一下其上面的“按钮”元素。为了解决这个问题,引入了一个“元 素层次”,即每个元素都有一个层次,底层的按钮绘制后,也应该绘制在其上层的元素。 9 3. 站场图模块设计说明站场图模块设计说明 3.1. CZctView 站场图视图类站场图视图类 3.1.1. 概述概述 该类继承自 CScrollView,用来显示站场图,为了简化程序设计,有一个指向站场图站集 的指针,所有的站都按站集处理。在类中有一间隔为 0.1 秒的定时器,在定时器中会递增 ticks 变量。程序中所有时间间隔都依此为基准。 在该类中实现的功能有: 1.鼠标移动停留时对鼠标所指元素的提示框提示功能。 2.对内存位图的自动处理。包括生成,窗口变大时的位图调整。 3.鼠标对站场图的拖动。 4.闪烁元素的自动绘制。 5.站场图的放大缩小。 如要使用站场图模块显示站场图,只要从该类派生出自己的类,增加自己所需的额外功 能即可。 3.1.2. 主要数据成员描述主要数据成员描述 private: / 鼠标移动时的嘀嗒值,用于计算鼠标没有移动的时间 intm_nMouseMoveTick; CPointm_mouseLocPos;/ 鼠标当前的位置 CPoint m_mouseDownPos;/ 鼠标按下的位置 bool m_bRedrawMemBitmap;/ 是否重画内存图 CToolTipCtrl m_tips;/ 提示窗口 CBitmap m_bgdBitmap;/ 内存图 CDC* m_pMemDC;/ 向内存图绘制的DC指针 public: CStationSet *m_pStaSet;/ 显示的站集指针 protected: CSize m_bgdBitmapSize;/ 内存图大小 10 3.1.3. 主要函数描述主要函数描述 CDC *GetMemDC(); 说明:得到向内存图绘制的DC指针,绘制后不用释放,如对DC有的改变,使用后 应恢复以前的设置。 参数:无 返回值:指向内存dc的指针。 void GetLocViewRect(RECT 说明:得到当前的逻辑显示区域。即加上了把滚动条的值。 参数:矩形结构引用 返回值:无 void SetElementsVisible(); 说明:设置元素的可见性,当滚动条滚动逻辑显示区域发生变化,或视图大小发生变 化 时,要重新设置站集中元素的可见性。在以上说说的情况下,系统会自动处理。 该函数外界一般不会使用。 参数:无 返回值:无 void GetLocPos(CPoint 说明:屏幕坐标和逻辑视图坐标的装换。即加上了把滚动条的值。 参数:屏幕坐标值 返回值:无 void ReDraw(); 说明:重新绘制内存图。 参数:无 返回值:无 void FreshViewRect(); 说明:重新计算元素的可见性,并重画视图。 参数:无 返回值:无 void Zoom(float scale); 说明:放大站场图 参数: scale: != 1.0 放缩比例,相对于上次。 = 1.0 还原站场图的原始大小。 返回值:无 11 void SetZctBkColor(COLORREF); 说明:设置背景颜色 参数:颜色 返回值:无 COLORREF GetZctBkColor(); 说明:得到背景颜色 参数:无 返回值:背景颜色 virtual void OnDraw(CDC* pDC); 说明:绘制站场图 参数: 返回值:无 void SetStatusByKgl(MultiStationBuf* pBuf); 说明:根据开关量设置站集状态,并重画状态改变的元素。 参数:站集信息结构 返回值:无 12 3.2. CStation 站场类站场类 3.2.1. 概述概述 该类用于管理一个车站的所有元素。有一个元素数组,来保存该站的所有元素。 该类实现的功能有: 1.载入保存一个站。 2.显示一个站。 3.设置站内元素的可见性。 4.放大缩小站场。 3.2.2. 主要数据成员描述主要数据成员描述 protected: / 车站名称 stringm_name; / 要显示给站的视图的指针 CZctView*m_pZctView; / 站控状态(是否非常站控) boolm_bCtrlStatus; / 背景色 COLORREFm_bkColor; / x,y 方向的放大系数 floatm_xScale; floatm_yScale; / 从站场图配置文件读取的原始放缩比例,是放大缩小倍数的基数。 / 该值初始化后,不会改变,在还原站场图时使用。 floatm_xScale0; floatm_yScale0; / 原点偏移坐标 POINTm_offset; / 默认的画笔宽度 13 intm_nPenWidth; / 显示控制参数 CShowElementPara m_showPara; public: /开关量数组 CTypedPtrArray m_RealKglArray; /实际开关量数组 CTypedPtrArray m_LogicKglArray;/逻辑开关量数组 / 定义各种设备的数组 CZctElementCollection m_zctElements; / 被选中元素列表 CZctElementCollection m_selElements; 3.2.3. 主要函数描述主要函数描述 void ResumeScale(); 说明:还原缩放比例,还原为从站场图文件中载入的缩放比例。 参数:无 返回值:无 float GetScaleRatio(); 说明:得到站场图的放大比例,因为站场图x,y可以分别放大,用x方向的缩放比例 来代替。 参数:无 返回值:站场图的放大比例 const char *Get_Name(); 说明:取得车站名称。 参数:无 返回值:车站名称 void Set_Name(const char *name); 说明:设置车站名称。 参数:车站名称 返回值:无 float Get_XScale (); 说明:取得X方向的缩放比例。 参数:无 返回值:X方向的缩放比例 14 void Set_ XScale (float val); 说明:设置X方向的缩放比例。 参数:X方向的缩放比例 返回值:无 float Get_YScale (); 说明:取得Y方向的缩放比例。 参数:无 返回值:Y方向的缩放比例 void Set_ YScale (float val); 说明:设置Y方向的缩放比例。 参数:Y方向的缩放比例 返回值:无 POINT Get_OrgOffset(); 说明:取得原点偏移坐标。 参数:无 返回值:原点偏移坐标 void Set_OrgOffset(POINT 说明:设置原点偏移坐标。 参数:原点偏移坐标 返回值:无 int Get_PenWidth(); 说明:取得默认的画笔宽度 参数:无 返回值:默认的画笔宽度 void Set_PenWidth(int ); 说明:设置默认的画笔宽度 参数: 默认的画笔宽度 返回值:无 CZctElement* GetElement(POINT pt, CZctElementCollection* pSelectedElements = NULL); 说明:得到指定点处的元素。 参数:pt:指定的点 pSelectedElements:保存选中控件的列表 返回值:指定点处最上层的元素 void GetElements(ObjectType type, CZctElementCollection 15 说明:得到指定类别的元素。 参数:type:要得到元素的类别 List:保存指定类别元素的列表 返回值:无 void GetElemetsInRect(const RECT 说明:得到指定的矩形中的元素列表 参数: rect: 矩形区域 pSelectedElements:得到的元素列表 bAll: true:所有元素,包括不可见,和不需要显示的元素 false:不包括不可见和不需要显示的元素 返回值:无 void Clear(); 说明:清除站场图。 参数:无 返回值:无 virtual int Draw(CDC* pDC, CZctElementCollection* pElementList = NULL); 说明:画指定的元素列表。 参数:pDC:DC指针 pElementList:要画的元素列表 返回值:画的元素个数 bool Draw(CDC* pDC, CZctElement* pElement, DRAWSTRUCT* pds = NULL); 说明:画指定的元素。 参数:pDC:DC指针 pElement:要画的元素指针 pds:绘制元素的信息结构 返回值:是否重画了该元素 bool GetCtrlStatus(); 说明:得到车站的站控状态。此状态从大排队中获得。 参数:无 返回值:该站是否非常站控 virtual bool SearchKgl(); 说明:寻找每个元素的每个开关量所在大排队中的位置。 参数:无 返回值:是否寻找成功 virtual bool LoadFromFile(const char *pszFileName); 说明:从文件中载入站场图。 16 参数:站场图文件的全路径 返回值:是否载入成功 virtual bool SaveToFile(const char *pszFileName); 说明:保存站场图到文件。 参数:要保存文件的全路径 返回值:是否保存成功 void GetZctRect(RECT 说明:得到站场图的大小。 参数:矩形结构引用 返回值:无 void SetElementsVisible(RECT 说明:根据窗口大小,设置各个元素的可见性。 参数:窗口大小 返回值:无 void UpdateElementRedrawList(); 说明:更新元素的重绘列表 参数:无 返回值:无 void SetShowPara(ObjectType type, DWORD para); 说明:设置站内元素显示控制参数。 参数:type:要设置的元素类型 para:显示参数 返回值:无 DWORD GetShowPara(ObjectType type); 说明:得到站内元素显示控制参数。 参数:要得到显示控制参数的元素类型 返回值:显示控制参数 intint GetPenWidth();GetPenWidth(); 说明:得到画笔宽度,此处得到的画笔宽度是乘上缩放比例后的宽度。 参数:无 返回值:画笔宽度 virtual CZctElement* CreateElement(ObjectType type); 说明:根据指定的类型创建一个元素。 参数:指定的类型 返回值:指向创建元素的指针 17 virtual void SetStatusByKgl(CDC* pDC, unsigned char* pDigitBuf, int BufLen, CZctElementCollection* pStaChangedList); 说明:由开关量设置元素状态。 参数:pDC:DC指针 pDigitBuf:指向开关量缓冲区的指针 BufLen:开关量缓冲区长度 pStaChangedList:保存状态改变的元素的列表 返回值:无 BOOL GetKglStatus(KglType Type,int Xh,unsigned char* pDigitBuf,int BufLen); 说明:取开关量状态。 参数:Type:开关量类型 Xh:开关量的序号 pDigitBuf:指向开关量缓冲区的指针 BufLen:开关量缓冲区长度 返回值:开关量状态 void GetFlashStateChanged(CZctElementCollection 说明:得到闪烁状态改变的元素。 参数:保存闪烁状态改变的元素列表 返回值:无 void FlashSync(); 说明:闪烁同步,使元素闪烁的初始状态相同。 参数:无 返回值:无 void GetElementDisRect(RECT 说明:得到指定元素的显示区域。 参数:r:保存要得到元素的显示区域 pElement:指定的元素 返回值:无 void ToElementPoint(POINT 说明:把点转换到没有偏移,缩放比例为1时的位置。 参数:pt:要转换的点 pElement:元素指针 返回值:无 DRAWSTRUCT 说明:设置绘制元素的信息结构。 参数:pDC:DC指针 ds:绘制元素的信息结构 返回值:绘制元素的信息结构 18 voidvoid ClearDisplay(CDCClearDisplay(CDC *pDC,*pDC, CZctElement*CZctElement* pElement);pElement); 说明:清除指定的元素。 参数:pDC:DC指针 pElement:指向要清除元素的指针 返回值:无 voidvoid ClearDisplay(CDC*ClearDisplay(CDC* pDC,pDC, CZctElementCollection*CZctElementCollection* pElementListpElementList = = NULL);NULL); 说明:清除指定的元素。 参数:pDC:DC指针 pElementList:要清除元素的列表 返回值:无 19 3.3. CStationSet 站集类站集类 3.3.1. 概述概述 该类用于管理一个或多个车站。有一个车站数组,来保存该各个车站。 该类实现的功能有: 1.载入保存一个站集。 2.显示一个站集。 3.设置站集内元素的可见性。 4.放大缩小站场。 3.3.2. 主要数据成员描述主要数据成员描述 public: / 车站列表 ZctStationList m_staList; protected: / 站集偏移量 POINTm_offset; / X和Y方向上的缩放比例 floatm_xScale; floatm_yScale; / 显示该站集的视图指针 CZctView*m_pZctView; 3.3.3. 主要函数描述主要函数描述 CStationSet(CZctView* pZctView); 说明:构造函数。 参数:显示该对象的视图指针 CStationSet(); 说明:构造函数 参数:无 20 virtual CStation* CreateStation(); 说明:创建一个单站对象。 参数:无 返回值:指向创建的单站的指针 void SetView(CZctView* pZctView); 说明:设置视图指针,如果在构造该对象时没有设置视图指针,在使用前必须调用该 函数设置视图指针。 参数:显示该站集的视图指针 返回值:无 int Draw(CDC *pDC); 说明:绘制站集。 参数:DC指针 返回值:绘制元素个数 int Draw(CDC *pDC, CZctElementCollection 说明:绘制指定的元素列表 参数:pDC:DC指针 list:要绘制的元素列表 void AddStation(CStation *pStation); 说明:向站集中增加一个单站。 参数:单站指针 返回值:无 void RemoveStation(CStation *pStation); 说明:从站集中移出一个站,该站从内存中被删除,析构 参数:要析构的单站指针 返回值:无 void GetZctRect(RECT 说明:得到站集大小 参数:矩形结构引用 返回值:无 CZctElement* GetElement(POINT pt); 说明:得到指定点处的元素。 参数:指定的点 返回值:指向该点的元素指针 void GetElements(ObjectType type, CZctElementCollection 说明:得到指定类型的所有元素的列表。 参数:type:指定的元素类型 21 list:得到的元素列表 返回值:无 virtual BOOL LoadFromFile(const char *pszFileName); 说明:从文件中载入站集。 参数:文件全路径 返回值:是否载入成功 void Set_XScale(float xScale); 说明:设置X方向上的缩放比例。 参数:X方向的缩放比例 返回值:无 void Set_YScale(float yScale); 说明:设置Y方向上的缩放比例。 参数:Y方向上的缩放比例 返回值:无 void Set_XYScale(float xScale, float yScale); 说明:设置X和Y方向上的缩放比例。 参数:xScale:X方向上的缩放比例 yScale:Y方向上的缩放比例 返回值:无 float Get_XScale(); 说明:得到X方向上的缩放比例。 参数:无 返回值:X方向上的缩放比例 float Get_YScale(); 说明:得到Y方向上的缩放比例。 参数:无 返回值:Y方向上的缩放比例 void Get_XYScale(float 说明:得到X和Y方向上的缩放比例。 参数:xScale:X方向上的缩放比例引用 yScale:Y方向上的缩放比例引用 返回值:无 void SetBkColor(COLORREF bkColor); 说明:设置背景颜色。 参数:背景颜色 返回值:无 22 COLORREF GetBkColor(); 说明:得到背景颜色。 参数:无 返回值:背景颜色 void Zoom(float scale); 说明:放大缩小各站站场图。 参数:scale:1.0:还原各站的缩放率 !=1.0相对当前的放大比例 返回值:无 float GetScaleRatio(); 说明:得到站集的缩放率。 参数:无 返回值:站集的缩放率 void UpdateElementRedrawList(); 说明:更新站集的重绘列表。 参数:无 返回值:无 void SetShowPara(ObjectType type, DWORD para); 说明:设置元素是否显示控制参数, 并更新站各元素显示控制参数。 参数:type:要设置的元素类型 para:显示控制参数 返回值:无 void SetStatusByKgl(CDC* pDC, MultiStationBuf* pBuf, CZctElementCollection* pStaChangedList); 说明:由开关量设置显示状态, 并可取得状态变化的元素列表。 参数:pDC:DC指针 pBuf:多站站场信息结构 pStaChangedList:保存状态改变的元素列表 void SetElementsVisible(RECT 说明:根据视图大小设置元素的可见性。 参数:视图大小 返回值:无 void GetFlashStateChanged(CZctElementCollection 说明:得到闪烁状态改变的元素列表 参数:保存闪烁状态改变元素的列表 返回值:无 23 void FlashSync(); 说明:闪烁同步,使元素闪烁的初始状态相同。 参数:无 返回值:无 void ClearDisplay(CDC *pDC, CZctElement* pElement); 说明:清除指定的元素。 参数:pDC:DC指针 pElement:指向要清除元素的指针 返回值:无 void ClearDisplay(CDC* pDC, CZctElementCollection 说明:清除指定的元素列表。 参数:pDC:DC指针 list:要清除的元素列表 返回值:无 24 3.4. 数据类型数据类型 3.4.1. ObjectType 设备类型枚举设备类型枚举 enum ObjectType otNull = 0,/ 空设备,无效类型 otDcbs= 1,/ 道岔表示 otDaoCha= 2,/ 道岔 otSignal= 3,/ 信号机 otWcqdorGd= 4,/ 无岔区段或股道 otAnNiu= 5,/ 按钮 otBiaoShiDeng = 6,/ 表示灯 otWenBen= 7,/ 文本 otJyj= 8,/ 绝缘节 otArrow= 9,/ 箭头 otTrainNo= 10,/ 车次窗口 otTgq= 11, / 脱轨器 otSignStair= 12,/ 信号楼 otStationDesk= 13,/ 站台 otBridge= 14/ 桥梁 ; 站场元素类型枚举,这里列出了站场图模块现在所支持的所有战场元素的类型。 25 3.5.3.5.CZctLoader_Ini 载入站场图类载入站场图类 3.5.1.CZctLoader 类类 CZctLoader 是所有载入站场图类的基类。其包含一个数据成员 string m_fileName 来保 存文件的路径。 3.5.2. 概述概述 CZctLoader_Ini 类功能是从 INI 配置文件中读取一个站的站场图信息。 过去站场图全是向前兼容不向后兼容,而站场图却经常在更改。这样,只有站场图更 改一点其它用到站场图的模块必须全部更改(即使我不需要更改的那一部分)。为了使老 的站场图模块可以打开新的站场图本模块相对于过去的载入进行了改进,定义了 LoadItem 结构,定义如下: / 载入元素信息结构 struct LoadItem const char m_chFormat; void* m_pAddr; ; m_chFormat 表明载入的变量类d表示 int 型,f表示 float 类型,B表示 BOOL 类型,b表示 bool 类型,s表示 char*类型。m_pAddr 是指向存储该变量的 地址。 3.5.3. 主要数据成员描述主要数据成员描述 要载入的站场图指针。 CStation *m_pStation; 3.5.4. 主要函数描述主要函数描述 CZctLoader_Ini(const char *pszFileName, CStation *pStation); 说明:说明:构造函数 参数:参数:pszFileName:要载入文件的全路径 pStation:载入的车站指针 virtual bool Load(); 说明:说明:载入数据 26 参数:参数:无 返回值:返回值: 是否载入成功 bool LoadItemInfo(CString strInfo, LoadItem item, int nItem); 说明:说明:载入一个元素的信息(不包括开关量) 参数:参数:strInfo:包含元素信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术设计的鞋履创新与表现
- 2025年事业单位工勤技能-湖南-湖南收银员五级(初级工)历年参考题库典型考点含答案解析
- 元宇宙社交平台虚拟现实社交体验优化研究报告
- 2025年事业单位工勤技能-湖北-湖北农机驾驶维修工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北中式面点师四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-海南-海南防疫员四级(中级工)历年参考题库含答案解析
- 2025-2030中国粘钩行业销售动态及需求预测报告
- 2025年事业单位工勤技能-河南-河南护理员二级(技师)历年参考题库典型考点含答案解析
- 2024版生态修复施工合同
- 2024版钢结构建筑消防设施施工合同范本
- 吉安市新庐陵投资发展有限公司及下属子公司2025年第二批面向社会公开招聘笔试备考题库及答案解析
- 2025至2030年中国生长激素行业市场深度研究及投资战略规划报告
- 大疆:2025大疆机场3操作指导书
- 2025年12345热线考试题库
- 2025年卫生健康行业经济管理领军人才试题
- 绿色矿山培训课件
- hiv职业暴露培训课件
- 2025年重庆市高考物理试卷(含答案解析)
- 小番茄栽培技术课件
- 女职工普法宣传教学课件
- (高清版)DB22∕T 5159-2024 预应力混凝土桩基础技术标准
评论
0/150
提交评论