#5764
Christian
Participant

Salut Dominique

Ton projet est génial, et je souhaite vraiment t’aider a l’implémenter de façon a minimiser la maintenance et assurer sa pérennité. La facon que tu a modifier cause plusieurs soucis, non pas pour MRL mais pour toi. Laisse moi t’expliquer.

MRL et MRLComm son intimement lié. Des modifications a l’un ou a l’autre peuvent generer des changement dans sa contre-partie. De plus, une partie de MRLComm est généré automatiquement par MRL.

Qu’est que ca signifie? C’est que chaque fois que MRLComm sera modifié, tu devras mettre ton code a jour pour qu’il puissent continuer a fonctionner, et tu n’as aucun controle sur le quand et sur le quoi doit etre mis a jour. Quand tu n’auras plus le temps ou le gout de faire les mise a jour, ton code va malheureusement tomber dans les oubliettes puisque plus personne ne pourra l’utiliser.

Par contre, si tu utilise MRLComm comme une librairie (par le customMsg/publishCustomMsg) ou que tu integre ton code comme un service MRL. Ton code est indépendant de Mrlcomm et n’importe quel quidam peut mettre a jour la librairie sans que ca brise ton code. Donc, le jour ou tu délaissera le projet, ton code pourra continuer a fonctionner tant qu’il sera utile.

C’est un principe important en open source pour s’assurer des compatibilités.

CustomMsg est bien plus qu’un simple transfert d’octets. L’exemple que j’ai fourni est simple, 2 octets son transferé du python a l’arduino puis vers le python a nouveau, mais tu peux aussi l’utiliser pour sérialiser des fonctions ou des structure de données complexes.

par exemple tu peux sérialiser la fonction
maFonction(byte, byte, int){
arduino.customMsg(FUNCTION_NAME,byte, byte, int >> 8, int & 0xFF)
}

et tu peux désérialiser la function du coté d’arduino
et vice-versa.

J’espere que cet information te sera utile, laisse moi savoir si je peux t’aider de quelconque facon

Christian