|  |  |  | 
|---|
|  |  |  | return instance ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static Integer[] info(){ | 
|---|
|  |  |  | Integer comTotalDown = 0 ;//缓存的下行命令总数 | 
|---|
|  |  |  | Integer comNoResTotalDownByOnLine = 0 ;//RTU在线,但对其下行命令未收到应答的总数 | 
|---|
|  |  |  | Integer comNoResTotalDownByOffLine = 0 ;//RTU离线,但对其下行命令未收到应答的总数 | 
|---|
|  |  |  | MidResultToRtu res ; | 
|---|
|  |  |  | TcpDownCommandObj obj ; | 
|---|
|  |  |  | Node node = cacheQueue.getFirstNode() ; | 
|---|
|  |  |  | while(node != null && node.obj != null){ | 
|---|
|  |  |  | obj = (TcpDownCommandObj)node.obj; | 
|---|
|  |  |  | res = obj.result ; | 
|---|
|  |  |  | if(!obj.onceReceivedResult){ | 
|---|
|  |  |  | comTotalDown ++ ; | 
|---|
|  |  |  | if(TcpSessionCache.isConnect(res.rtuAddr)){ | 
|---|
|  |  |  | comNoResTotalDownByOnLine ++ ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | comNoResTotalDownByOffLine ++ ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new Integer[]{comTotalDown, comNoResTotalDownByOnLine, comNoResTotalDownByOffLine} ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 缓存命令 | 
|---|
|  |  |  | * @param result | 
|---|
|  |  |  | 
|---|
|  |  |  | obj.onceReceivedResult = true ;//标识已经收到命令结果 | 
|---|
|  |  |  | return res ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | node = node.pre ; | 
|---|
|  |  |  | node = node.next ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|