chore: decouple history gb32960 decoding
This commit is contained in:
@@ -10,8 +10,31 @@ import com.lingniu.ingest.eventhistory.Jt808LocationHistoryController;
|
||||
import com.lingniu.ingest.eventhistory.Jt808RawFrameHistoryController;
|
||||
import com.lingniu.ingest.eventhistory.LocationHistoryController;
|
||||
import com.lingniu.ingest.eventhistory.RawFrameHistoryController;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.Gb32960BodyParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.Gb32960CommandParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.Gb32960MessageDecoder;
|
||||
import com.lingniu.ingest.protocol.gb32960.config.Gb32960AutoConfiguration;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.InfoBlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.InfoBlockParserRegistry;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.AlarmV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.DriveMotorV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.EngineV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.ExtremeValueV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.FuelCellV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.PositionV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.TemperatureV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.VehicleV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2016.VoltageV2016BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.AlarmV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.BatteryTemperatureV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.DriveMotorV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.EngineV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.FuelCellStackV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.FuelCellV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.MinParallelVoltageV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.PositionV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.SuperCapacitorExtremeV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.SuperCapacitorV2025BlockParser;
|
||||
import com.lingniu.ingest.protocol.gb32960.codec.parser.v2025.VehicleV2025BlockParser;
|
||||
import com.lingniu.ingest.sink.kafka.KafkaSinkAutoConfiguration;
|
||||
import com.lingniu.ingest.tdenginehistory.config.TdengineHistoryAutoConfiguration;
|
||||
import com.lingniu.ingest.tdenginehistory.TdengineHistoryReader;
|
||||
@@ -27,6 +50,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.net.URI;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Event History 查询/消费服务自动装配。
|
||||
@@ -42,7 +66,6 @@ import java.nio.file.Path;
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@AutoConfigureAfter({
|
||||
Gb32960AutoConfiguration.class,
|
||||
KafkaSinkAutoConfiguration.class,
|
||||
TdengineHistoryAutoConfiguration.class
|
||||
})
|
||||
@@ -86,6 +109,34 @@ public class EventHistoryAutoConfiguration {
|
||||
return new ApiExceptionHandler();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public Gb32960MessageDecoder gb32960HistoryMessageDecoder() {
|
||||
List<InfoBlockParser> parsers = List.of(
|
||||
new VehicleV2016BlockParser(),
|
||||
new DriveMotorV2016BlockParser(),
|
||||
new FuelCellV2016BlockParser(),
|
||||
new EngineV2016BlockParser(),
|
||||
new PositionV2016BlockParser(),
|
||||
new ExtremeValueV2016BlockParser(),
|
||||
new AlarmV2016BlockParser(),
|
||||
new VoltageV2016BlockParser(),
|
||||
new TemperatureV2016BlockParser(),
|
||||
new VehicleV2025BlockParser(),
|
||||
new DriveMotorV2025BlockParser(),
|
||||
new FuelCellV2025BlockParser(),
|
||||
new EngineV2025BlockParser(),
|
||||
new PositionV2025BlockParser(),
|
||||
new AlarmV2025BlockParser(),
|
||||
new MinParallelVoltageV2025BlockParser(),
|
||||
new BatteryTemperatureV2025BlockParser(),
|
||||
new FuelCellStackV2025BlockParser(),
|
||||
new SuperCapacitorV2025BlockParser(),
|
||||
new SuperCapacitorExtremeV2025BlockParser());
|
||||
Gb32960BodyParser bodyParser = new Gb32960BodyParser(new InfoBlockParserRegistry(parsers));
|
||||
return new Gb32960MessageDecoder(bodyParser, new Gb32960CommandParser());
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(Gb32960MessageDecoder.class)
|
||||
@ConditionalOnMissingBean
|
||||
|
||||
@@ -41,7 +41,8 @@ class EventHistoryAutoConfigurationTest {
|
||||
.containsOnlyKeys(
|
||||
"eventHistoryEnvelopeConsumerProcessor",
|
||||
"eventHistoryRawEnvelopeConsumerProcessor");
|
||||
assertThat(context).doesNotHaveBean(Gb32960DecodedFrameService.class);
|
||||
assertThat(context).hasSingleBean(Gb32960MessageDecoder.class);
|
||||
assertThat(context).hasSingleBean(Gb32960DecodedFrameService.class);
|
||||
assertThat(context).doesNotHaveBean(Gb32960FrameController.class);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user