zhangzengfei
2023-08-11 bc0b7e914a378b2c40f9d2ec2470b61a19c18288
collector/device.go
@@ -51,3 +51,33 @@
   return nil
}
func HandleDeviceReadRequest(device *msg.PLCDevice) *msg.PLCResponse {
   procCache, ok := tasksStore.Load(device.DeviceID)
   if ok {
      if procCache.(*collectorProc).device.DeviceIP == device.DeviceIP {
         return plc4xRequest(procCache.(*collectorProc))
      }
   }
   plcConnection, err := NewModbusConnection(device.DeviceIP)
   if err != nil {
      logger.Warn("error connecting to PLC: %s, ip: %s", device.DeviceName, device.DeviceIP)
      // 上报设备离线
      return &msg.PLCResponse{
         DeviceID:   device.DeviceID,
         DeviceName: device.DeviceName,
         DeviceIP:   device.DeviceIP,
         Online:     false,
      }
   }
   proc := collectorProc{
      device:  device,
      cancel:  nil,
      plcConn: &plcConnection,
   }
   return plc4xRequest(&proc)
}