SWAN服务器系统白皮书教学教材

SWAN服务器系统白皮书教学教材
SWAN服务器系统白皮书教学教材

SWAN服务器系统

白皮书(2012.07版)

一、平台基本介绍 (3)

基本工作原理 (3)

系统构成 (3)

二、系统配置 (4)

1、Initsetting.ini (4)

2、mcre.ini (4)

3、Initsetting.ini (4)

4、mcre.ini (5)

5、menu.ini (5)

6、modulesettings.ini (5)

7、Timertrigger.ini、filetrigger.ini、scheduletrigger.ini (6)

8、线程配置文件: (6)

三、系统功能 (6)

1、基本功能: (6)

2、配置和辅助功能: (7)

3、系统附带的调试功能,所有配置文件请遵守默认规则: (7)

四、数据格式 (7)

1、Diamond 35 通用地理标志描述格式 (7)

2、131类格点格式,用于记录多层的格点数据 (8)

3、自动站时序数据 (10)

五、子系统介绍 (12)

1、雷达拼图和外推子系统 (12)

2、实时报警主子系统 (13)

3、云图识别子系统 (13)

3、雷电资料处理子系统 (13)

5、清理子系统 (14)

6、FTP分发子系统 (14)

六、模块二次开发标准 (14)

1.模块和相关文件的要求 (14)

2.系统交换约定和临时文件规则 (16)

3.模块的附属支持 (17)

4.模块的运行流程 (17)

5.线程组的分配原则和线程模块间通讯 (18)

6.信息交换标准 (19)

7.模块开发解说 (19)

一、平台基本介绍

SWAN服务器框架是一个程序调度平台,用来按照条件调度服务器模块运行,发送结果通知给对应的客户端,并维护服务器产品,记录模块运行情况。服务器框架由基本系统,基本配置系统,外接扩展程序和外接配置系统组成。基本系统负责整个系统的基本运行,基本配置系统用来配置基本系统的参数,外接扩展程序用来扩展基本系统的功能,外接配置系统用来配置其他扩展的部分程序。

基本工作原理

基本系统是触发器和线程之间的控制,信息的发送和运行情况的记录的平台,基本系统启动后将运行所有的线程,然后将线程挂起,将触发器和线程相连接,当触发器满足条件时,向对应的线程发出唤醒信号,使线程运行一次,线程运行完后再次进入休眠,等待下一次信号。线程运行过程中的信息被基本系统记录入运行日志。

系统构成

系统由基本系统、基本系统配置、扩展功能库、扩展配置系统组成。基本系统是由线程和触发器组成的调度系统。基本配置系统由路径配置,运行参数配置和模块配置三部分组成,路径配置用来配置系统中的路径参数,根据配置文件的路径设置更改。运行参数用来配置系统的运行设置,包括运行模式,系统备份模式,网络参数。模块配置用来读取配置系统中的模块的相应的INI文件中的计算参数和附加设置。系统的附加功能由外接扩展功能库来实现,目前的系统调试功能,工具菜单都是通过外接扩展功能库来实现。对于模块引入的配置,通过外接配置系统来实现,外接扩展系统是外接扩展功能库的一部分,雷达配置就是一个外接配置模块,专门用来更改拼图模块和雷达特征量报警模块的参数。

系统目录由programpe、procpe、conf、log、doc、tmp六个目录。Programpe 存放系统的主程序和公用动态库。Procpe存放模块程序和外接功能库,其中系统功能的外界库存放在sys子目录下,相关图片资源存放在res子目录下。Conf

存放配置文件,其中系统的配置文件存放在sys子目录下,其他的存放在Conf 目录下,对于一些子参数配置,可以存放在子目录下,但是必须要有一个和模块名同名的配置文件存放在Conf下。Log目录存放运行的日志文件。Doc目录存放一些文档。Tmp目录存放运行时的临时文件,如果清空tmp目录相当于把运行状态重置。

二、系统配置

系统配置位于conf下的sys目录,主配置由5个文件组成:

1、Initsetting.ini

路径的配置定义,系统的输入和输出路径都在这里登记。

2、mcre.ini

系统运行配置文件,基本系统的配置定义。menu.ini 菜单配置文件,扩展菜单的定义文件。modulesettings.ini 模块配置文件定义,需要手工配置的模块文件的对应配置会在这个文件的列表里。timertrigger.ini 时钟触发器配置,用来定义由定时控制的线程的对应时钟触发器条目。Scheduletrigger.ini计划任务触发器配置文件,里面定义了计划任务的规则字串。Filetrigger.ini定义了文件监视触发器的规则条目。一些线程命名的配置文件,记录每个线程的配置信息。其他未说明文件请予以保留,属于未完全规划完的功能所留下的文件。

3、Initsetting.ini

