|  |  | 
 |  |  |     onlyOneProtocol=true: 通信中间件当前只有一个协议 | 
 |  |  |     downComandMaxResendTimes: 下行命令允许发送的最大次数X,即允许重发X-1 | 
 |  |  |     commandSendInterval: 针对一个RTU,下发命令的时间间隔(秒) | 
 |  |  |     cachWaitResultTimeout: 命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长(秒),本系统RTU,对于开关泵命令,其先执行开关泵报,然后再进行命令应答,所以此值 要大一些 | 
 |  |  |     offLineCachTimeout: 不在线缓存的命令最大缓存时长(秒) | 
 |  |  |     lastUpDataTimeLive: TCP上行数据时刻缓存时长(毫秒),当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上行数据同时下发数据,因为RTU处理不过来(经初次实验,1秒还是有问题,2秒无问题) | 
 |  |  |     fastCommandSendInterval: 针对一个RTU,下发快速命令(如升级命令)的时间间隔(毫秒),此配置作用力受下面配置项lastUpDataTimeLive限制 | 
 |  |  |     cacheWaitResultTimeout: 命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长(秒),本系统RTU,对于开关泵命令,其先执行开关泵报,然后再进行命令应答,所以此值 要大一些 | 
 |  |  |     offLineCacheTimeout: 不在线缓存的命令最大缓存时长(秒) | 
 |  |  |     lastUpDataTimeLive: TCP上行数据时刻缓存时长(毫秒),当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上行数据同时下发数据,因为RTU处理不过来 | 
 |  |  |     dbDataIdSuffix:数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1 | 
 |  |  |     cacheUpDownDataWarnCount:上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 | 
 |  |  |     cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 | 
 |  |  | 
 |  |  |     sendDingDingAlarmMsInterval: 有报警发生时,向钉钉发送消息的间隔时长(分钟) | 
 |  |  |      --> | 
 |  |  |    <base | 
 |  |  |          orgTag="sp" | 
 |  |  |          orgTag="${base.orgTag}" | 
 |  |  |          isLowPower="false" | 
 |  |  |          onlyDealRtus="" | 
 |  |  |          onlyOneProtocol="false" | 
 |  |  |          downComandMaxResendTimes="1" | 
 |  |  |          commandSendInterval="2" | 
 |  |  |          cachWaitResultTimeout="120" | 
 |  |  |          offLineCachTimeout="86400" | 
 |  |  |          commandSendInterval="3" | 
 |  |  |          fastCommandSendInterval="500" | 
 |  |  |          cacheWaitResultTimeout="120" | 
 |  |  |          offLineCacheTimeout="86400" | 
 |  |  |          lastUpDataTimeLive="500" | 
 |  |  |          dbDataIdSuffix="0" | 
 |  |  |          cacheUpDownDataWarnCount="100000" | 
 |  |  |          cacheUpDownDataMaxCount="110000" | 
 |  |  |          disconnectedByNoUpDataMinutes="3" | 
 |  |  |          workReportDealOneByTimes="5" | 
 |  |  |          disconnectedByNoUpDataMinutes="${base.upData.min.interval}" | 
 |  |  |          workReportDealOneByTimes="1" | 
 |  |  |          intakeAlarmLossMinValue="1.0" | 
 |  |  |          sendDingDingAlarmMsInterval="60" | 
 |  |  |    /> | 
 |  |  | 
 |  |  |          synchroRtuClockTimepieces="300000" | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  |    <!-- RTU 消息中心 | 
 |  |  |    enable: 模块是否启动 | 
 |  |  |    notifyInterval: 消息通知间隔(秒) | 
 |  |  |    --> | 
 |  |  |    <msCenter enable="true" | 
 |  |  |            notifyInterval="5" | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  |    <!-- 2024-10-08 此配置暂时未应用 | 
 |  |  |      软件升级 --> | 
 |  |  |    <updateRtuSoft enable="true"> | 
 |  |  |       <soft1 enable="true" oldVersionName="meter_v2_0,meter_v1_0" > | 
 |  |  |          <newVersion newVersionName="meter_v3_0" file="rtuSoft/meter_v3_0.txt"></newVersion> | 
 |  |  |       </soft1> | 
 |  |  |       <!-- | 
 |  |  |         <soft2 enable="false" oldVersionName="rtu_v1_0,rtu_v2_0,rtu_v3_0" > | 
 |  |  |             <newVersion newVersionName="rtu_v4_0" file="rtuSoft/rtu_v4_0.txt"></newVersion> | 
 |  |  |         </soft2> | 
 |  |  |          --> | 
 |  |  |    </updateRtuSoft> | 
 |  |  |    <!-- RTU 软件升级 | 
 |  |  |    enable: 模块是否启动 | 
 |  |  |    openNoUpgrade: 阀开(泵开)不执行升级 | 
 |  |  |    lastOpenMaxGoOn: 阀开(泵开)状态设置以来持续最长时间(秒钟),超过这个时间认为状态无效(这个时长取决于工作报间隔) | 
 |  |  |    noOneRtuUpgradeMaxDuration:升级任务设置后,无一设备升级最大时长(秒),超过这个时长,认为升级任务完成,取值范围是5分钟~60分钟 | 
 |  |  |    runningAndIdleDuration:rtu升级启动后进入升级中状态,但某种情况下RTU不再通信了,一直处于等待状态,等待达到一定时长(秒,一般与noOneRtuUpgradeMaxDuration相等)认为升级失败(一包死或多包死),取值范围是5分钟~60分钟 | 
 |  |  |    failTryTimes:升级失败后(针对的是在线进行了升级下发命令),重新偿试升级次数,当设置为0时表示不重新偿试升级 | 
 |  |  |    ugMaxRtuAtOnce:为了缓解通信中间件的压力,同时支持升级的RTU台数,当设置为0时表示不受限制 | 
 |  |  |    rtuOffLineWaitDuration: rtu离线,等待其升级的时长(秒),超过这个时间,设置其升级失败,且设置升级任务完成 | 
 |  |  |    notifyStateInterval: 升级状态通知间隔(秒) | 
 |  |  |    notifyTimesAfterOver: 升级结束后,再向web服务系统通知状态的次数 | 
 |  |  |    --> | 
 |  |  |    <upgrade enable="true" | 
 |  |  |           openNoUpgrade="true" | 
 |  |  |           lastOpenMaxGoOn="1800" | 
 |  |  |           noOneRtuUpgradeMaxDuration="1200" | 
 |  |  |           runningAndIdleDuration="1200" | 
 |  |  |           failTryTimes="2" | 
 |  |  |           ugMaxRtuAtOnce="5000" | 
 |  |  |           rtuOffLineWaitDuration="1800" | 
 |  |  |           notifyStateInterval="2" | 
 |  |  |           notifyTimesAfterOver="1" | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    <!-- | 
 |  |  |     支持模块 | 
 |  |  | 
 |  |  |      --> | 
 |  |  |    <resource | 
 |  |  |          rtuLogDir="rtuLogs/" | 
 |  |  |          rtuLogFileMaxSize="100000" | 
 |  |  |          rtuLogFileMaxCount="2" | 
 |  |  |          rtuLogFileMaxSize="1000000" | 
 |  |  |          rtuLogFileMaxCount="3" | 
 |  |  |          monitorInterval="2" | 
 |  |  |          saveDbInterval="10" | 
 |  |  |    /> | 
 |  |  | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  |    <!-- | 
 |  |  |     sleepBigBusy:主线程大忙时每次执行间隔时长(毫秒) | 
 |  |  |     sleepSmallBusy:主线程小忙时每次执行间隔时长(毫秒) | 
 |  |  |     coreInterval:主线程每次执行间隔时长(毫秒) | 
 |  |  |     queueWarnSize: 缓存队列节点数警告数量 | 
 |  |  |     queueMaxSize: 缓存队列节点数最大数量 | 
 |  |  |      --> | 
 |  |  |    <core | 
 |  |  |          sleepBigBusy="100" | 
 |  |  |          sleepSmallBusy="500" | 
 |  |  |          coreInterval="100" | 
 |  |  |          queueWarnSize="100000" | 
 |  |  |          queueMaxSize="300000" | 
 |  |  |    /> | 
 |  |  | 
 |  |  |     idle: 发呆时长(秒) | 
 |  |  |      --> | 
 |  |  |    <tcp enable="true" | 
 |  |  |        port="62000" | 
 |  |  |        port="${tcp.port}" | 
 |  |  |        processors="3" | 
 |  |  |        idle="10" | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    <!-- | 
 |  |  |    enable 是否启动 | 
 |  |  |    svIp MQTT服务器IP | 
 |  |  |    svUserName MQTT服务器用户名 | 
 |  |  |    svUserPassword MQTT服务器用户密码 | 
 |  |  |    poolMaxSize 连接池最大连接数 | 
 |  |  |    sendInterval 命令发送间隔(单位秒),取值范围是1~3600 | 
 |  |  |    reSendTimesByNoResult 未收到命令结果时,最大重复发送次数,取值范围是0~100, 0时表示不重复发送 | 
 |  |  |    comCacheTimeout: 命令最大缓存时长(秒),取值范围是1~3600 | 
 |  |  |    acceptDataMinInterval:因为上行数据密度较大(如10秒上行一条数据),数据处理与存储压力大,所以最小间隔一定时间(分钟)真正接收处理一条上行数据 | 
 |  |  |    useMemoryPersistence 使用内存持久化而非默认的文件持久化(true是 false否) | 
 |  |  |    protocolAndDeviceIds 在子系统(orgTag)中接入的设备(FBox)所用协议及设备id集合,多个用逗号隔开,协议与ID用正斜杠隔开,例如:sd1/338220031439,sd1/338220031440 | 
 |  |  |    subTopicAndQos: 订阅主题与Qos,主题名与其Qos用逗号隔开,多个主题及Qos用分号隔开,例如:ym/topic1,1;ym/topic2,1;ym/topic3,1,如果有多个OrgTag,主题前缀用其OrgTag | 
 |  |  |    pubTopicQos: 发布主题的Qos,取值范围: | 
 |  |  |       0   至多一次(At most once)   消息发送后不保证到达,可能丢失或重复,开销最小,可靠性最低。 | 
 |  |  |        1   至少一次(At least once)   消息至少会到达一次,可能重复,但不会丢失,可靠性中等,适用于多数场景。 | 
 |  |  |        2   恰好一次(Exactly once)   消息仅会到达一次,不重复且不丢失,可靠性最高,但开销最大,实现最复杂。 | 
 |  |  |     noSubThenOff: MQtt设备在一定时间(分钟)后未发布消息,认为设备离线 | 
 |  |  |      --> | 
 |  |  |    <mqtt enable="${mqtt.enable}" | 
 |  |  |         svIp="${mqtt.ip}" | 
 |  |  |         svPort="${mqtt.port}" | 
 |  |  |         svUserName="${mqtt.user}" | 
 |  |  |         svUserPassword="${mqtt.password}" | 
 |  |  |         poolMaxSize="10" | 
 |  |  |         sendInterval="60" | 
 |  |  |         reSendTimesByNoResult="0" | 
 |  |  |         comCacheTimeout="30" | 
 |  |  |         acceptDataMinInterval="60" | 
 |  |  |         useMemoryPersistence="true" | 
 |  |  |         protocolAndDeviceIds="${mqtt.protocolAndDeviceIds}" | 
 |  |  |         subTopicAndQos="${mqtt.subTopicAndQos}" | 
 |  |  |         pubTopicQos="1" | 
 |  |  |         noSubThenOff="${mqtt.noSubThenOff}" | 
 |  |  |    /> | 
 |  |  |  | 
 |  |  | </config> |