

Avis de fin de support : le 7 octobre 2026, AWS le support de. AWS IoT Greengrass Version 1 Après le 7 octobre 2026, vous ne pourrez plus accéder aux AWS IoT Greengrass V1 ressources. Pour plus d'informations, rendez-vous sur [Migrer depuis AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connecteur Serial Stream
<a name="serial-stream-connector"></a>

**Avertissement**  <a name="connectors-extended-life-phase-warning"></a>
Ce connecteur est passé à la *phase de durée de vie prolongée* et AWS IoT Greengrass ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations aux fonctionnalités existantes, des correctifs de sécurité ou des corrections de bogues. Pour de plus amples informations, veuillez consulter [AWS IoT Greengrass Version 1 politique de maintenance](maintenance-policy.md).

Le [connecteur](connectors.md) Serial Stream lit et écrit sur un port série d'un périphérique AWS IoT Greengrass principal.

Ce connecteur prend en charge deux modes de fonctionnement :
+ **la lecture à la demande**. Reçoit les demandes de lecture et d'écriture dans les rubriques MQTT et publie la réponse de l'opération de lecture ou de l'état de l'opération d'écriture.
+ **l'attente active de lecture**. Lit à partir du port série à intervalles réguliers. Ce mode prend également en charge les Read-On-Demand requêtes.

**Note**  
Les requêtes de lecture sont limitées à une longueur de lecture maximale de 63 994 octets. Les requêtes d'écriture sont limitées à une longueur de données maximale de 128 000 octets.

Ce connecteur est disponible dans les versions suivantes.


| Version | ARN | 
| --- | --- | 
| 3 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/1` | 

Pour obtenir des informations sur les changements apportés aux versions, veuillez consulter le [Journal des modifications](#serial-stream-connector-changelog).

## Exigences
<a name="serial-stream-connector-req"></a>

Ce connecteur possède les critères suivants :

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Logiciel de base v1.9.3 ou version ultérieure.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) version 3.7 ou 3.8 installé sur le périphérique principal et ajouté à la variable d'environnement PATH.
**Note**  <a name="use-runtime-py3.8"></a>
Pour utiliser Python 3.8, exécutez la commande suivante pour créer un lien symbolique entre le dossier d'installation par défaut de Python 3.7 et les fichiers binaires Python 3.8 installés.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Une [ressource de périphérique locale](access-local-resources.md) du groupe Greengrass qui pointe vers le port série cible.
**Note**  
Avant de déployer ce connecteur, nous vous recommandons de configurer le port série et de vérifier que vous pouvez y accéder en lecture et en écriture. 

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Logiciel de base v1.7 ou version ultérieure.
+ [Python](https://www.python.org/) version 2.7 installé sur le périphérique principal et ajouté à la variable d'environnement PATH.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Une [ressource de périphérique locale](access-local-resources.md) du groupe Greengrass qui pointe vers le port série cible.
**Note**  
Avant de déployer ce connecteur, nous vous recommandons de configurer le port série et de vérifier que vous pouvez y accéder en lecture et en écriture. 

------

## Paramètres du connecteur
<a name="serial-stream-connector-param"></a>

Ce connecteur fournit les paramètres suivants :

`BaudRate`  
Vitesse de transmission de la connexion série.  
Nom affiché dans la AWS IoT console : débit en **bauds**  
Nécessaire : `true`  
Type : `string`  
Valeurs valides : `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
Schéma valide : `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
Délai (en secondes) pour une opération de lecture.  
Nom affiché dans la AWS IoT console : **Timeout**  
Nécessaire : `true`  
Type : `string`  
Valeurs valides : `1 - 59`  
Schéma valide : `^([1-9]|[1-5][0-9])$`

`SerialPort`  
Chemin d'accès absolu au port série physique sur le périphérique. Il s'agit du chemin d'accès source qui est spécifié pour la ressource du périphérique local.  
Nom affiché dans la AWS IoT console : **port série**  
Nécessaire : `true`  
Type : `string`  
Schéma valide : `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
ID de la ressource de l'appareil local qui représente le port série physique.  
Ce connecteur bénéficie d'un accès en lecture/écriture à la ressource.
Nom affiché dans la AWS IoT console : **ressource du port série**  
Nécessaire : `true`  
Type : `string`  
Schéma valide : `[a-zA-Z0-9_-]+`

