欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    用能计费系统C++程序概要设计说明书 V1.00.pdf

    • 资源ID:95341141       资源大小:3.81MB        全文页数:52页
    • 资源格式: PDF        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用能计费系统C++程序概要设计说明书 V1.00.pdf

    用能计费系统用能计费系统 C+C+程序程序概要设计说明书概要设计说明书 V1.00V1.00文件编号生效日期受控编号保密级别版 本 号修改次数2总 页 数正文附录无编制审核批准评审记录评审记录对用能计费系统 C+程序 概要设计说明书 V1.00的评审意见:上述问题修改验证后,由上述问题修改验证后,由验证后,本文件即可发布。验证后,本文件即可发布。评审人员签字:问题修改验证结果:完成。验证人签字:时间:年月日变更日志变更日志编号版本修改内容修改人修改日期1V0.01初稿2V0.02增加 WebService 与 Web 的充值流程。3V0.03增加 Webservice 与 Web 除充值以外的其它流程。目目 录录1 引言.11.1 编写目的.11.2 背景.11.3 定义.11.4 参考资料.22 总体设计.32.1 需求规定.32.1.1 功能边界.32.1.2 非功能性要求.32.2 运行环境.32.2.1 硬件环境.32.2.2 软件环境.42.3 概要设计决策.42.3.1 设计原则.42.3.2 设计决策.42.4 开发环境.52.5 功能模块划分.52.5.1 冻结数据入库服务程序(TSSampleDataSvr.exe).52.5.2 数据接入服务器(FDA.exe).52.5.3 数据网关服务客户端(TSWebService_ClientU.exe).52.5.4 TSServerU.exe 与 FDA.exe 间的充值流程.52.5.5 TSServerU.exe 与 FDA.exe 间的遥控流程.52.5.6 TSServerU.exe 与 FDA.exe 间的点抄流程.62.5.7 TSServerU.exe 与 FDA.exe 间的费率设置流程.62.5.8 TSWebService_MCS_WDU.exe 里的接口流程.62.6 系统结构.72.6.1 万达生产环境组网图.72.6.2 万达现阶段内场测试环境组网图.83 模块设计.93.1 冻结数据入库服务程序(TSSAMPLEDATASVR.EXE).93.1.1 功能描述.93.1.2 数据流程.93.1.3 接口定义.93.1.4 配置文件定义.103.1.5 日志定义.103.1.6 性能边界定义.103.1.7 安全性设计.113.2 数据接入服务器(FDA.EXE).113.2.1 功能描述.113.2.2 特性.133.2.3 内部结构图.143.2.4 初始化流程.143.2.5 功能点.153.3 数据网关服务客户端(TSWEBSERVICE_CLIENTU.EXE).183.3.1 功能描述.183.3.2 数据流程.193.3.3 接口定义.193.3.4 配置文件定义.203.3.5 日志定义.203.3.6 性能边界定义.203.3.7 安全性设计.203.4 TSSERVERU.EXE与 FDA.EXE间的充值流程.213.4.1 数据流程.213.4.2 报文格式.213.5 TSSERVERU.EXE与 FDA.EXE间的遥控流程.223.5.1 数据流程.223.6 TSSERVERU.EXE与 FDA.EXE间的点抄流程.233.6.1 数据流程.233.6.2 与 redis 的接口定义.233.6.3 报文格式.233.7 TSSERVERU.EXE与 FDA.EXE间的费率设置流程.243.7.1 数据流程.243.7.2 报文格式.243.8 TSWEBSERVICE_MCS_WDU.EXE里的接口流程.243.8.1 充值流程.243.8.2 抄表流程.293.8.3 遥控流程.333.8.4 加减表流程.343.8.5 费率(调价)流程.374 质量要求.454.1 容量要求.455 系统安全设计.465.1 应用系统安全性设计.465.2 数据存储安全性设计.46用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 1 页1 1 引言引言1.11.1 编写目的编写目的本文档是对万达计费项目的 C+程序功能而编写,主要定义业务流程、接口定义、相关的数据库表定义等。本文档面向的读者是:万达计费系统相关的 C+程序。1.21.2 背景背景原 666 强弱电一体化平台系统软件 V1.30 及 MCSV1.17 以前的版本,在业务、规模及相关功能上无法支撑万达计费项目的客户需求,在此基础上对客户需求进行分析、筛选并结合目前系统的架构,对功能进行升级/完善、规模扩充,实现对万达各广场电表的智能管理,给运维人员、实际的客户提供便利。1.31.3 定义定义下表列出本报告中专门术语的定义、英文缩写词的原词组和意义、项目组内达成一致意见的专用词汇,同时继承全部的先前过程中定义过的词汇。词汇名称词汇名称词汇含义词汇含义备注备注TSTable Sample,采样表,用来存储历史采样数据WebService能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。WebService 是自描述、自包含的可用网络模块,可以执行具体的业务功能,业务功能主要是与后台服务器进行通讯,获取需要的实时数据。CPU中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Contro Unit)。主要包括运算器(ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机五大核心部件。UPSUninterruptiblePowerSystem/UninterruptiblePowerSupply,不间断电源,是将蓄电池(多为铅酸免维护蓄电池)与主机相连接,通过主机逆变器等模块电路将直流电转换成市电的系统设备。主要用于给单台计算机、计算机网络系统或其它电力电子设备如电磁阀、压力变送器等提供稳定、不间断的电力供应。KVAKiloVolt-Ampere,变压器在额定状态下的输出能力的保证值,单位用千伏安(kVA)表示(伏安 VA 与兆伏安 MVA 不常用),由于变压器有很高运行效率,通常原、副绕组的额定容量设计值相等。IISIIS 是 Internet Information Services 的缩写,是一个 World WideWeb server,是由微软公司提供的基于运行 Microsoft Windows的互联网基本服务。666 系统666V1.3 强弱电一体化平台系统软件,简称 666 系统FDA 程序Front Data Access,前置数据接入服务器,用于 666 系统与集中用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 2 页器或前置通讯管理程序的通讯。TSServerU.exe666 系统中的服务器程序软件1.41.4 参考资料参考资料编号资料名称说明1万达智能电表管理平台 需求规格说明书 V1.00.doc2C+编程规范.doc3666 能源管理系统平台软件 V1.1 数据库设计说明书 V1.00.doc4软件版本规范草稿.doc5与第三方厂商数据采集器和电表之间的接口要求.docx6万达系统对接技术约定.docx7三家技术约定.docx8租赁系统接口-V1.9.docx9租赁第三期数据结构 1.0.docx用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 3 页2 2 总体设计总体设计2.12.1 需求规定需求规定2.1.12.1.1 功能边界功能边界2.1.22.1.2 非功能性要求非功能性要求1、对于一些公共的、经常使用的代码或函数,避免频繁复制,可封装成公共类或库;2、代码中做好注释,避免无用注释的出现,以增加可维护性;3、尽量减少人工配置,增加默认属性,以增强易用性;4、代码中尽量使用标准 STL 的内容,以增加系统可移植性;5、做系统设计时,尽量考虑以前老版本的功能,以增加系统的兼容性。6、经过 WebService 服务程序到后台服务器读取 10000 个配置点以内的数据时间=5 秒;7、从 Web Service 下发控制命令到前端设备动作的时间=10 秒。2.22.2 运行环境运行环境2.2.12.2.1 硬件环境硬件环境服务器端-硬件环境类别要求备注CPU 主频2.4 GHz 或以上CPU 内核2 核或以上内存8.0 GB 或以上主机硬盘500GB 或以上万达的生产环境只有 80GUPS2KVA 及以上网卡100M 或 1000M客户端-硬件环境类别要求备注CPU 主频2.0 GHz 或以上CPU 内核2 核及以上内存2.0 GB 或以上主机硬盘250GB 或以上网卡100M 或 1000M用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 4 页2.2.22.2.2 软件环境软件环境软件环境类别要求备注操作系统2008 R2 64 位企业版数据库MS SQL Server 2008 企业版(32bit)2.32.3 概要设计决策概要设计决策2.3.12.3.1 设计原则设计原则要有一个良好的设计框架。为了软件能适应未来几年的现场需要,通用数据配置模块应该根据实际需要保持一定的可扩展性、可复用性,这就要求系统升级时对已基于该系统实施的系统兼容,软件设计必须有良好的设计框架。其中包括:第一、采用复用技术。第二、底层业务模块相对独立,统一接口,做到高内聚、低耦合。第三、良好的人机交互界面。系统的使用要考虑现场人员的易用性本软件的最终用户为现场的运行维护人员,在设计软件时要考虑人员的使用习惯和方便使用;简单易用的系统可以提高现场工程实施人员的效率,降低出错的几率。系统需要具有足够的灵活性与通用性本软件作为图形与服务器间的接口,模块间传递的参数需具有通用性、设置灵活性等特点,以达到各种接入设备的通用。2.3.22.3.2 设计决策设计决策本节记录对概要设计具有重要影响的软件需求和约束,描述相关的重要决策和决策的原因。这些决策一般对设计有很大影响,它们的改变很难通过设计技巧来屏蔽,例如所选用的开发语言,所选用的平台、组件和框架,对关键业务,类和方法的处理等。2.3.2.12.3.2.1-设计决策设计决策标识号标识号问题描述问题描述假设条件假设条件可选方案可选方案 1 1可选方案可选方案 2 2可选方案可选方案 3 3用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 5 页可选方案可选方案 4 41、决策决策影响影响相关决策相关决策2.42.4 开发环境开发环境开发用机器类别要求备注CPU2.40GHz CPU内存4G主机硬盘500G网卡100Mb/s操作系统Windows XP Professional SP3Windows 7 旗舰版 64 位开发环境Microsoft Visual Studio 2008 SP12.52.5 功能模块划分功能模块划分2.5.12.5.1 冻结数据入库服务程序冻结数据入库服务程序(TSSampleDataSvrTSSampleDataSvr.exe.exe)该模块主要实现充值记录的召唤,与 WebService 程序、Redis 服务器、FDA 程序有交互。2.5.22.5.2 数据接入服务器(数据接入服务器(FDA.exeFDA.exe)该模块主要负责与前置通讯管理程序、科陆电子/威胜集团的集中器进行通讯,实现远程通断电、充值、费率设置、清零、抄表等功能。2.5.32.5.3 数据网关服务客户端(数据网关服务客户端(TSWebService_ClientU.exeTSWebService_ClientU.exe)该模块主要是通知商服系统,通知内容包括充值结果返回、充值记录结果返回、加减表/费率修改返回。该模块以服务程序运行。2.5.42.5.4 TSServerU.exeTSServerU.exe 与与 FDA.exeFDA.exe 间的充值流程间的充值流程主要实现 TSServerU.exe 与 FDA.exe 间的充值流程,包括充值命令下发及充值结果返回。2.5.52.5.5 TSServerU.exeTSServerU.exe 与与 FDA.exeFDA.exe 间的遥控流程间的遥控流程主要实现 TSServerU.exe 与 FDA.exe 间的遥控流程,包括遥控命令下发及结果返回。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 6 页2.5.62.5.6 TSServerU.exeTSServerU.exe 与与 FDA.exeFDA.exe 间的点抄流程间的点抄流程主要实现 TSServerU.exe 与 FDA.exe 间的抄表流程,主要是从电表上抄取脉冲量数据。2.5.72.5.7 TSServerU.exeTSServerU.exe 与与 FDA.exeFDA.exe 间的费率设置流程间的费率设置流程主要实现 TSServerU.exe 与 FDA.exe 间的费率设置流程,主要是从往电表上设置单价,并返回设置的结果。2.5.82.5.8 TSWebService_TSWebService_MCSMCS_WDU.exe_WDU.exe 里的接口流程里的接口流程主要实现与 WEB 端进行数据交互的功能,包括充值、抄表、费率设置、加减表、遥控/清零等功能。2.5.92.5.9TS_PAYMENT_SVR_ACCOUNT.dllTS_PAYMENT_SVR_ACCOUNT.dll账单程序账单程序主要功能是每天定时计算日采样数据,生成日账单,每月通过日账单数据计算生成月账单。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 7 页2.62.6 系统结构系统结构2.6.12.6.1 万达生产环境组网图万达生产环境组网图万达计费系统一期项目主要有五台服务器组成,第一台用于 666 平台程序的运行,第二台用于部署IIS 和 Redis 服务器,剩余三台用于 FDA 程序的接入。其中,FDA 与的前置通讯管理程序接入,与科陆电子、威胜集团的集中器接入,并在电能表侧设置应急充值功能,使用红外掌机进行应急充值,科陆电子和威胜集团使用 IC 卡进行应急充值;集中器/前置通讯管理程序与电能表之间采用 RS485 进行通讯。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 8 页2.6.22.6.2 万达现阶段内场测试环境组网图万达现阶段内场测试环境组网图用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 9 页3 3 模块设计模块设计3.13.1 冻结数据入库服务程序冻结数据入库服务程序(TSSampleDataSvrTSSampleDataSvr.exe.exe)3.1.13.1.1 功能描述功能描述定时接收 FDA 程序上送的冻结数据,每天 0 点、9 点、17 点定时上送并由该程序接收、处理。程序通过 redis 消息中间件接收,收到消息后保存到实时数据库中(实时数据库会同步更新到磁盘数据库),并根据上送的充值次数判断是否需要召唤充值记录。注:该模块必须与 TSServerU.exe 程序放在同一台电脑上,否则,数据无法入实时数据库及磁盘数据库。3.1.23.1.2 数据流程数据流程由 FDA 程序定时上送数据,每天 0 点、9 点、17 点定时上送 YX 数据、YM 数据、充值记录,如是YX 数据、YM 数据,则直接保存到实时数据库,并且根据时采样配置表、日采样配置表保存至磁盘数据库中。如是 YM 数据,由程序判断是否大于实时数据库中的购电次数,如大于,则更新实时数据库,并发 送 召 唤 充 值 记 录 的 命 令,当 程 序 收 到 FDA 程 序 上 送 的 充 值 记 录 命 令 时,保 存 至TE_PAYMENT_PAYRECORD 表中。3.1.33.1.3 接口定义接口定义(1)与 redis的交互定义用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 10 页接收 FDA 上送的 YX 数据、YM 数据、充值记录数据,使用键值 SampleMessage,从接收到报文中解析数据类型,SOCKET_MSG_GROUP_YXDATA(0 xd7)为 YX 数据,SOCKET_MSG_GROUP_YMDATA_EX_DATE(0 x19)为 YM数据,SOCKET_MSG_PREPAYRECORD(0 xe1)为充值记录数据。名称描述键值virtualintRecvMessageFromMsmq_Ext(char*msmqname,unsigned char*lpData);从 redis 接收数据SampleMessagevirtualintSendMessageToMsmq(char*msmqname,unsignedchar*lpData,intnLength);往 redis 写入数据DownMessage(2)与实时/磁盘数据库的接口名称描述AFX_EXT_API HANDLE WINAPI OpenServerPipe(BOOL bRetry=TRUE)打开与实时数据库的管道,此接口必须保证本程序与 TSServerU.exe 程序放在同一台电脑上AFX_EXT_API void*WINAPI GetNetMessage(HANDLE hPipe,BYTE*pWrite,DWORD cbWrite)保存到实时数据库AFX_EXT_API void*WINAPI GetMessage_RecordOfSql_Ext(HANDLEhPipe,CString strSql,WORD iCnt=1)保存到历史数据库AFX_EXT_APIvoid*WINAPIGetMessage_RecordOfSql(HANDLEhPipe,CString strSql);从磁盘数据库查询数据AFX_EXT_API HANDLE WINAPI OpenRealDataPipe(BOOL bRetry=TRUE);打开与 666的实时数据管道连接(3)更新的数据库表YX数 据 更 新 到TB_DI、YM数 据 更 新 到TB_PULSE、充 值 记 录 更 新 到TE_PAYMENT_PAYRECORD、时采样表更新到 TS_H1_XXX/TS_H1_EXT_XXX、日采样表更新到TS_DAY_XXX/TS_DAY_EXT_XXX 表。3.1.43.1.4 配置文件定义配置文件定义默认保存到 666parameteremscfg.ini 里,只需要修改 IP 地址,端口号不用修改,如下:REDISCONFIGRedisIPAddress=10.1.191.6RedisPort=163793.1.53.1.5 日志定义日志定义默认保存到 666logTSSampleDataSvr 目录下。3.1.63.1.6 性能边界定义性能边界定义无。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 11 页3.1.73.1.7 安全性设计安全性设计无。3.23.2 数据接入服务器(数据接入服务器(FDA.exeFDA.exe)3.2.13.2.1 功能描述功能描述之前系统简单框架结构示意如下:现在的系统框架主要如下:用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 12 页和老系统相比,主要的一些改动如下:(1)将 server 中部分数据库和实时库的操作独立出来,使用独立的数据入库服务程序来实现,并且点召充值记录也由程序发起;(2)将 server 中规约处理模块放到 FDA 上实现,FDA 支持不同的前置配置不同的规约。(3)利用 redis 数据库实现数据队列和订阅发布功能,作为系统的“总线”,用于应用服务程序和FDA 之间的数据通信;用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 13 页(4)点抄命令由 wevservice 直接下发;(5)所有下发的命令都通过 FDAagent 服务实现分发,即 FDAagent 根据数据中的场站号找到该场站所在的 FDA,然后将数据下发给该 FDA,该 FDA 收到数据后再根据场站号找到对应的前置的 socket,最终将数据发给该前置。注意:按照设计,FDAagent 作为独立的服务程序实现下发命令的分发,但是在实现中,FDAagent 是作为 server 的一个线程在运行,后期需要独立出来,但不影响分发功能。因此,具体的实现需要特殊处理:server 下发命令:通过函数调用 FDAagent 的分发接口;webservice 和数据入库人程序:通过 redis 的 DownMessage 通道发送命令给 FDAagent,FDAagent 取出来后调用 FDAagent 的分发接口。3.2.23.2.2 特性特性(1)一个平台支持最大 10 个 FDA 接入服务器.(根据服务器性能可以更改最大支持 FDA 数目);(2)一个 FDA 支持最多 500 个前置接入;(3)支持系统运行时实时接入一个新 FDA;(4)FDA 支持指定时间内未收到前置心跳帧后主动关闭连接,等待前置重新连接;(5)FDA 支持系统运行时前置主动断开连接后重新连接;(6)FDA 支持防止相同厂站号的前置重复连接,即使该场站是在其他 FDA 上连接上来的场景;(7)FDA 支持 redis 异常重启后正常工作;(8)FDA 支持后台 server 异常重启后正常工作。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 14 页3.2.33.2.3 内部结构图内部结构图3.2.43.2.4 初始化流程初始化流程FDA 初始化的入口函数是 CFDAApp:SatrtFDAService()。从 FDA.ini 配置文件读取 redis 服务器的 IP 地址,并保存,然后检查和 redis 的通信是否正常,不通则退出初始化。检查后台 server 是否正在运行,如果主备 server 都未运行则退出初始化。注册该 FDA 到后台 server,主要是把 FDA 的 ip 发送给后台 server,后台 server 会根据该 IP 从配置文件获取 ID。向后台 server 请求 station 场站信息,上一步注册 FDA 时,后台 server 会把 FDAip 和 ID 的映射关系保存到 redis 中,这里从 redis 获取 ID 作为参数向后台请求所有场站信息。(注意,此时还没有启动接收后台数据的线程,后台下发的数据会保留在 redis 中)。生成 server 下发数据和配置的队列名字,名字是“ServerDataToFDAQn”,n 是 ID 值,这个队列名字对于 server 来说必须具有唯一性,后台 server 根据场站号获取该队列名字,把数据发到 FDA 对应的队列中,实现数据分发。生成 FDA 上送数据给后台的队列名字,“FDADataToServerQ”,目前所有 FDA 使用同一条队列上送,因此使用同一个队列名。申请实例资源目前一个 FDA 支持 500 个实例,即 500 个场站。启动规约处理线程,一个实例对应一个处理线程。启动后台数据下发监听线程,此时可以获得上面请求后台下发的场站信息,包括场站号,前置类型,前置名字等,然后根据场站号从数据库中获取该场站号下的所有设备信息。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 15 页启动定时器线程。检查场站信息和设备信息是否导入完成,如果失败则退出初始化。启动 socket 监听线程.监听前置/集中器的连接。3.2.53.2.5 功能点功能点(1)FDA 配置信息FDA 的配置信息保存在 server 服务器中的 parameter 文件夹下的 FDA.ini 文件中,保存当前支持接入到 server 的 FDA 的 ip 和 ID 的对应关系,其中 FDA 的 ip 是 FDA 服务器网卡静态配置的 IP 地址,ID唯一标示该 FDA,用作数据分发。(2)FDA 启动过程1)在 server 服务器中的 FDAagent 线程(也可以是独立程序)读取 FDA.ini 文件中的 FDA 信息,保存在内存数据结构和 redis 的 hash 表中.并设置状态为“未连接”;2)FDA 启动时,把本 FDA 的 ip 地址发给后台 FDAagent,后台 FDAagent 查询 FDA.ini 文件,如果存在,则更新内存数据结构和 redis 的 hash 表。并下发该 FDA 的 ID 给该 FDA,FDA 自己保存该 ID 信息,否则不保存并通知 FDA 是未注册的。(3)动态增删 FDA添加一个 FDA.首先,在后台 FDAagent 的 FDA.ini 文件中增加配置,如下:然后配置 FDA 上的 FDA.ini 文件,如下:最后启动 FDA 程序,启动过程如上介绍。(4)动态删除目前不支持,移除 FDA 后,需要重启 FDAagent。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 16 页(5)支持后台主备 server当后台配置主备 server 时,FDA 需要将上行数据同时发给主备 server 各一份,FDA 支持接收主备server 任意下发的下行数据。为保证 server 和 FDA 之间的 redis 数据通道异常时不影响其他模块使用 redis,在 redis 上分配数据库 1 给主服务器(redis 启动后默认所有数据是在数据库 0 上,可以通过select命令切换 redis 数据库,各个数据库之间互不干扰),分给数据库 2 给备服务器,即主 server 和 FDA 之间的 redis 数据通道在数据库 1 上,备 server 和 FDA 之间的 redis 数据通道在数据库 2 上。FDA 向后台 server 发送数据时,先切换到数据库 1,发送数据给主服务器后,再切换到数据库 2,发送数据给备服务器。(6)server 的保活机制由于 FDA 是通过 redis 间接和后台 server 进行通信,因此无法感知到后台 server 是否在线,如果当后台 server 不在线时,FDA 仍然把数据往 redis 发送,会导致数据没有被取走一直积压在 redis 上,时间一长就会耗尽内存资源。因此需要增加一种保活机制,当 FDA 检测到后台 server 不在线时不再往 redis 发送数据。后台 server 启动后,通过 FDAagent 在 redis 上设置一个保活变量alive=y,该变量有生存时间(60s),过了生存时间后会自动删除,后台 server 在收到数据时重置该保活变量,没有收到数据时定时10s 重置该保活变量。1)FDA 对 server 的保活检查FDA 在启动时和发送数据给后台 server 之前,检查数据库 1 中的 alive 是否等于y,如果是的话,表明主服务器在线,可以通过 redis 发送数据给主服务器,备服务器的流程类似。2)后台 server(FDAagent)重启后配置信息的同步当 FDAagent 重启后,FDAagent 向消息发布通道“ServerPublish”发布一个请求上送 FDA 上当前所有场站连接信息的消息,所有在线的 FDA 都可以收到请求,收到该请求后,FDA 就将连接的场站信息发送给后台,后台更新并保存。(7)下发命令的 QoS 队列管理一个前置同一时间只允许一条命令在执行,直到收到该命令的返回确认帧或者命令等待超时,再下发队列中下一条命令,如果命令队列中有命令的话。当后台下发一条命令时,如果此时正好有一条命令在执行,则将命令根据优先级插入命令队列中,等待下发。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 17 页命令队列为空时:插入 3 条命令后,正在执行第一条命令:执行完第一条命令后,执行下一条命令:1)队列节点结构上图中示意的队列节点结构,priorty 表示该命令的优先级,pCmd 指向命令数据,其中有个字段nMagicID 唯一标识该命令,用于区分不同的命令。2)插入队列如果队里中没有命令,则插入到 pos 指向的位置后直接下发,并启动超时定时器(默认 20s)。如果插入命令时,队列中有命令正在等待,则根据优先级将待插入命令和正在等待的命令进行排序,高优先级命令在前,低优先级的命令往后移,如果待插入命令的优先级和等待命令相同,则插入到相同优先级命令的后面。3)批量插入队列后台下发召充值记录命令时,需要将一条命令拆成几条子命令,并依此插入队列,遵循同一前置同一时刻只有一条命令执行的原则,但是这几条子命令的 nMagicID 值设置为相同,表示这几条子命令属于同一条下发命令。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 18 页4)删除/批量删除命令当命令返回确认帧,或者命令下发超时,需要删除 pos 指向的命令,以及命令队列中和该命令 nMagicID相同的命令,然后下发下一个命令,如果队列中还有命令在等待的话。5)命令加密下发需要加密下发的命令不能直接插入到队列中,需要先进行认证,认真成功后再组成加密命令下发。具体流程如下:收到命令时,构造认证报文插入到队列中,紧接着再插入一条保存原始命令数据的特殊命令,当收到认证回应报文后,读取刚才那条特殊命令中原始命令数据,再加上认证回应报文数据构造加密的命令,然后下发。3.33.3 数据网关服务客户端(数据网关服务客户端(TSWebService_ClientU.exeTSWebService_ClientU.exe)3.3.13.3.1 功能描述功能描述该模块主要接收 TSWebService_MCS_WDU.exe 程序发送过来的命令,用以通知商服,并在调用商服的 WebService 接口失败后,重新再次执行。调用商服的接口包括充值结果返回、充值记录结果返回、加减表/费率修改结果返回。注:该模块可与 TSWebService_MCS_WDU.exe 程序放在同一台电脑上,也可以放到不同的电脑上,但是必须有配置文件跟随。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 19 页3.3.23.3.2 数据流程数据流程由 TSWebService_MCS_WDU.exe 定时发送调用商服的命令到 redis,本模块中采用线程定时从 redis接收消息,如是充值结果返回、充值记录结果返回、加减表/费率结果返回,则进行 json 字符串解析、拼接成商服可识别的 xml 格式,并调用商服的 WebService 接口,如调用成功,正常返回;反之,如调用失败,则保存到本地文件,由失败处理线程定时读取文件重新加入待执行队列。注意:此处只要把执行错误的命令重新加入待执行队列,就把本地文件删除,会有命令丢失的风险。建议修改为:在读取到待执行队列时,加入是否执行成功的标志,本地命令文件不删除,当命令执行成功后再删除文件,如失败,则从待执行队列里删除,等待下一次执行。3.3.33.3.3 接口定义接口定义(1)与 redis的交互定义使用键值 TSWEBSERVICE_MCS 接收 TSWebService_MCS_WDU.exe 发送过来的命令。名称描述键值用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 20 页virtualintRecvMessageFromMsmq_Ext(char*msmqname,unsigned char*lpData);从 redis 接收数据TSWEBSERVICE_MCS(2)与商服的接口名称描述SOAP_FMAC5 int SOAP_FMAC6soap_call_ns2_getDigitalMeterData(struct soap*soap,const char*soap_endpoint,const char*soap_action,_ns1_getDigitalMeterData*ns1_getDigitalMeterData,_ns1_getDigitalMeterDataResponse*ns1_getDigitalMeterDataResponse)充值结果返回接口SOAP_FMAC5 int SOAP_FMAC6soap_call_ns2_getDigitalPlatformData(struct soap*soap,const char*soap_endpoint,const char*soap_action,_ns1_getDigitalPlatformData*ns1_getDigitalPlatformData,_ns1_getDigitalPlatformDataResponse*ns1_getDigitalPlatformDataResponse)充值记录结果返回接口SOAP_FMAC5 int SOAP_FMAC6soap_call_ns2_getMeterInfoData(struct soap*soap,const char*soap_endpoint,const char*soap_action,_ns1_getMeterInfoData*ns1_getMeterInfoData,_ns1_getMeterInfoDataResponse*ns1_getMeterInfoDataResponse)加减表/费率修改返回接口(3)cjson 接口名称描述cJSON*cJSON_Parse(const char*value);解析字符串的接口cJSON*cJSON_GetObjectItem(cJSON*object,const char*string)解析字符串里的数据类型及数值的接口3.3.43.3.4 配置文件定义配置文件定义默认保存到 666parameterTSWebService_MCS.ini里,只需要修改 IP 地址,端口号不用修改,如下:REDISCONFIGRedisIPAddress=10.1.191.6RedisPort=163793.3.53.3.5 日志定义日志定义(1)执行错误的通知命令,默认保存到 666WS_Error 目录下,以 txt 形式保存。(2)日志默认保存到 666log 目录下,程序里暂时未打印日志。3.3.63.3.6 性能边界定义性能边界定义无。3.3.73.3.7 安全性设计安全性设计采用业界通用的 json 字符串格式、xml 字符串格式。暂无加密的过程。用能计费系统用能计费系统 C+C+程序程序 概要设计说明书概要设计说明书 V1.00V1.00第 21 页3.43.4 TSServerU.exeTSServerU.exe 与与 FDA.exeFDA.exe 间的充值流程间的充值流程3.4.13.4.1 数据流程数据流程以异步模拟同步,当 WebService 通过 TSServerU.exe 下发充值命令以后,WebService 也无法知道充值结果何时返回,只能不断的从 TSServerU.exe 询问是否有结果返回,如有,正常返回;反之,默认超时。3.4.23.4.2 报文格式报文格式详见MMI 万达扩充.doc里的充值上行、充值下行报文格式。用能计费系统用能计费系统

    注意事项

    本文(用能计费系统C++程序概要设计说明书 V1.00.pdf)为本站会员(海阔****涯)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开