Mask & fitres Can bus [RESOLU]

Bonjour à tous,

Je suis sur un projet de “stop dynamic” et clignotants défilants pour ma moto.
Dans cette optique j’utilise un arduino uno + schield CAN bus et une petite interface mosfet pour piloter une bande de leds.
Mon problèmes après maints essais et consultation web est que je ne parviens pas à isoler un code id qui correspond au statut de mes commandes clignotants sur la bécane.
Ce code est le 0x130.
Je joins le sketch récupéré sur github adapté à mon cas.
Si un “balaise” du bus CAN pouvait me remettre sur les rails je lui en serais très reconnaissant et le remercie par avance.
J-Pierre

/* sketch https://github.com/4G-Gregg/BMW-GS-CAN-Sniffer/blob/master/Sniff_Arduino_Terminal/Sniff_Arduino_Terminal.ino

21/10/2018 relevé sur ma 1200R  : Filtres 130 et 294
0x130  Lighting: turn signals & high beam - Oct 0x07 : CF=none, D7=Gauche, E7=droite, EF= warning
0x294  Speed and distance traveled on front wheel, ABS status & brake levers -
     Oct 0x02 : vitesse,  oct 0x06 : 0x03  ou 0x3 ou 0x07 frein serré
*/
#include <SPI.h>
#include "mcp_can.h"

unsigned char Flag_Recv = 0;
unsigned char len = 0;
unsigned char buf[8];
char str[20];

MCP_CAN CAN(10);

//---------------------------------  SETUP  -------------------------
void setup()
{
    Serial.begin(115200);
START_INIT:
    if(CAN_OK == CAN.begin(CAN_500KBPS))   // CAN_OK!
    {
        Serial.println("CAN BUS Shield init ok!");
    }
    else
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(100);
        goto START_INIT;
    } 

    //Set filter masks
    CAN.init_Mask(0, 0, 0xfff);
    CAN.init_Mask(1, 0, 0x000);

    //      -----------     Set filters     -------------
 //  CAN.init_Filt(0, 0, 0x294); // ABS Roue AV ; octet 2=Vit, octet 4=total, octet 6= poignée frein 0111=serré
     CAN.init_Filt(0, 0, 0x130); // Lighting: turn signals & high beam ;

    Serial.println("time,CAN-ID,b0,b1,b2,b3,b4,b5,b6,b7");
  //  Serial.println(); 
}
//--------------------------     BOUCLE    ---------------------------------
void loop(){
    unsigned char length = 0;
    unsigned char data[8];

    // Print in CSV format
    if(CAN_MSGAVAIL == CAN.checkReceive())
    {
        CAN.readMsgBuf(&length, data);  //  (&length, data)
        Serial.print(millis()/1000);    //  Affichage temps passé en sec
        Serial.print(",  ");
        Serial.print(CAN.getCanId(),HEX);
        for(int i = 0; i<length; i++){
            Serial.print(", ");
            if( data[i] < 0x10){ Serial.print("0");}
            Serial.print(data[i], HEX);
        }
        Serial.println("");
    }
}  // FIN

Je me réponds à moi même !!!
Le problème provenait de la mise à "000" de CAN.init_Mask(1, 0, 0x000); Il faut qu'il soit à 0xfff aussi.
N'utilisant pour mon application que deux codes obd et un seul pour mes premiers essais je ne pensais pas utiliser le buffer et mask 1.
Moralité, je n'ai pas encore tout compris aux subtilités du codage CAN. :slight_smile:
@+ Bon WE