`PollingRead`  
Définit le mode de lecture : Polling-Read ou. Read-On-Demand  
+ Pour le mode d'attente active de lecture, spécifiez `true`. Dans ce mode, les propriétés `PollingInterval`, `PollingReadType` et `PollingReadLength` sont obligatoires.
+ Pour Read-On-Demand le mode, spécifiez`false`. Dans ce mode, le type et les valeurs de longueur sont spécifiés dans la demande de lecture.
Nom affiché dans la AWS IoT console : **mode lecture**  
Nécessaire : `true`  
Type : `string`  
Valeurs valides : `true, false`  
Schéma valide : `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
Longueur des données (en octets) à lire dans chaque opération d'attente active de lecture. Cela s'applique uniquement lorsque vous utilisez le mode d'attente active de lecture.  
Nom affiché dans la AWS IoT console : **longueur de lecture du sondage**  
Obligatoire : `false`. Cette propriété est obligatoire lorsque `PollingRead` est `true`.  
Type : `string`  
Schéma valide : `^(|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-2][0-9]{3}|63[0-8][0-9]{2}|639[0-8][0-9]|6399[0-4])$`

`PollingReadInterval`  
L'intervalle (en secondes) auquel l'attente active de lecture a lieu. Cela s'applique uniquement lorsque vous utilisez le mode d'attente active de lecture.  
Nom affiché dans la AWS IoT console : **Intervalle de lecture du sondage**  
Obligatoire : `false`. Cette propriété est obligatoire lorsque `PollingRead` est `true`.  
Type : `string`  
Valeurs valides : 1 - 999  
Schéma valide : `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
Type de données que les threads d'interrogation lisent. Cela s'applique uniquement lorsque vous utilisez le mode d'attente active de lecture.  
Nom affiché dans la AWS IoT console : **type de lecture du sondage**  
Obligatoire : `false`. Cette propriété est obligatoire lorsque `PollingRead` est `true`.  
Type : `string`  
Valeurs valides : `ascii, hex`  
Schéma valide : `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
Indique s'il faut activer le contrôle de RTS/CTS flux. La valeur par défaut est `false`. Pour plus d'informations, consultez [RTS, CTS et RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR).   
Nom affiché dans la AWS IoT console : contrôle de **flux RTS/CTS**  
Nécessaire : `false`  
Type : `string`  
Valeurs valides : `true, false`  
Schéma valide : `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
Indique s'il convient d'activer le contrôle de flux de logiciel. La valeur par défaut est `false`. Pour plus d'informations, consultez [Software flow control](https://en.wikipedia.org/wiki/Software_flow_control).  
Nom affiché dans la AWS IoT console : **Contrôle du flux logiciel**  
Nécessaire : `false`  
Type : `string`  
Valeurs valides : `true, false`  
Schéma valide : `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
Parité du port série. La valeur par défaut est `N`. Pour plus d'informations, consultez [Parity](https://en.wikipedia.org/wiki/Serial_port#Parity).   
Nom affiché dans la AWS IoT console : **parité des ports série**  
Nécessaire : `false`  
Type : `string`  
Valeurs valides : `N, E, O, S, M`  
Schéma valide : `^(|[NEOSMneosm])$`

### Exemple de création de connecteur (AWS CLI)
<a name="serial-stream-connector-create"></a>

La commande CLI suivante crée un `ConnectorDefinition` avec une version initiale contenant le connecteur Serial Stream. Elle configure le connecteur pour le mode d'attente active de lecture.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MySerialStreamConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/SerialStream/versions/3",
            "Parameters": {
                "BaudRate" : "9600",
                "Timeout" : "25",
                "SerialPort" : "/dev/serial1",
                "SerialPort-ResourceId" : "my-serial-port-resource",
                "PollingRead" : "true",
                "PollingReadLength" : "30",
                "PollingReadInterval" : "30",
                "PollingReadType" : "hex"
            }
        }
    ]
}'
```

Dans la AWS IoT Greengrass console, vous pouvez ajouter un connecteur depuis la page **Connecteurs** du groupe. Pour de plus amples informations, veuillez consulter [Mise en route avec les connecteurs Greengrass (console)](connectors-console.md).

## Données d’entrée
<a name="serial-stream-connector-data-input"></a>

Ce connecteur accepte les demandes de lecture ou d'écriture pour les ports série sur deux sujets MQTT. Les messages d'entrée doivent être au format JSON.
+ Lire les demandes dans la rubrique `serial/+/read/#`.
+ Écrire les demandes dans la rubrique `serial/+/write/#`.

Pour publier dans ces rubriques, remplacez le caractère générique `+` par le nom d'objet principal et le caractère générique `#` par le chemin d'accès au port série. Par exemple :

```
serial/core-thing-name/read/dev/serial-port
```

