| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- package tc
 
- import (
 
-     "sync"
 
-     "wb/lg"
 
-     "wb/st"
 
- )
 
- type ITConn interface {
 
-     GetTermId() string
 
-     GetType()     string
 
-     SendCmd(cmd string)
 
-     InitDtu(startId ...string)bool
 
-     LogInfo(v ...interface{})
 
-     LogError(v... interface{})
 
-     Close()
 
- }
 
- var lockMapConn = sync.Mutex{}
 
- var mapConn = make(map[string]ITConn)
 
- func AddMConn(mConn ITConn) {
 
-     lockMapConn.Lock()
 
-     defer lockMapConn.Unlock()
 
-     termId := mConn.GetTermId()
 
-     oldConn, ok := mapConn[termId];
 
-     if ok {
 
-         if oldConn != mConn{
 
-             //delete(mapConn, termId)
 
-             oldConn.Close()
 
-             mConn.LogInfo("TC AddMConn new: ", mConn.GetType(), "Id: ", termId)
 
-             lg.Info("TC AddMConn  new", termId)
 
-         }
 
-         lg.Info("TC AddMConn delete old = new", oldConn==mConn)
 
-         oldConn.LogInfo("TC AddMConn delete old", termId, " is exist, close it use new connect")
 
-     }
 
-     mapConn[termId] = mConn
 
-     lg.Info("TC AddMConn:", mConn.GetType(), "Id: ", termId)
 
-     mConn.LogInfo("TC AddMConn:", termId)
 
- }
 
- func DeleteConn(mConn ITConn) {
 
-     lockMapConn.Lock()
 
-     defer lockMapConn.Unlock()
 
-     termId := mConn.GetTermId()
 
-     oldConn, ok := mapConn[termId];
 
-     if ok {
 
-         if oldConn == mConn{
 
-             //delete(mapConn, termId)
 
-             mConn.LogInfo("TC DeleteConn: ", mConn.GetType(), "Id: ", termId)
 
-             lg.Info("TC DeleteConn ", termId)
 
-         }
 
-     }
 
- }
 
- func SendCmd(sn string, cmd string) {
 
-     lockMapConn.Lock()
 
-     defer lockMapConn.Unlock()
 
-     if bConn, ok := mapConn[sn]; ok {
 
-         lg.Info("TC SEND CMD[", cmd, "] TO [", sn, "]")
 
-         bConn.SendCmd(cmd)
 
-     } else {
 
-         lg.Error("SendCmd sn not online:", sn)
 
-     }
 
- }
 
- func InitDtu(sn string, startId string)string {
 
-     lockMapConn.Lock()
 
-     defer lockMapConn.Unlock()
 
-     if bConn, ok := mapConn[sn]; ok {
 
-         lg.Info("TC InitDtu startId [", startId, "] TO [", sn, "]")
 
-         bConn.InitDtu(startId)
 
-     } else {
 
-         lg.Error("SendCmd no such sn:", sn)
 
-     }
 
-     return st.Success
 
- }
 
 
  |