Bonjour à tous.
un petit update de mon coté.
en branchant mon panMillenium dans la chaufferie, je 'mappercois qu'il broadcast automatiquement les registre SLout25 et 26 en cas de changement de valeur. meme s'il n'y a rien de defini dans vos registres %71 à %75.
c'est normal... en bas du fichier SLinSLout.h (ligne 209) du repertoire examples/panMillenium3, il y a une table "en dur" dans le code qui permet de forcer des broadcasts. vous pouvez editer cette table pour ajouter ou supprimer des lignes. il suffit de recompiler et telecharger dans le "pan" avec l'IDE arduino.
meme principe pour le "listen" avec un table (vide pour l'instant) qui se trouve ligne 134.
concernant le plantage de Normand, je regarde. de temps en temps je relis la taille memoire restant dans les "stack" pour voir si tout va bien de ce coté. en effet, on est au taquet de l’utilisation memoire et il y a peut etre une situation qui consomme un tout petit peu trop à un moment.
En fait le probleme c'est que la librairie standard panstamp utilise trop de memoire (>800bytes)...
a suivre
concernant la connectivité du soft Crouzet Logic en mode monitoring, j'ai fait des captures de flux (snifer) pour voir le type de trame. on reste bien sur du modbus, esclave 01, lecture mot "03" ou ecriture mot "10", avec des packets coté PC qui ne contiennent jamais plus de 32 mots(64octets data), mais des requêtes en lecture qui peuvent aller jusqu'à 123 mots(246 octest data).
voir fichier attaché ci dessous pour un exemple d'echange en mode monitoring. un cycle se repete, avec notamment une lecture de 246 byte à l'adresse 7000 (...)
en clair cela veux dire que pour transporter ces trames sur le 868mhz, il faut ruser car par defaut les paquets sont configurés pour ne pas depasser maximum 60 octets data...
par ailleurs, la vitesse du port série est de 115200, alors que l'equivalent en 868mhz est de 38400. donc il faut bufferiser.
par defaut le buffer RX de la libraire Arduino n'est que de 64 bytes.
dans la pratique, 9 fois sur 10 les trames seront compressées et tiendront sans probleme dans les 60 octets. mais il faut quand meme prevoir le cas ou la compression est de zero...
bref ca cogite.
une premiere solution est d'augmenter le debit 868mhz en modifiant les parametres de la libraire panstamp, pour passer à 115200 coté RF. techniquement ca marchera mais il y aura plus de paquet erronés et c'est pas trés bon car le protocole est concu sans "acknoledgement". donc tout paquet erroné est perdu jusqu à une prochaine diffusion.
une deuxieme solution est de ne renvoyer "que" 60 octets vers le PC/Modem, et de laisser le modem redemander une lecture du restant, et de re-assembler la trame modbus en retour vers le PC coté modem. ca parait un peu compliqué, mais c'est une direction techniquement faisable.
un autre soucis du mode monitoring est l'occupation du reseau 868 avec les echanges Crouzet - Millenium. il faut laisser des fenetres de temps qui permettent aux autre noeuds de continuer de broadcaster leur infos.
il faut aussi insérer les requetes de monitoring recues "over the air" (OTA) entre les requettes modbus correspondant au relectures SLin / SLout. car je pense que la solution ne sera bonne que si on peux continuer d'utiliser les fonctions normales listen/broadcast en meme temps que le monitoring.
il y a du taf et la solution n'est pas encore tres clair :)
la bonne nouvelle du jour c'est que tout les échanges entre le Crouzet Logic et le Millenium sont au format modbus ascii. y compis la mise à jour du firmware
, le téléchargement d'un nouveau programme, et l'arret/marche du controleur. bref, une fois que le monitoring marche, tout marche.