| | |
| | | |
| | | 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) |
| | | } |