Module UxIx3
Pour supprimer l'erreur de lecture initiale ( "Pas tout reçu, pas traité... nombre de données : 0"), qui est normale car on vient essayer de lire les données immédiatement après avoir envoyé la requête, il suffit d'envoyer une première requête juste après le setup.
Par contre, pour que cela fonctionne, il faut mettre le setup du port comm ET la première requête dans la tâche zéro, comme suit :
/* **********************
* ****************** *
* * Tâches Coeur 0 * *
* ****************** *
**********************
*/
int cpt=0;
void Task_LectureRMS(void *pvParameters) {
if (Source == "UxIx3")
{ Setup_JSY333(); // init port série
delay(100); // pour s'assurer que l'init du port série est ok coté module
PeriodeProgMillis=1000; // la première lecture aura lieu 1000ms plus tard, et les données auront été reçue
Requete_JSY333(); // requête initiale au module. La première lecture aura lieu PeriodeProgMillis =1000ms plus tard.
}
for ( ; ; ) {
probablement que la même chose s'applique pour le module UxIx2.
Et dans le sketch UxIx3 :
void Requete_JSY333() {
int i;
byte msg_send[] = { 0x01, 0x03, 0x01, 0x00, 0x00, 0x44, 0x44, 0x05 };
for (i = 0; i < 8; i++) {
MySerial.write(msg_send[i]);
}
}
Pour supprimer l'erreur de lecture initiale ( "Pas tout reçu, pas traité... nombre de données : 0"), qui est normale car on vient essayer de lire les données immédiatement après avoir envoyé la requête, il suffit d'envoyer une première requête juste après le setup.

Par contre, pour que cela fonctionne, il faut mettre le setup du port comm ET la première requête dans la tâche zéro, comme suit :
/* **********************
* ****************** *
* * Tâches Coeur 0 * *
* ****************** *
**********************
*/
int cpt=0;
void Task_LectureRMS(void *pvParameters) {
if (Source == "UxIx3")
{ Setup_JSY333(); // init port série
delay(100); // pour s'assurer que l'init du port série est ok coté module
PeriodeProgMillis=1000; // la première lecture aura lieu 1000ms plus tard, et les données auront été reçue
Requete_JSY333(); // requête initiale au module. La première lecture aura lieu PeriodeProgMillis =1000ms plus tard.
}
for ( ; ; ) {
probablement que la même chose s'applique pour le module UxIx2.
Et dans le sketch UxIx3 :
void Requete_JSY333() {
int i;
byte msg_send[] = { 0x01, 0x03, 0x01, 0x00, 0x00, 0x44, 0x44, 0x05 };
for (i = 0; i < 8; i++) {
MySerial.write(msg_send[i]);
}
}
V14.21 modifiée. 1 serveur UxIx3, 1 Linky de référence, 1 client Triac CE tampon + 1 client SSR CE tampon + 1 client SSR sur CE tri + 3 clients SSR sur 3 radiateurs bain d'huile d'appoint. Variateurs de fréquence Piscine.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.