zhangqian
2023-10-17 56307a744dc94f9b1eed3f7513a4be16a130e984
pkg/plc/modbusx/connection_manager.go
@@ -1,14 +1,18 @@
package modbusx
import (
   "apsClient/conf"
   "github.com/goburrow/modbus"
   "sync"
   "time"
)
type ConnectionManager struct {
   connections map[string]modbus.Client
   mu          sync.Mutex
}
var handler *modbus.TCPClientHandler
func newPlcConnectionManager() *ConnectionManager {
   return &ConnectionManager{
@@ -56,8 +60,14 @@
      return
   }
   connectionManager.RemoveConnection(ipAddr)
   if handler != nil {
      handler.Close()
   }
}
func newGetModbusConnection(ipAddr string) modbus.Client {
   return modbus.TCPClient(ipAddr)
   handler = modbus.NewTCPClientHandler(ipAddr)
   handler.Timeout = 10 * time.Second
   handler.SlaveId = byte(conf.Conf.PLC.SlaveId)
   return modbus.NewClient(handler)
}