| | |
| | | ) |
| | | |
| | | func getDeviceList() ([]msg.PLCDevice, error) { |
| | | responseBody, err := util.HttpPost(config.Options.DeviceListWebApi, nil) |
| | | token, _ := util.CreateToken() |
| | | responseBody, err := util.HttpPost(config.Options.DeviceListWebApi, nil, token) |
| | | if err != nil { |
| | | logger.Warn("get device list from aps error:%s", err.Error()) |
| | | return nil, err |
| | |
| | | |
| | | 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) |
| | | } |