| | |
| | | // 1. 直接通过InfluxDB存储库写入 |
| | | for (OpcData data : dataList) { |
| | | if (data.getValue() != null) { |
| | | Point point = Point |
| | | .measurement(influxdbConfig.getMeasurement()) |
| | | .addTag(TAG, data.getName()) |
| | | .addField(FIELD_VALUE, data.getValue()) |
| | | .time(data.getTimestamp(), WritePrecision.NS); |
| | | points.add(point); |
| | | // 如果是电压,四路共用,需要处理 1-1#yijidiankonggui_1_VoltageA |
| | | if (data.getName().contains("_Voltage")) { |
| | | String prefix = data.getName().split("_")[0]; |
| | | String suffix = data.getName().split("_")[2]; |
| | | // 循环四次 |
| | | for (int i = 1; i <= 4; i++) { |
| | | String name = prefix + "_" + i + "_" + suffix; |
| | | Point point = Point |
| | | .measurement(influxdbConfig.getMeasurement()) |
| | | .addTag(TAG, name) |
| | | .addField(FIELD_VALUE, data.getValue()) |
| | | .time(data.getTimestamp(), WritePrecision.NS); |
| | | points.add(point); |
| | | } |
| | | } else { |
| | | Point point = Point |
| | | .measurement(influxdbConfig.getMeasurement()) |
| | | .addTag(TAG, data.getName()) |
| | | .addField(FIELD_VALUE, data.getValue()) |
| | | .time(data.getTimestamp(), WritePrecision.NS); |
| | | points.add(point); |
| | | } |
| | | |
| | | log.debug("采集OPC UA数据: {} = {}", data.getName(), data.getValue()); |
| | | } else if (data.getErrorMessage() != null) { |
| | | log.warn("采集OPC UA数据失败: {} - {}", data.getName(), data.getErrorMessage()); |