| | |
| | | package com.ruoyi.device.simulator; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.Instant; |
| | | import java.util.List; |
| | | import com.ruoyi.device.model.DeviceWorkStatus; |
| | |
| | | } |
| | | |
| | | record CollectorState(int collectorId, String deviceCode, String ip, String mac, String name, |
| | | String manufacturer, String model, int channelCount, boolean online) { } |
| | | String manufacturer, String model, int channelCount, boolean online, int sampleIntervalMs, |
| | | long nextSequence, Instant lastSampledAt, List<CollectorChannelState> channels, |
| | | List<CollectorMeasurementRecord> history, CollectorHistoryFaults historyFaults) |
| | | { |
| | | public CollectorState |
| | | { |
| | | channels = List.copyOf(channels); |
| | | history = List.copyOf(history); |
| | | historyFaults = historyFaults == null ? CollectorHistoryFaults.none() : historyFaults; |
| | | } |
| | | |
| | | /** 兼容只包含发现配置的旧模拟状态;Redis 读取边界会补齐采样合同。 */ |
| | | public CollectorState(int collectorId, String deviceCode, String ip, String mac, String name, |
| | | String manufacturer, String model, int channelCount, boolean online) |
| | | { |
| | | this(collectorId, deviceCode, ip, mac, name, manufacturer, model, channelCount, online, |
| | | DevelopmentCollectorSimulation.DEFAULT_SAMPLE_INTERVAL_MS, 1L, null, |
| | | DevelopmentCollectorSimulation.defaultChannels(channelCount), List.of(), |
| | | CollectorHistoryFaults.none()); |
| | | } |
| | | } |
| | | |
| | | record CollectorChannelState(String channelCode, List<CollectorMetricState> metrics) |
| | | { |
| | | public CollectorChannelState { metrics = List.copyOf(metrics); } |
| | | } |
| | | |
| | | record CollectorMetricState(String metricCode, BigDecimal value, String unit) { } |
| | | |
| | | record CollectorMeasurementRecord(String adapterCode, String collectorCode, String channelCode, |
| | | long sequenceId, Instant deviceTime, String deviceTimeRaw, Instant serverReceivedAt, |
| | | String metricCode, BigDecimal value, String unit) { } |
| | | |
| | | record CollectorHistoryFaults(List<Long> missingSequences, Long duplicateSequence, |
| | | Long conflictingSequence, boolean outOfOrder) |
| | | { |
| | | public CollectorHistoryFaults |
| | | { |
| | | missingSequences = missingSequences == null ? List.of() : List.copyOf(missingSequences); |
| | | } |
| | | |
| | | public static CollectorHistoryFaults none() |
| | | { |
| | | return new CollectorHistoryFaults(List.of(), null, null, false); |
| | | } |
| | | } |
| | | |
| | | record ChannelState(int channelId, boolean online, DeviceWorkStatus workStatus) { } |
| | | |