|  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | import com.dy.aceMw.server.tasks.BusiConstantTask; | 
 |  |  | import com.dy.aceMw.server.*; | 
 |  |  | import com.dy.aceMw.server.rtuData.RtuDataUnit; | 
 |  |  | import com.dy.aceMw.server.rtuData.RtuDataUnitConfigVo; | 
 |  |  | import com.dy.aceMw.server.tasks.FromRtuComResultConstantTask; | 
 |  |  | import com.dy.aceMw.server.tasks.FromRtuDataConstantTask; | 
 |  |  | import com.dy.common.mw.UnitInterface; | 
 |  |  | import com.dy.common.mw.UnitStartedCallbackInterface; | 
 |  |  | import com.dy.common.mw.channel.rmi.RmiConfigVo; | 
 |  |  | import com.dy.common.mw.channel.rmi.RmiUnit; | 
 |  |  | import com.dy.common.mw.channel.tcp.TcpConfigVo; | 
 |  |  | 
 |  |  | import com.dy.common.mw.protocol.ProtocolUnit; | 
 |  |  | import com.dy.common.mw.support.SupportUnit; | 
 |  |  | import com.dy.common.mw.support.SupportUnitConfigVo; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_CoreUnit; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_ProtocolUnit; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_RmiUnit; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_TcpUnit; | 
 |  |  | import com.dy.aceMw.server.ServerProperties; | 
 |  |  | import com.dy.aceMw.server.tasks.ToRtuConstantTask; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_SupportUnit; | 
 |  |  | import com.dy.aceMw.resource.ResourceUnit; | 
 |  |  | import com.dy.aceMw.resource.ResourceUnitConfigVo; | 
 |  |  | import com.dy.aceMw.server.AdapterImp_ResourceUnit; | 
 |  |  | import com.dy.common.springUtil.SpringContextUtil; | 
 |  |  | import com.dy.common.util.ConfigXml; | 
 |  |  | import com.dy.common.util.IDLongGenerator; | 
 |  |  | 
 |  |  |          //TCP上行数据时刻缓存时长,当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上数据同时下发数据,因为RTU处理不过来 | 
 |  |  |          ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5, null) * 1000L ; | 
 |  |  |          //数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1 | 
 |  |  |          ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 1, 9, null); | 
 |  |  |          ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 0, 99, null); | 
 |  |  |          //上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 | 
 |  |  |          ServerProperties.cacheUpDownDataWarnCount = conf.getSetAttrPlusInt(doc, "config.base", "cacheUpDownDataWarnCount", null, 1, null, null) ; | 
 |  |  |          //上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 | 
 |  |  | 
 |  |  |          protoAdap.setConfig(protoVo); | 
 |  |  |          ProtocolUnit protoUnit = ProtocolUnit.getInstance(); | 
 |  |  |          protoUnit.setAdapter(protoAdap); | 
 |  |  |          protoUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |             @Override | 
 |  |  |             public void call(Object obj) { | 
 |  |  |             } | 
 |  |  |          protoUnit.start(obj -> { | 
 |  |  |          }); | 
 |  |  |          units.add(protoUnit) ; | 
 |  |  |           | 
 |  |  | 
 |  |  |          supAdap.setConfig(supVo); | 
 |  |  |          SupportUnit supUnit = SupportUnit.getInstance() ; | 
 |  |  |          supUnit.setAdapter(supAdap); | 
 |  |  |          supUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |             @Override | 
 |  |  |             public void call(Object obj) { | 
 |  |  |             } | 
 |  |  |          supUnit.start(obj -> { | 
 |  |  |          }); | 
 |  |  |          units.add(supUnit) ; | 
 |  |  |           | 
 |  |  | 
 |  |  |          //当前支持spring + hibernate | 
 |  |  |          resUnit.setSpringContext(SpringContextUtil.getApplicationContext()); | 
 |  |  |  | 
 |  |  |          resUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |             @Override | 
 |  |  |             public void call(Object obj) { | 
 |  |  |             } | 
 |  |  |          resUnit.start(obj -> { | 
 |  |  |          }); | 
 |  |  |          units.add(resUnit) ; | 
 |  |  |  | 
 |  |  | 
 |  |  |             rmiAdap.setConfig(rmiVo); | 
 |  |  |             RmiUnit rmiUnit = RmiUnit.getInstance(); | 
 |  |  |             rmiUnit.setAdapter(rmiAdap); | 
 |  |  |             rmiUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |                @Override | 
 |  |  |                public void call(Object obj) { | 
 |  |  |                } | 
 |  |  |             rmiUnit.start(obj -> { | 
 |  |  |             }); | 
 |  |  |             RmiSvUrl = "[ip]:" + rmiVo.port + "/" + rmiVo.context ; | 
 |  |  |             units.add(rmiUnit) ; | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |          ///////////////// | 
 |  |  |          //RTU上行数据处理模块 | 
 |  |  |          RtuDataUnitConfigVo rducVo = new RtuDataUnitConfigVo(); | 
 |  |  |          AdapterImp_RtuDataUnit rducAdap = new AdapterImp_RtuDataUnit(); | 
 |  |  |          rducAdap.setConfig(rducVo); | 
 |  |  |          RtuDataUnit rducUnit = RtuDataUnit.getInstance(); | 
 |  |  |          rducUnit.setAdapter(rducAdap); | 
 |  |  |          rducUnit.start(obj -> { | 
 |  |  |          }); | 
 |  |  |          units.add(rducUnit) ; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |          // /////////////// | 
 |  |  |          // 核心 | 
 |  |  | 
 |  |  |          CoreUnit coreUnit = CoreUnit.getInstance(); | 
 |  |  |          coreUnit.setAdapter(coreAdap); | 
 |  |  |          CoreUnit.addConstantTask(new ToRtuConstantTask()); | 
 |  |  |          CoreUnit.addConstantTask(new BusiConstantTask()); | 
 |  |  |          coreUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |             @Override | 
 |  |  |             public void call(Object obj) { | 
 |  |  |             } | 
 |  |  |          CoreUnit.addConstantTask(new FromRtuDataConstantTask()); | 
 |  |  |          CoreUnit.addConstantTask(new FromRtuComResultConstantTask()); | 
 |  |  |          coreUnit.start(obj -> { | 
 |  |  |          }); | 
 |  |  |          units.add(coreUnit) ; | 
 |  |  |  | 
 |  |  | 
 |  |  |             tcpAdap.setConfig(tcpVo); | 
 |  |  |             TcpUnit tcpUnit = TcpUnit.getInstance(); | 
 |  |  |             tcpUnit.setAdapter(tcpAdap); | 
 |  |  |             tcpUnit.start(new UnitStartedCallbackInterface(){ | 
 |  |  |                @Override | 
 |  |  |                public void call(Object obj) { | 
 |  |  |                } | 
 |  |  |             tcpUnit.start(obj -> { | 
 |  |  |             }); | 
 |  |  |             TcpSvUrl = "[ip]:" + tcpVo.port ; | 
 |  |  |             units.add(tcpUnit) ; |