输入输出配置,此文件包含两个段,输入路径和产品路径,输入路径为绝对路径,产品路径为相对路径,系统的路径配置会随着输入路径数目变化自动适应。输入路径配置格式:路径名=绝对路径。

产品路径配置格式:路径名=相对路径。

以上路径名为全局唯一。

4、mcre.ini

框架的主控配置,包括路径设置,系统设置,网络设置和线程设置。路径设置目前只包含产品根路径。

系统设置包括产品压缩,运行模式和产品备份三个主要参数。

网络设置主要包含网络发送的参数,包括发送端口,网络发布模式,对应的客户IP地址。

线程设置包括了系统运行的线程设置,记录的是线程配置文件。格式:线程名=线程配置文件。

5、menu.ini

扩展菜单配置,服务器框架的大多数功能都是通过扩展菜单配置来实现的,扩展菜单配置格式为:菜单显示名=父菜单ID|图标|处理的动态库|处理的函数兼ID|菜单风格。一共五个段,用”|“分割。当该菜单不存在其中一个段的变量时,用NULL表示。

父菜单ID为此菜单建立在哪个菜单上,如果为NULL,则为顶层菜单。

其中图标为位于procpe目录下的res中的png文件名。

处理的动态库位于procpe下sys目录中的动态库。

处理的函数为动态库中的导出函数,建立菜单的时候同时会用这个函数名作为菜单的ID,这样其他菜单可以建立在这个菜单上。

菜单风格为菜单和工具栏的风格,一共五个关键词:NULL、TOOLBARICON、TOOLBARSEP、MENU、MENUSEP,分别为空,即普通菜单、在工具栏放置图标、,普通工具栏分割条,父菜单,即其他菜单可以建立在这个菜单下、菜单栏分割条。

6、modulesettings.ini

配置模块配置对话框中可用的条目,默认基本系统中模块配置是没有可选的配置项,只有在modulesettings.ini中加入条目的时候,才会在模块配置中出

现条目。配置的格式为:显示名=配置文件名。

7、Timertrigger.ini、filetrigger.ini、scheduletrigger.ini

时钟触发器的配置文件,格式为:每一行一个触发器的配置。时钟运行以秒为单位,到符合触发器的条件时,便像配置中的线程发送一次运行消息。

定时器配置格式:触发器名=时钟间隔|激活的线程名|激活的方式

文件监视配置格式:触发器名=监视目录|激活的线程名|激活的方式|延时时间计划任务触发器配置格式:触发器名=时间规则|激活的线程名|激活的方式激活线程名可以是多个,使用逗号“,“来分割,激活方式为S或者A,S为设置运行一次,A为在原来的基础上增加一次。原则上以使用S为主,增加方式在某些运行时间较长的时候会造成连续运行,原则上运行的时间间隔按照系统运行性能来配置,有多个激活线程时,激活方式也要有多个,一个线程名对应一个激活方式,均使用”,“来分割。

8、线程配置文件:

线程配置文件用来配置线程中的程序,格式为每一行一个程序配置,不需要总体的数目项。配置格式为:程序名=激活线程|激活方式|最大时限,其中激活线程和激活方式与触发器相同,不存在对应激活线程是用NA填充。最大时限为程序运行的最大时间限制,超过该时间程序被强行中止,并记录超时,时间单位为秒。

三、系统功能

1、基本功能:

基本功能主要为调度功能,包含运行、停止和退出,点击运行后,系统就按照触发器条件唤醒线程进行计算处理。

2、配置和辅助功能:

配置功能由外挂功能库市县,具体情形所带的模块不同。一般带有路径配置、运行配置和模块配置。,附加功能包含清理、配置保存、配置加载。

3、系统附带的调试功能,所有配置文件请遵守默认规则:

开发版本具有调试菜单,位于工具->调试菜单下

运行选中程序:运行左边列表栏中选中的程序。

当前程序配置:打开左边列表中选中程序的配置文件

当前线程配置:打开当前选中线程的配置文件

定时器配置:打开时钟触发器配置文件。

文件监视配置:打开文件监视触发器配置文件

任务表配置:打开计划任务触发器配置文件

INI条目配置:编辑模块配置的INI文件

系统主配置:编辑mcre.ini主配置文件,可以在其中打开或者关闭某个线程

资料路径配置:编辑系统的输入输出路径初始化配置

外挂菜单配置:编辑系统的外挂功能菜单

系统注册配置:组件系统的安装信息

添加空白线程:添加一个空白线程的配置文件并且载入

四、数据格式

SWAN中的数据格式主要是3类:35类格式、131类格式和自动站时序文件。请注意版本更新时的格式更新变化

1、Diamond 35 通用地理标志描述格式

35类格式普遍应用在SWAN中,用来表述报警,用户自定义地图等地理性质

