RS232
Source <RS> (RS232)
La source <RS> contient les événements reçu par le second RS232 des modules.
ATTENTION : Tous les modules ne disposent pas systématiquement d'un port RS. En principe le port est mappé sur les mêmes port que les boutons 1 et 2
L'event "RS" recevra des trames qui seront définies par un marqueur de début (RS232_STX) et de fin (RS232_ETX)
Pour les modules disposants de cette fonctionnalité, il faut l'activer dans le config (ce qui désactive les boutons utilisant les même IO) avec :
[General]
...
RS232=1 // pour activer la fonction (par defaut disabled => 0)
RS232_BD=9600 // vitesse (par defaut 9600)
RS232_STX=2 // Ascii du start (par def 0)
RS232_ETX=3 // ASCII du stop (par def 10 = LF)
Les événements sont les codes reçus précédés d'un M (message). Exemple : M12345678 pour le message <STX>12345678<ETX> reçu
Dans le cas d'un lecteur de carte à puce, le message reçu aura la forme : <STX>xxxxxxxxxx<ETX>
Exemple de carte : ␂0300918BDBC2␃␂0300918BDBC2␃␂1F004B348AEA␃
La variable lastRSMsg contiendra le dernier message reçu
Exemple :
DP(GS(lastRSMsg));
Exemple d'arbre dans le main.xml (traitement des messages RS232 reçu par 2 cartes à puces avec les codes 0300918BDBC2 et 1F004B348AEA):
<RS>
<MHELLO>DP(Hello);</MHELLO>
<M1F004BA92D>DP(Card 1F004BA92D);MS(C_1F004BA92D);</M1F004BA92D>
<M0300918BDBC2>DP(Mr Smith);</M0300918BDBC2>
<M1........>DP(Card 1xxxxxxxxx);MS(CC(C_,GS(lastRSMsg)));</M1........>
</RS>
Dans le cas d'un traitement centralisé des cartes à puces, le MS permet l'envoi des messages :
MS(CC(C_,GS(lastRSMsg)));
qui va envoyer le message MQTT :
MQTT [MirTOS]:MT200_wm2/E=STATE&FM=C_1F004B348AEA&R=X1XX&P=0019&B=0XX&TS=20221029192912
En version 1.xx de MirTOS, la forme des messages étaient (DR1 est l'identifiant de l'émetteur, ici DR1 pour Door1) :
C=$$$$$$$$$$?mCardServer/DR1_$$$$$$$$$$;
c'est à dire à réception d'un code de carte de 10 caractères ($), envoyer le message MQTT (m) "DR1_$$$$$$$$$$" (les $ étant remplacés par le code de carte) avec le topic CardServer
Ce qui donnait des messages MQTT avec le Topic CardServer et le message DR1_$$$$$$$$$$ où les $$$$$$$$$$ étaient les messages (no de carte).
En version 2.xx, avec l'utilisation de MQTTSend(Topic,Message) on aurait le même message avec ;
MQ(CardServer,CC(DR1_,SLF(GS(lastRSMsg),10)));
Créé avec HelpNDoc Personal Edition: Produire des livres Kindle gratuitement