User Tools

Site Tools


rascii-fr

RASCII

Configuration

ASCII���Screenshot

Options

Ping

Une commande Ping sera envoyée avec cet intervalle en ms.
Désactivé en cas de valeur nulle.
Le Ping peut être utilisé comme "Bip d'homme mort".


Définition

Le protocole RASCII utilise l'HEXA pour tous les champs sauf le préfixe et le texte de la remarque.

Commande

Préfixe Longueur Commande Donnée Exemple
@ 00…FF 00…FF 0…n @040101

Réponse

Préfixe Longueur Commande Donnée Exemple
& 00…FF 00…FF 0…n

Événement

Préfixe Longueur Événement Donnée Exemple
$ 00…FF 00…FF 0…n $100200010102030405

Information

Préfixe Longueur Texte Exemple
# 00…FF 0…n #0CRocDino V0.1

Le texte information ne doit contenir aucun des préfixes. Cela rendra le message non valide et il sera rejeté.

Moniteur Série

L'entrée du moniteur série est un moyen pour faciliter la configuration d'une unité, par exemple les réglages WiFi.
L'entrée devra être lue jusqu'à ce qu'un saut de ligne a été détecté, et ne pas avoir de longueur de champs.

Aide

Préfixe Remarque
? Devrait afficher de l'aide concernant les commandes du moniteur.

CV

Préfixe Exemple Remarque
* *ssid=myhome La fonction d'aide devrait lister tous les réglages possible.


HEXA

HEXA est une représentation Hexadecimal-ASCII d'un nombre binaire.
Une valeur décimale de 47, par exemple, est représentée en HEXA comme "2F".

Exemples de code

Convertir une chaîne en HEXA en une valeur d'octect

Paramètres:

  • s = Chaîne HEXA

Retourne: Une valeur d'octect

byte HexA2Byte( const char* s ) {
  byte h, l, val;
  if( s[0] >= 'A' ) h = s[0] - 55;
  else h = s[0] -48; 
  if( s[1] >= 'A' ) l = s[1] - 55;
  else l = s[1] -48; 
  val = l + (h << 4);
  return val;
}

Convertir une valeur d’octet en une chaîne HEXA

Paramètres:

  • b = Valeur d'octet
  • s = Tampon pour la réception de la chaîne HEXA

Retourne: Le pointeur vers le tampon de chaîne HEX

const char* Byte2HexA(byte b, char* s) {
  static char cHex[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  s[0] = cHex[(b&0xF0)>>4];
  s[1] = cHex[ b&0x0F    ];
  s[2] = '\0';
  return s;
}


Séquence de lecture

  1. Lecture octet par octet jusqu'à ce que le préfixe est été détecté.
  2. Lecture des deux caractères HEXA suivants et les convertir en un nombre pour la longueur.
  3. Lecture de nombre d'octets comme fixé dans le champs longueur.
  4. Convertir l'HEXA en octets.
  5. Évaluer le message.
  6. Répéter.


Commandes

La carte # FF est diffusée.

Code Carte Description Paramètres Réponse
0 # Obtenir l'information aucun Une remarque avec l'information sur la version.
1 # Démarrage aucun Une remarque.
2 # Arrêt aucun Une remarque.
3 # Obtenir la configuration aucun La réponse de la configuration de la carte.
4 # Régler la configuration La configuration de la carte.
5 # Réinitialiser la configuration aucun
6 # Obtenir le CV CV-Haut, CV-Bas Un numéro de CV et une valeur de réponse.
7 # Régler le CV CV-Haut, CV-Bas, valeur Une remarque.
10 # Sortie numérique Adresse, port, on/off -
11 # Sortie analogique Adresse, Port, valeur La valeur peut être la luminosité, suivi par trois octets RGB.
12 # Accessoire Adresse, Port, aspect1) -
13 # Vitesse Adresse-Haute, Adresse-Basse, direction/vitesse2) -
14 # Fonction Adresse-Haute, Adresse-Basse, fonction, valeur, lumières, fx Lumières et FX(32bit) sont pour l'information seule et sont optionnels.
37 # PT ON aucun Une remarque.
38 # PT OFF aucun Une remarque.
39 # Obtention du CV accessoire Adresse-Haute, Adresse-Basse, CV-Haut, CV-Bas Un numéro de CV et une valeur de réponse.
40 # Réglage du CV accessoire Adresse-Haute, Adresse-Basse, CV-Haut, CV-Bas, valeur Une remarque.


Évènements

La carte # FF est diffusée.

Code Carte Description Paramètres Remarque
1 # Occupation Port, Statut on/off
2 # RFID Port, octets RFID Tous les octets RFID doivent être réglés à zéro pour signaler le départ.
L'envoi d'un identifiant d'un octet zéro sera également évalué comme étant parti.
3 # Entrée numérique Port, on/off
4 # Entrée analogique Port, valeur Haute/Basse

Les évènements peuvent être reconnu par le programme hôte.


Bibliothèques

Arduino

Dépannage

1)
0=droit, 1=dévié
2)
dir=0x80, vitesse=0x7F
rascii-fr.txt · Last modified: 2023/01/20 19:43 by phil45