package collector import ( "encoding/json" "plc-recorder/config" "plc-recorder/logger" "plc-recorder/msg" "plc-recorder/util" ) func getDeviceList() ([]msg.PLCDevice, error) { 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 } var response msg.ApsDeviceApiResponse err = json.Unmarshal(responseBody, &response) if err != nil { logger.Warn("unmarshal aps response error:%s", err.Error()) return nil, err } logger.Debug("get device list total:%d", response.Total) return response.Data, nil } // 设备信息发生改变时更新采集的任务, 删除, 修改, 或者重新启动 func HandleDeviceUpdate(message []byte) error { var device msg.PLCDevice logger.Debug("receive device update msg: %s", string(message)) err := json.Unmarshal(message, &device) if err != nil { logger.Error("unmarshal device update msg error:%s", err.Error()) return err } // 先停掉正在执行的任务 stopTask(&device) // 判断是否是重新启动的状态, 启动一个新的任务 if device.Status == 0 { addTask(&device) } return nil }