的数据,35类数据格式存储数据的位置和属性,具体的显示方式由配置和显示引擎来决定,35类数据读取必须采用解释行的行读取,首先判断行的标记,然后才可以读取后续数据。35类数据是文本文件,文件后缀TXT:Diamond 35 文字描述

TAB(类型描述符)文件生成时间记录条数无效记录表达值

记录字段数字段1名字段2名字段3名 .......

记录类型记录坐标点数

经度纬度高度

经度纬度高度

经度纬度高度

.....

字段1 字段2 字段3 .......

其中记录类型分为:POINT(点),MULTIPOINT(多个点),PLINE(线条),POLYGON(多边形)

TAB下一行必须是表格定义,中间不能加空行

TAB和TABALM合并处理,不再区分报警,报警使用文件名判断

2、131类格点格式,用于记录多层的格点数据

131格式经过数次修订,目前大多数数据仍未1.0格式,但是显示引擎已经能够解析2.0格式的数据,具体应用可以根据情况使用相应版本的格式,主要是从后面的Reserved中修改为对应版本的大小。保证文件头格式总长度1024个字节。

说明:(老版本文件头长256字节,蓝色字段在老版本中不存在,只在新版本中存在。新旧版本的判断在Flag[8]字段,如果内容是“SWAN”则是新版本,否则为老版本),站点设置一般供雷达用,也可用于其他,只有20个空位char ZonName[12]; // diamond 131 12个字节

char DataName[38];//数据说明(例如 2008年5月19日雷达三维拼图)38个字节

char Flag[8]; // 文件标志,"swan"

char Version[8]; // 数据版本号,"1.0" 目前为2.0

unsigned short int year;//2008 两个字节

unsigned short int month;//05 两个字节

unsigned short int day;//19 两个字节

unsigned short int hour;//14 两个字节

unsigned short int minute;//31 两个字节

unsigned short int interval ; //两个字节

unsigned short int XNumGrids;//1300 两个字节

unsigned short int YNumGrids;//800 两个字节

unsigned short int ZNumGrids;//20 两个字节

int RadarCount; //拼图雷达数四个字节

float StartLon; //网格开始经度(左上角)四个字节

float StartLat; //网格开始纬度(左上角)四个字节

float CenterLon;//网格中心经度四个字节

float CenterLat;//网格中心纬度四个字节

float XReso; //经度方向分辨率四个字节

float YReso; //纬度方向分辨率四个字节

float ZhighGrids[40];//垂直方向的高度(单位km)数目根据ZnumGrids 而得(最大40层) 160个字节。

char RadarStationName[20][16]; //相关站点名称, 20*16字节

float RadarLongitude[20]; //相关站点所在经度,单位:度, 4*20字节

float RadarLatitude[20]; //相关站点所在纬度,单位:度, 4*20字节

float RadarAltitude[20]; //相关站点所在海拔高度,单位:米,4*20字节

unsigned char MosaicFlag[20]; //该相关站点数据是否包含在本次拼图中,未包含:0,包含:1, 20字节

//数据类型定义,版本号为.=1.5

short m_iDataType; //0-unsigned char 1-char 2-unsigned short

3-short 4

//每一层的向量数,版本=2.0

short m_iLevelDimension;

char Reserved[168];

接下来是数据块,从底层到高层进行排列共ZnumGrids层。一个字节存储一个数据,值的范围0-255,2*dBZ+66等于该字节的值。每层的数据从起始点(左上角)开始,按维向(纬度y)减小写每行的经向(经度x增大)数据。

具体数据的记录值约定:

组合反射率、CAPPI率数据值为单字节,范围0-255,2*dBZ+66等于该字节的值。回波顶高、垂直液态水含量、垂直液态水含量密度、一小估算降水等数据为两字节整数(short int),回波顶高单位为0.1 km,垂直液态水含量单位为0.1 kg/m2,垂直液态水含量密度单位为0.1 kg/m3,一小估算降水单位为0.1 mm,范围0-203(大于203的全部等于203)每层的数据从起始点(左上角)开始,按维向(纬度y)减小写每行的经向(经度x增大)数据。其他产品存储的必须为实际值,存储和实际值之间不得再有转换的公式。

3、自动站时序数据

自动站时序数据是二进制格式,包含了若干时长的自动站数据,文件首先包含文件头:

typedef struct tagSerialFile15

{

char szFlag[16];//标记=SwanCycle

short nVer;//版本=15 2011年月日从Int改为Short型

int nDataOffset;//数据区开始的位置,从文件头开始计算

short nIndex;//2011年月日增加了最新记录的索引号

char szRecordTime[16];//记录时间

int nRecordInterval;//标准的观测间隔

int nTotalTime;//记录时长

int nTotalSta;//站点的个数

相关主题
相关文档
最新文档