There are more AWS SDK examples available in the AWS Doc SDK Examples
Use createDecoderManifest with an AWS SDK
The following code examples show how to use createDecoderManifest.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in context in the following code example:
- Java
-
- SDK for Java 2.x
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. /** * 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; }-
For API details, see createDecoderManifest in AWS SDK for Java 2.x API Reference.
-
- Kotlin
-
- SDK for Kotlin
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. /** * 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 } }-
For API details, see createDecoderManifest
in AWS SDK for Kotlin API reference.
-