单向卫星通讯接收和数据处理线程接口技术手册_第1页
单向卫星通讯接收和数据处理线程接口技术手册_第2页
单向卫星通讯接收和数据处理线程接口技术手册_第3页
单向卫星通讯接收和数据处理线程接口技术手册_第4页
单向卫星通讯接收和数据处理线程接口技术手册_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 1 -单向卫星通讯接收和数据处理线程接口技术手册项目负责人: 编 写: 武剑锋 朱立 庹军民审 核: 庹军民批 准:客 户 确 认:上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 2 -正文目录1 引言 31.1 目的 31.2 参考资料 31.3 定义 32 用途 43 运行环境 53.1 硬件设备 53.2 支持软件 53.3 数据说明 53.3.1 配置文件 dxwx.cfg.53.3.2 报文 83.3.3 行情、文件、短消息 任务起始报文控制信息 83.3.4 成交回报数据传送任务报文 103.3.5 通讯数据报文 104 使用规程 124.1 安装 124.2 运行 124.2.1 单向卫星通讯接收和数据处理主程序 124.2.2 数据处理示范程序 BaseLibDemo.exe.145 用户开发数据处理程序说明 155.1 应用程序编程接口说明 155.2 应用程序编程示范文件说明 166 出错处理和恢复 19表目录表 1 报文格式 .8表 2 文件类报文起始控制信息格式 8表 3 成交回报数据格式 10表 4 单向卫星通讯数据报文结构 11图目录图 1 数据传递过程示意图 .4图 2 接收端的数据格式变换 .5上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 3 -引言1.1 目的本用户手册的读者是各个会员单位的系统程序员。本用户手册的主要目的是为了指导会员单位接收和处理上海证券交易所通过单向卫星发送的数据。1.2 参考资料 单向卫星数据接收和处理线程接口源代码 庹军民、朱立 内部资料 Dx2000.dll 使用指南 庹军民、 朱立 单向卫星客户端接收软件用户使用手册 朱立1.3 定义 数据传送任务:指从上海证券交易所向会员单位发送数据的一次完整过程。包括行情、成交回报、文件、短消息传送任务。每个任务都被赋予一个唯一的任务号。 A 格式通讯数据报文:指单向卫星通讯系统的 PC 接收机以太网卡接收到的基于 UDP 协议的数据报文 。 B 格式业务数据报文:指单向卫星通讯系统传输的业务数据报文 。列如行情数据 ,成交数据 ,文件数据,消息数据 。 报文:每个数据传送任务在传输中,按照固定大小的数据包的方式来组织。这些数据包被称为报文。 任务起始报文、任务中间报文、任务结束报文:数据传送任务中待传送数据的长度不等,而报文的最大长度是固定的,如果一个任务中的数据不能在一个报文中一次传送完毕,一个任务会被分为一系列的报文。其中第 1个报文就是任务起始报文,最后一个报文就是任务结束报文,而中间的所有报文都被称为任务中间报文。 通讯接收线程:指运行在会员单位计算机上的从单向卫星中取数据的线程。 环形报文队列:在计算机上开辟一块共享内存,这块内存按照环形队列的方式组织。它们作为报文的缓冲空间,用来匹配单向发送/通讯接收/ 数据处理的速度。 数据处理线程:指运行在会员单位计算机上的从环形报文队列中取报文的线程,它在取到报文后,经过一定的处理过程,按照文件的方式写入本地计算机的硬盘。 多点传送方式:上海证券交易所向多个会员单位同时广播发送,具体采用UDP 协议的 MULTICAST 方式来完成。 单点传送方式:上海证券交易所向特定会员单位单一发送,具体采用 UDP协议的 UNICAST 方式来完成。 行情数据 HQ:指交易所向会员单位发送的有关股票交易的最新价格、成交上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 4 -量等。这些数据通过多点传送方式发送。 成交回报数据 CJ:指交易所向会员单位发送的专有的成交纪录。这些数据通过单点传送方式发送。 文件数据 FILE:指交易所向会员单位发送的文件。这些文件既有通过多点发送的,也有通过单点发送的。 短消息数据 MSG:指交易所向会员单位发送的短消息。这些文件既有通过多点发送的,也有通过单点发送的。 SatelliteReceiver.exe:上海证券交易所提供的单向卫星通讯接收和数据处理主程序。 BaseLibDemo.exe: 上海证券交易所提供的数据处理示范程序,会员单位可以此为参考,实现自己特定的专有的数据处理程序。2 用途本接口的功能有两个独立的部分构成。一个部分是通讯接收部分,它从单向卫星上把数据取下来,然后放到内存中的环形报文队列中去;另外一个部分是数据处理部分,它从这个环形报文队列中把报文数据取出,经过特定的合并转化等操作,写出到文件中去。上海证券交易所提供的单向卫星通讯接收和数据处理主程序SatelliteReceiver.exe 在一个程序内实现了这两个部分。为支持会员单位更加紧密地结合他们的信息系统,SatelliteReceiver.exe 中的第二部分数据处理部分可以被禁止,由会员单位独立开发自己的专有的数据处理部分并替换。如图 1 所示,用户可以禁止 SatelliteReceiver 的数据处理线程,而启动BaseLibDemo 的数据处理线程。Sateli dsh Sateli从 卫 星 上得 到 的 原始 数 据 通 讯 接 收 线 程写 环 形 报 文 队 列 SateliRecivr数 据 处 理 线 程 读BaseLibDmo数 据 处 理 线 程 读 写入磁盘或显示上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 5 -图 1 数据传递过程示意图单向卫星通讯和业务数据在小站接收端的数据格式变换如图 2 。A 格式通讯数据报文参见 3.3.5 , B 格式业务数据报文参见 3.3.3 ,3.3.4 。8 PortA 格式通讯数据报文图 2 接收端的数据格式变换本系统的使用范围只限于上海证券交易所的会员单位。3 运行环境3.1 硬件设备本软件所需硬件的最少配置为可运行 Windows NT 4.0 或以后版本的 PC 机或 PC 服务器。建议采用相对高档的机器,以保证系统的稳定性。例如下列配置: Pentium III 800 以上处理机 128M 字节以上内存 2G 以上硬盘3.2 支持软件单向卫星数据接收和处理线程接口只能在 Windows 32 位操作系统之上运行。比如 Windows NT4.0 或 Windows 2000。A 格式通讯数据报文 Sh Mem DLL API B 格式业务数据报文通讯报文头 通讯报文体 (B 格式业务数据报文)上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 6 -3.3 数据说明3.3.1 配置文件dxwx.cfg本软件运行所必需要数据文件就是配置文件 dxwx.cfg。它的初始产生来源是上海证券交易所。它的存储位置位于单向卫星数据接收和处理线程接口的安装目录。会员单位可以按照需要修改它。这个文件的作用是定义不同数据在多点传送/单点传送 /下的配置参数。它的格式遵循 Windows 中 INI 文件的规则。为多点传送通讯接收线程服务的参数有:RUNCOMMAND:启动通讯接收线程标志,为 0 表示不启动,为 1 表示启动,不允许使用其他值。INTERFACE:指定会员单位计算机的 IP 地址。这个 IP 地址即可以通过在命令行输入 IPCONFIG 获得,也可通过选择网络协议 TCP/IP 的属性来得到。PORT:上海证券交易所指定通讯接收线程使用的 UDP 端口。如果安装单向卫星通讯接收和数据处理接口的计算机同时也支持其他服务,请查询会员单位自身的网络管理员,确保这台接口计算机没有占用上海证券交易所指定的UDP 端口。WANTTIMEOUT:超时出错的上限数值。缺省为-1,表示无超时限制;20表示为 20 秒超时限制,即如果 20 秒内通讯接收线程都没有接收到单向卫星广播来的任何数据,通讯接收线程将退出。DCLASSIPADD:上海证券交易所指定的一个 D 类的广播地址。 在没有更新卫星设备时,不必修改这个值。多点传送包括行情数据、文件数据、短消息数据。在一个 IP 地址为172.18.17.52 的机器上,配置文件中多点传送行情数据参数设定的示例如下:CONFIGMULTICAST_HQRUNCOMMAND=0INTERFACE=172.18.17.52PORT = 3456WANTIMEOUT = -1 DCLASSIPADD= 234.5.6.7为单点传送通讯接收线程服务的参数有:RUNCOMMAND:启动通讯接收线程标志,为 0 表示不启动,为 1 表示启动,不允许使用其他值。INTERFACE:指定通讯接收线程使用的 IP 地址。这个 IP 地址即可以通过在命令行输入 IPCONFIG 获得,也可通过选择网络协议 TCP/IP 的属性来得到。PORT:上海证券交易所指定通讯接收线程使用的 UDP 端口。 。如果安装单上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 7 -向卫星通讯接收和数据处理接口的计算机同时也支持其他服务,请查询会员单位自身的网络管理员,确保这台接口计算机没有占用上海证券交易所指定的UDP 端口。WANTTIMEOUT:超时出错的上限数值。缺省为-1,表示无超时限制;20表示为 20 秒超时限制,即如果 20 秒内通讯接收线程都没有接收到单向卫星广播来的任何数据,通讯接收线程将退出。单点传送包括成交回报数据、文件数据、短消息数据。在一个 IP 地址为172.18.17.52 的机器上,配置文件中单点传送成回报数据参数设定的示例如下:CONFIGUNICAST_CJRUNCOMMAND= 0INTERFACE=172.18.17.52PORT = 4001WANTIMEOUT = -1为多/单点传送数据处理线程服务的参数有:HQ_RUNCOMMAND: 启动行情数据处理线程标志,设为 0 就使得在程序启动后不启动行情数据处理线程,设为 1 就使得在程序启动后启动行情数据处理线程,不允许使用其他值。HQ_FILEPATH:定义行情数据处理线程在收到数据后,行情文件的存储路径。CJ_RUNCOMMAND: 启动成交回报数据处理线程标志,设为 0 就使得在程序启动后不启动处理线程,设为 1 就使得在程序启动后启动处理线程,不允许使用其他值。CJ_FILENAMEPATH:定义成交回报数据处理线程在收到成交回报数据后,存储成交回报文件的文件名。FILE_RUNCOMMAND: 启动文件数据处理线程标志,设为 0 就使得在程序启动后不启动数据处理线程,设为 1 就使得在程序启动后启动接收线程,不允许使用其他值。FILE_FILEPATH:定义文件数据处理线程在收到数据后,文件的存储路径。MSG_RUNCOMMAND: 启动短消息处理线程标志,设为 0 就使得在程序启动后不启动处理线程,设为 1 就使得在程序启动后启动处理线程,不允许使用其他值。MSG_FILEPATH:定义短消息数据处理线程在收到数据后,短消息文件的存储路径。示例如下:USER_MULTICASTHQ_RUNCOMMAND = 0 HQ_FILEPATH = C:TempokMultiCastHQCJ_RUNCOMMAND = 0 CJ_FILENAMEPATH = C:TempokMultiCastCJCJHB.DBF上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 8 -MSG_RUNCOMMAND = 0MSG_FILEPATH = C:TempokMultiCastMSGFILE_RUNCOMMAND = 1 FILE_FILEPATH = C:TempokMultiCastFILEUSER_UNICASTHQ_RUNCOMMAND = 0 HQ_FILEPATH = C:TempokUniCastHQCJ_RUNCOMMAND = 0 CJ_FILENAMEPATH = C:TempokUniCastCJCJHB.DBFMSG_RUNCOMMAND = 0MSG_FILEPATH = C:TempokUniCastMSGFILE_RUNCOMMAND = 0 FILE_FILEPATH = C:TempokUniCastFILE3.3.2 报文一个任务在整个传送过程中被划分为 1 个起始报文、多个中间报文和 1 个结束报文。每个报文的格式如下:表 1 报文格式任务号 Int 4 bytes 同一任务的各个任务报文具有相同流水号。报文号 Int 4 bytes 启始报文的报文号为 1 (如果整个任务仅含一条报文,那么报文号是-1,这时该报文同时作为任务终止报文。其后的若干中间报文报文号的值以 1 为单位递增,比如从 2 开始到(N-1)终止报文报文号的值是(-N)。任务类型 Int 4 bytes 该字段现在不被使用! 用户可以忽略该字段。数据体长度 Int 4 bytes 指定其后附加的数据体的以字节为单位的长度数据体 可变长因为采用 UDP 协议来传输数据, 所以实际收到的报文可能会丢失,造成上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 9 -报文号不连续,这些错误检测应当由数据处理线程完成。3.3.3 行情、文件、短消息 任务起始报文控制信息行情、文件、短消息这 3 种任务实质上就是在不同端口的文件传送,这些文件在整个传送过程中被划分为 1 个起始报文、多个中间报文和 1 个结束报文。在这 3 种任务的起始报文的实际数据之前,插入了定义文件参数的控制信息。格式定义如下: 表 2 文件类报文起始控制信息格式文件名称 Char 16 bytes文件原长度 Int 4 bytes文件时间 Int 4 bytes 文件最后修改时间,卫星接收落地后应设置其于数据原端一致。若该值为 0,不用修改。暂时固定为 0文件日期 Int 4 bytes 同上压缩方式 Char 1 byte 0 代表不压缩1 代表压缩方式 12 代表压缩方式 2目前暂时固定为 0加密方式 Char 1 byte 0 代表不加密1 代表加密方式 12 代表加密方式 2目前暂时固定为 0写方式 Char 1 byte 0:任意1:创建 create2:更新 update3:追加 append4:独占创建5:独占更新6:独占追加文件类型 Char 1 byte 0:任意文件1:txt 文件2:dbf 文件3:exe 文件暂时固定为 0预留 待定 32 bytes文件内容的一部分 char 数据体中剩余空间例一:下面是属于 MSG 任务 6 的各个报文的样例,报文的内容假设是:上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 10 -“c98765432100123456789abcd”。任务号报文号任务类型数据体长度 数据体6 1 1 65 c6 2 1 10 98765432106 3 1 10 01234567896 -4 1 4 abcd表中浅灰色的部分表示任务启始报文的数据体的报文控制信息,指明所传送的是什么文件,打开方式等等。其中报文号是 1 的那一行是任务 6 的任务起始报文,报文号是 2、3 的那两行是任务传送报文,报文号是-4 的那行是任务终止报文。例二:下面是属于 MSG 任务 9 的各个报文的样例,该任务只有一个报文。报文的内容假设是:“good night” 。任务号报文号任务类型数据体长度 数据体9 1 -1 74 good night表中浅灰色的部分表示任务启始报文的数据体的文件信息结构,指明所传送的是什么文件,打开方式等等。3.3.4 成交回报数据传送任务报文成交回报数据传送任务与文件类传送任务不同,在头部不需要与文件有关的控制信息。并且由于它的长度是可预制的,可以在一个报文内传送完毕,所以该类任务由一个任务报文组成,即任务启始报文,同时也是任务终止报文。它的格式如下:成交回报数据流的 C 语言的结构如下, (long 类型的数据需要网络字节序转换,利用 ntohl() 。short 类型的数据需要网络字节序转换,利用 ntohs() ) 。typedef struct QBCJ_TAGlong lxh; /成交回报流水号long lCJBH; /交易所总成交编号long lCJSL; /成交数量long lSCYE; /上次余额 ,用于计算 BCYE = lSCYE +/- lCJSL 。long lSBSJ; /申报时间long lCJSJ; /成交时间long lCJJG; /成交价格long lTEORDNUM; /主机的委托合同号char sGSDM5; /公司代码char sMJBH5; /马甲编号上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 11 -char sGDDM10;/ 股东代码char sZQDM6; /证券代码char sSQBH10;/ 申请编号short LotSize; /积数 。用于计算成交金额 = lCJSL * LotSize char cBS; /买卖char remain9 ;QBCJ;表 3 成交回报配置文件 CJHB.CFG 数据格式说明Field Field Name Type Width Dec 1 GDDM Character 10 2 GDXM Character 8 3 BCRQ Character 8 4 CJBH Numeric 8 5 GSDM Character 5 6 CJSL Numeric 10 7 BCYE Numeric 10 8 ZQDM Character 6 9 SBSJ Character 6 10 CJSJ Character 6 11 CJJG Numeric 8 3 12 CJJE Numeric 12 213 SQBH Character 10 14 BS Character 1 15 MJBH Character 5 16 XUHAO Numeric 8 17 TEORDNUM Numeric 8 * Total * 130注 在 CJHB.CFG 文件中以下字段:BCRQ 可取当地 PC 机日期 。GDXM 没使用 。BCYE = lSCYE (+/-) lCJSL (+/-)根据买卖方向 。CJJE = lCJSL * LotSize /1000.03.3.5 通讯数据报文8 个数据接收端口接收的数据结构是统一的。其数据结构包含数据头和数据体。结构如下:上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 12 -表 4 单向卫星通讯数据报文结构通讯数据报文数据结构PacketID 4Bytes 任务号 。同一任务有唯一的任务 ,任务号是从 1,2,3NSerialNum 4Bytes 同一任务号的数据包序号 。序号是从 1,2,3.N 。-N 表示同一任务号的数据包的结束。-1 表示只有一个数据包。N 的绝对值小于或等于128 。Length 4Bytes 通讯数据报文体长度 。长度=1While(TRUE)从环形队列中取出下一个报文 Pprevtask = currtask;prevnum = currnum;currtask = P 的任务号currnum = P 的报文号if(currtask 不等于 prevtask ) / 判断是否新任务!If( (P 的报文号是 1 或-1) /是新任务的任务起始报文解读数据体,根据要求产生并打开文件 F向 F 写入任务起始报文中包含的文件内容上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 20 -else If( (P 的报文号不是 1 或-1)/ 没找到任务起始报文!是一种错误记下本次任务发生了该种错误continueelse / currtask 等于 prevtask, 还在同一个任务中if(该任务的处理过程中已发现有出错现象)continue; / 忽略 P,不写入文件if(P 的任务号的绝对值与前一个包的任务号相比是连续的) / 正确,符合规范将 P 数据体写入文件 Felse / 不正确记下本次任务发生了该种错误continue;if(P 是任务终止报文)关闭文件 F/ end of while6 出错处理和恢复运行过程中可能会出现下列错误信息,本节列出针对这些出错请情况,给出恢复方法。表 6 出错处理英文错误信息 中文含义 解决方法The windows platform 操作系统必须是 win nt 选择安装 winnt 或 上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 21 -should be winnt or win2000或 win2000 win2000 的机器运行。Can not start WSAStartup()不能启动 Windows Socket因为操作系统的网络协议安装或者配置有误,请咨询本营业部网络管理员。Windows sockets dll is not of version 2.2Windows socket 动态连接库的版本不是 2.2 以上因为操作系统的 TCP/IP 驱动程序版本不够,请本营业部网络管理员协助安装 2.2 以上的Windows Socket 驱动。The low level function does not exist底层函数不存在 同上The length of IP address %s is not correct. It is %d bytes now!IP 地址长度不对。 配置文件 dxwx.cfg 中的INTERFACE 参数设置不正确。请输入 ipconfig 或咨询本营业部网络管理员获得正确的 IP 地址,然后修改 dxwx.cfgCan not recognize IP address %sIP 地址格式不对。 同上Class D IP %s is not correctD 类广播地址不对 配置文件 dxwx.cfg 中的DCLASSIPADD 参数设置不正确。请咨询上海证券交易所通信公司获得正确的地址,然后修改 dxwx.cfgCan not create network event不能创建网络事件 内部严重错误,发生的原因可能是系统资源不够,请重新启动系统再试。Can not reuse ip, the error code is %d不能重用 IP 同上Can not bind to address, the error code is %d不能绑定地址 端口可能已经被占用,请检查配置文件中定义的端口是否已经被其他应用程序占用。Can not set TTL, the error code is %d不能设定 TTL 网络严重错误,请重新启动系统再试。Can not join into IP group address %s, the error code is %d不能加入 IP 分组 同上Can not get data buffer to write得不到用来写入数据的缓冲内部严重错误,发生的原因可能是系统资源不上海证券交易所 单向卫星通讯接收和数据处理线程接口 技术手册 1.0 2001-4-5- 22 -够,请重新启动系统再试。WSARecvFrom() return error code %dWindows Socket 接收函数报错网络错误,请重新启动系统再试。No data received on port %d for a long time, WAN timeout端口%d 上长时间没有收到数据,超时出错。单向卫星在配置文件中TIMEOUT 指定的时间内没有收到数据,请联系上海证券交易所通讯公司Application is already running应用程序正在运行 程序已经运行,不必再次启动。Can not find file %s 找不到文件 请检查安装是否正确No Interface IP specified 没有定义接口 IP 请检查 dxwx.cfg 中INTERF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论