**Filtre de rubriques :** `serial/+/read/#`  
Utilisez cette rubrique pour envoyer les demandes de lecture à la demande à une broche série. Les requêtes de lecture sont limitées à une longueur de lecture maximale de 63 994 octets.    
**Propriétés des messages**    
`readLength`  
Longueur de données à lire à partir du port série.  
Nécessaire : `true`  
Type : `string`  
Schéma valide : `^[1-9][0-9]*$`  
`type`  
Type de données à lire.  
Nécessaire : `true`  
Type : `string`  
Valeurs valides : `ascii, hex`  
Schéma valide : `(?i)^(ascii|hex)$`  
`id`  
ID arbitraire de la demande. Cette propriété est utilisée pour mapper une demande d'entrée à une réponse de sortie.  
Nécessaire : `false`  
Type : `string`  
Schéma valide : `.+`  
**Exemple d'entrée**  

```
{
    "readLength": "30",
    "type": "ascii",
    "id": "abc123"
}
```

**Filtre de rubriques :** `serial/+/write/#`  
Utilisez cette rubrique pour envoyer des demandes d'écriture à une broche série. Les requêtes d'écriture sont limitées à une longueur de données maximale de 128 000 octets.    
**Propriétés des messages**    
`data`  
Chaîne à écrire dans le port série.  
Nécessaire : `true`  
Type : `string`  
Schéma valide : `^[1-9][0-9]*$`  
`type`  
Type de données à lire.  
Nécessaire : `true`  
Type : `string`  
Valeurs valides : `ascii, hex`  
Schéma valide : `^(ascii|hex|ASCII|HEX)$`  
`id`  
ID arbitraire de la demande. Cette propriété est utilisée pour mapper une demande d'entrée à une réponse de sortie.  
Nécessaire : `false`  
Type : `string`  
Schéma valide : `.+`  
**Exemple d'entrée : demande ASCII**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**Exemple d'entrée : demande hex**  

```
{
    "data": "base64 encoded data",
    "type": "hex",
    "id": "abc123"
}
```

## Données de sortie
<a name="serial-stream-connector-data-output"></a>

Le connecteur publie des données de sortie dans deux rubriques :
+ Informations sur le statut à partir du connecteur dans la rubrique `serial/+/status/#`.
+ réponses à partir des demandes de lecture dans la rubrique `serial/+/read_response/#`.

Pour publier dans cette rubrique, le connecteur remplace le caractère générique `+` par le nom d'objet principal et le caractère générique `#` par le chemin d'accès au port série. Par exemple :

```
serial/core-thing-name/status/dev/serial-port
```

**Filtre de rubriques :** `serial/+/status/#`  
Utilisez cette rubrique pour écouter le statut des demandes de lecture et d'écriture. Si une propriété `id` est incluse dans la demande, elle est renvoyée dans la réponse.    
**Exemple de sortie : réussite**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**Exemple de sortie : échec**  
Un échec de réponse inclut une propriété `error_message` qui décrit l'erreur ou l'expiration rencontrée lors de l'opération de lecture ou d'écriture.  

```
{
    "response": {
        "status": "fail",
        "error_message": "Could not write to port"
    },
    "id": "abc123"
}
```

**Filtre de rubriques :** `serial/+/read_response/#`  
Utilisez cette rubrique pour recevoir les données de réponse à partir d'une opération de lecture. Les données de réponse sont codées en Base64 si le type est `hex`.    
**Exemple de sortie**  

```
{
    "data": "output of serial read operation"
    "id": "abc123"
}
```

## Exemple d'utilisation
<a name="serial-stream-connector-usage"></a>

<a name="connectors-setup-intro"></a>Suivez les étapes de haut niveau suivantes pour configurer un exemple de fonction Lambda en Python 3.7 que vous pouvez utiliser pour tester le connecteur.

**Note**  <a name="connectors-setup-get-started-topics"></a>
Si vous utilisez d'autres environnements d'exécution Python, vous pouvez créer un lien symbolique entre Python3.x et Python 3.7.
Les rubriques [Démarrer avec les connecteurs (console)](connectors-console.md) et [Démarrer avec les connecteurs (CLI)](connectors-cli.md) contiennent des étapes détaillées qui vous montrent comment configurer et déployer un exemple de connecteur Twilio Notifications.

