As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Crie um grupo de dispositivos no IDT para FreeRTOS
Os dispositivos a serem testados são organizados em grupos de dispositivos. Cada grupo de dispositivos consiste em um ou mais dispositivos idênticos. Você pode configurar o IDT para FreeRTOS para testar um único dispositivo em um grupo ou vários dispositivos em um grupo. Para acelerar o processo de qualificação, o IDT para FreeRTOS pode testar dispositivos com as mesmas especificações em paralelo. Ele usa o método round-robin para executar um grupo de testes diferente em cada dispositivo de um grupo de dispositivos.
Você pode adicionar um ou mais dispositivos a um grupo de dispositivos editando a seção devices
do modelo device.json
na pasta configs
.
nota
Todos os dispositivos no mesmo grupo devem ser da mesma especificação técnica e SKU.
Para habilitar as compilações paralelas do código-fonte para diferentes grupos de teste, o IDT para FreeRTOS copia o código-fonte para uma pasta de resultados dentro da pasta onde o IDT para FreeRTOS foi extraído. O caminho do código-fonte no comando de compilação ou atualização deve ser referenciado por meio da variável testdata.sourcePath
ou sdkPath
. O IDT para FreeRTOS substitui esta variável por um caminho temporário do código-fonte copiado. Para obter mais informações, consulte, Variáveis do IDT para FreeRTOS.
Veja a seguir um exemplo do arquivo device.json
usado para criar um grupo de dispositivos com vários dispositivos.
[ { "id": "
pool-id
", "sku": "sku
", "features": [ { "name": "WIFI", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "HTTP | MQTT" } ] }, { "name": "BLE", "value": "Yes | No" }, { "name": "TCP/IP", "value": "On-chip | Offloaded | No" }, { "name": "TLS", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both | No" }, { "name": "KeyProvisioning", "value": "Import | Onboard | No" } ], "devices": [ { "id": "device-id
", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*
" }, ***********Remove the section below if the device does not support onboard key generation*************** "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key
", "secureElementSerialNumber": "secure-element-serialNo-value
", "preProvisioned" : "Yes | No" }, ********************************************************************************************************** "identifiers": [ { "name": "serialNo", "value": "serialNo-value
" } ] } ] } ]
Os seguintes recursos são usados no arquivo device.json
:
id
-
Um ID alfanumérico definido pelo usuário que identifica exclusivamente um grupo de dispositivos. Os dispositivos que pertencem a um grupo devem ser do mesmo tipo. Quando um conjunto de testes está em execução, os dispositivos do grupo são usados para paralelizar a carga de trabalho.
sku
-
Um valor alfanumérico que identifica exclusivamente a placa sendo testada. A SKU é usada para rastrear as placas qualificadas.
nota
Se você quiser listar sua placa no AWS Partner Device Catalog, o SKU especificado aqui deve corresponder ao SKU que você usa no processo de listagem.
features
-
Uma matriz que contém os recursos suportados pelo dispositivo. AWS IoT Device Tester usa essas informações para selecionar os testes de qualificação a serem executados.
Os valores compatíveis são:
TCP/IP
-
Indica se sua placa suporta uma TCP/IP pilha e se ela é suportada no chip (MCU) ou descarregada em outro módulo. TCP/IP é necessário para a qualificação.
WIFI
-
Indica se a placa tem recursos de Wi-Fi. Deve ser definido como
No
, seCellular
estiver definido comoYes
. Cellular
-
Indica se a placa tem recursos de celular. Deve ser definido como
No
, seWIFI
estiver definido comoYes
. Quando esse recurso estiver configurado comoYes
, o FullSecureSockets teste será executado usando EC2 instâncias AWS t2.micro e isso poderá gerar custos adicionais para sua conta. Para obter mais informações, consulte os EC2 preços da Amazon. TLS
-
Indica se sua placa oferece suporte a TLS. O TLS é necessário para qualificação.
PKCS11
-
Indica o algoritmo de criptografia de chave pública que a placa suporta. PKCS11 é necessário para a qualificação. Os valores compatíveis são
ECC
,RSA
,Both
eNo
.Both
indica que a placa é compatível com os algoritmosECC
eRSA
. KeyProvisioning
-
Indica o método de gravação de um certificado de cliente X.509 confiável em sua placa. Os valores válidos são
Import
,Onboard
eNo
. O provisionamento de chaves é necessário para a qualificação.-
Use
Import
se a sua placa permitir a importação de chaves privadas. O IDT criará uma chave privada e criará isso para o código-fonte do FreeRTOS. -
Use
Onboard
se a placa for compatível com a geração de chaves privadas integradas (por exemplo, se o dispositivo tiver um elemento seguro ou se você preferir gerar o seu próprio par de chaves de dispositivo e certificado). Adicione um elementosecureElementConfig
em cada uma das seções do dispositivo e coloque o caminho absoluto para o arquivo de chave pública no campopublicKeyAsciiHexFilePath
. -
Se a placa não for compatível com o provisionamento de chaves, use
No
.
-
OTA
-
Indica se sua placa suporta a funcionalidade de atualização over-the-air (OTA). O recurso
OtaDataPlaneProtocol
indica a qual protocolo de plano de dados OTA o dispositivo oferece suporte. O atributo será ignorado se o dispositivo não oferecer suporte ao recurso OTA. Quando"Both"
é selecionado, o tempo de execução do teste OTA é prolongado devido à execução de testes MQTT, HTTP e mistos.nota
A partir do IDT v4.1.0,
OtaDataPlaneProtocol
aceita somenteHTTP
eMQTT
como valores compatíveis. BLE
-
Indica se a placa é compatível com Bluetooth Low Energy (BLE).
devices.id
-
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.
devices.connectivity.protocol
-
O protocolo de comunicação usado para se comunicar com esse dispositivo. Valor compatível:
uart
. devices.connectivity.serialPort
-
A porta serial do computador host usada para se conectar aos dispositivos que estão sendo testados.
devices.secureElementConfig.PublicKeyAsciiHexFilePath
-
O caminho absoluto para o arquivo que contém a chave pública de bytes hexadecimal extraída da chave privada integrada.
Formato de exemplo:
3059 3013 0607 2a86 48ce 3d02 0106 082a 8648 ce3d 0301 0703 4200 04cd 6569 ceb8 1bb9 1e72 339f e8cf 60ef 0f9f b473 33ac 6f19 1813 6999 3fa0 c293 5fae 08f1 1ad0 41b7 345c e746 1046 228e 5a5f d787 d571 dcb2 4e8d 75b3 2586 e2cc 0c
Se sua chave pública estiver no formato .der, você pode codificar a chave pública em hexadecimal diretamente para gerar o arquivo hexadecimal.
Exemplo de comando para a chave pública .der para gerar o arquivo hexadecimal:
xxd -p pubkey.der > outFile
Se sua chave pública estiver no formato .pem, é possível extrair a parte codificada em base64, decodificá-la em formato binário e, em seguida, codificá-la em hexadecimal para gerar o arquivo hexadecimal.
Por exemplo, use esses comandos para gerar um arquivo hexadecimal para a chave pública .pem:
-
Retire a parte codificada em base64 da chave (retire o cabeçalho e o rodapé) e armazene-a em um arquivo, por exemplo, nomeie-a como
base64key
, execute este comando para convertê-la para o formato .der:base64 —decode base64key > pubkey.der
-
Execute o comando
xxd
para convertê-la para o formato hexadecimal.xxd -p pubkey.der > outFile
-
devices.secureElementConfig.SecureElementSerialNumber
-
(Opcional) O número de série do elemento seguro. Forneça esse campo quando o número de série for impresso junto com a chave pública do dispositivo ao executar o projeto FreeRTOS demo/test .
devices.secureElementConfig.preProvisioned
-
(Opcional) Defina como "Sim" se o dispositivo tiver um elemento seguro pré-provisionado com credenciais bloqueadas, que não possa importar, criar ou destruir objetos. Essa configuração tem efeito apenas quando o
features
tem aKeyProvisioning
definida como "Onboard", junto comPKCS11
definida como "ECC". identifiers
-
(Opcional) Uma matriz de pares de nome-valor arbitrários. Você pode usar esses valores nos comandos de compilação e atualização descritos na próxima seção.