Utilizzalo createDecoderManifest con un AWS SDK - AWS Esempi di codice SDK

Sono disponibili altri esempi AWS SDK nel repository AWS Doc SDK Examples. GitHub

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzalo createDecoderManifest con un AWS SDK

Gli esempi di codice seguenti mostrano come utilizzare createDecoderManifest.

Java
SDK per Java 2.x
Nota

C'è altro da fare. 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; }
Kotlin
SDK per Kotlin
Nota

C'è di più 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 { region = "us-east-1" }.use { fleetwiseClient -> val response = fleetwiseClient.createDecoderManifest(request) return response.arn } }