1. Veillez à répondre aux [conditions requises](#serial-stream-connector-req) pour le connecteur.

1. <a name="connectors-setup-function"></a>Créez et publiez une fonction Lambda qui envoie des données d'entrée au connecteur.

   Enregistrez l'[exemple de code](#serial-stream-connector-usage-example) en tant que fichier PY. <a name="connectors-setup-function-sdk"></a>Téléchargez et décompressez le [SDK AWS IoT Greengrass de base pour Python](lambda-functions.md#lambda-sdks-core). Ensuite, créez un package zip contenant le fichier PY et le dossier `greengrasssdk` au niveau racine. Ce package zip est le package de déploiement vers lequel vous effectuez le téléchargement AWS Lambda.

   <a name="connectors-setup-function-publish"></a>Après avoir créé la fonction Lambda de Python 3.7, publiez une version de la fonction et créez un alias.

1. Configurez votre groupe Greengrass.

   1. <a name="connectors-setup-gg-function"></a>Ajoutez la fonction Lambda par son alias (recommandé). Configurez le cycle de vie Lambda comme étant de longue durée (ou dans `"Pinned": true` la CLI).

   1. <a name="connectors-setup-device-resource"></a>Ajoutez la ressource de périphérique locale requise et accordez read/write l'accès à la fonction Lambda.

   1. Ajoutez le connecteur à votre groupe et configurez ses [paramètres](#serial-stream-connector-param).

   1. Ajoutez au groupe des abonnements qui permettent au connecteur de recevoir des [données d'entrée](#serial-stream-connector-data-input) et d'envoyer des [données de sortie](#serial-stream-connector-data-output) sur des filtres de rubrique pris en charge.
      + <a name="connectors-setup-subscription-input-data"></a>Définissez la fonction Lambda comme source, le connecteur comme cible et utilisez un filtre de rubrique d'entrée compatible.
      + <a name="connectors-setup-subscription-output-data"></a>Définissez le connecteur en tant que source, AWS IoT Core en tant que cible et utilisez un filtre de rubrique de sortie pris en charge. Vous utilisez cet abonnement pour afficher les messages d'état dans la AWS IoT console.

1. <a name="connectors-setup-deploy-group"></a>Déployez le groupe.

1. <a name="connectors-setup-test-sub"></a>Dans la AWS IoT console, sur la page **Test**, abonnez-vous à la rubrique des données de sortie pour consulter les messages d'état du connecteur. L'exemple de fonction Lambda a une longue durée de vie et commence à envoyer des messages immédiatement après le déploiement du groupe.

   Lorsque vous avez terminé les tests, vous pouvez définir le cycle de vie Lambda à la demande (ou `"Pinned": false` dans la CLI) et déployer le groupe. Cela empêche la fonction d'envoyer des messages.

### Exemple
<a name="serial-stream-connector-usage-example"></a>

L'exemple suivant de fonction Lambda envoie un message d'entrée au connecteur.

```
import greengrasssdk
import json

TOPIC_REQUEST = 'serial/CORE_THING_NAME/write/dev/serial1'

# Creating a greengrass core sdk client
iot_client = greengrasssdk.client('iot-data')

def create_serial_stream_request():
	request = {
		"data": "TEST",
		"type": "ascii",
		"id": "abc123"
	}
	return request

def publish_basic_request():
	iot_client.publish(payload=json.dumps(create_serial_stream_request()), topic=TOPIC_REQUEST)

publish_basic_request()

def lambda_handler(event, context):
	return
```

## Licences
<a name="serial-stream-connector-license"></a>

Le connecteur Serial Stream inclut les logiciels/licences tiers suivants :
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

Ce connecteur est publié dans le cadre du contrat de [licence logicielle Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Journal des modifications
<a name="serial-stream-connector-changelog"></a>

Le tableau suivant décrit les modifications apportées à chaque version du connecteur.


| Version | Modifications | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Mise à niveau de l'environnement d'exécution Lambda vers Python 3.7, ce qui modifie les exigences d'exécution. | 
| 2 | L'ARN du connecteur a été mis à jour pour Région AWS le support. | 
| 1 | Première version.  | 

<a name="one-conn-version"></a>Un groupe Greengrass ne peut contenir qu'une seule version du connecteur à la fois. Pour de plus amples informations sur la mise à niveau d'une version de connecteur, veuillez consulter [Mise à niveau des versions du connecteur](connectors.md#upgrade-connector-versions).

## Consultez aussi
<a name="serial-stream-connector-see-also"></a>
+ [Intégrer à des services et protocoles à l'aide de connecteurs Greengrass](connectors.md)
+ [Mise en route avec les connecteurs Greengrass (console)](connectors-console.md)
+ [Démarrage avec les connecteurs Greengrass (CLI)](connectors-cli.md)