Utilizzo di createDecoderManifest con un SDK AWS - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Utilizzo di createDecoderManifest con un SDK AWS

Gli esempi di codice seguenti mostrano come utilizzare createDecoderManifest.

Java
SDK per Java 2.x
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

/** * Creates a new decoder manifest. * * @param name the name of the decoder manifest * @param modelManifestArn the ARN of the model manifest * @return a {@link CompletableFuture} that completes with the ARN of the created decoder manifest */ public CompletableFuture<String> createDecoderManifestAsync(String name, String modelManifestArn) { String interfaceId = "can0"; NetworkInterface networkInterface = NetworkInterface.builder() .interfaceId(interfaceId) .type(NetworkInterfaceType.CAN_INTERFACE) .canInterface(CanInterface.builder() .name("canInterface0") .protocolName("CAN") .protocolVersion("1.0") .build()) .build(); // Vehicle.Powertrain.EngineRPM decoder. SignalDecoder engineRpmDecoder = SignalDecoder.builder() .fullyQualifiedName("Vehicle.Powertrain.EngineRPM") .interfaceId(interfaceId) .type(SignalDecoderType.CAN_SIGNAL) .canSignal(CanSignal.builder() .messageId(100) .isBigEndian(false) .isSigned(false) .startBit(0) .length(16) .factor(1.0) .offset(0.0) .build()) .build(); // Vehicle.Powertrain.VehicleSpeed decoder. SignalDecoder vehicleSpeedDecoder = SignalDecoder.builder() .fullyQualifiedName("Vehicle.Powertrain.VehicleSpeed") .interfaceId(interfaceId) .type(SignalDecoderType.CAN_SIGNAL) .canSignal(CanSignal.builder() .messageId(101) .isBigEndian(false) .isSigned(false) .startBit(16) .length(16) .factor(1.0) .offset(0.0) .build()) .build(); CreateDecoderManifestRequest request = CreateDecoderManifestRequest.builder() .name(name) .modelManifestArn(modelManifestArn) .networkInterfaces(List.of(networkInterface)) .signalDecoders(List.of(engineRpmDecoder, vehicleSpeedDecoder)) .build(); CompletableFuture<String> result = new CompletableFuture<>(); getAsyncClient().createDecoderManifest(request) .whenComplete((response, exception) -> { if (exception != null) { Throwable cause = exception.getCause() != null ? exception.getCause() : exception; if (cause instanceof DecoderManifestValidationException) { result.completeExceptionally(new CompletionException("The request contains signal decoders with validation errors: " + cause.getMessage(), cause)); } else { result.completeExceptionally(new CompletionException("Failed to create decoder manifest: " + exception.getMessage(), exception)); } } else { result.complete(response.arn()); // Complete successfully with the ARN } }); return result; }
  • Per informazioni dettagliate sull’API, consulta createDecoderManifest nella documentazione di riferimento dell’API AWS SDK for Java 2.x.

Kotlin
SDK per Kotlin
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

/** * Creates a new decoder manifest. * * @param decName the name of the decoder manifest * @param modelManifestArnVal the ARN of the model manifest * @return the ARN of the decoder manifest */ suspend fun createDecoderManifest(decName: String, modelManifestArnVal: String?): String { val interfaceIdVal = "can0" val canInter = CanInterface { name = "canInterface0" protocolName = "CAN" protocolVersion = "1.0" } val networkInterface = NetworkInterface { interfaceId = interfaceIdVal type = NetworkInterfaceType.CanInterface canInterface = canInter } val carRpmSig = CanSignal { messageId = 100 isBigEndian = false isSigned = false startBit = 16 length = 16 factor = 1.0 offset = 0.0 } val carSpeedSig = CanSignal { messageId = 101 isBigEndian = false isSigned = false startBit = 0 length = 16 factor = 1.0 offset = 0.0 } val engineRpmDecoder = SignalDecoder { fullyQualifiedName = "Vehicle.Powertrain.EngineRPM" interfaceId = interfaceIdVal type = SignalDecoderType.CanSignal canSignal = carRpmSig } val vehicleSpeedDecoder = SignalDecoder { fullyQualifiedName = "Vehicle.Powertrain.VehicleSpeed" interfaceId = interfaceIdVal type = SignalDecoderType.CanSignal canSignal = carSpeedSig } val request = CreateDecoderManifestRequest { name = decName modelManifestArn = modelManifestArnVal networkInterfaces = listOf(networkInterface) signalDecoders = listOf(engineRpmDecoder, vehicleSpeedDecoder) } IotFleetWiseClient.fromEnvironment { region = "us-east-1" }.use { fleetwiseClient -> val response = fleetwiseClient.createDecoderManifest(request) return response.arn } }
  • Per informazioni dettagliate sull’API, consulta createDecoderManifest nella documentazione di riferimento dell’API AWS SDK per Kotlin.