Skip to content

Version 1.1.16-alpha

DANGER

Version dysfonctionnelle

Note

Changement de la méthode de récupération des données en enregistrant la trame dans un tableau buffer[20].

Ajout d'une fonction pour lire les logs

c++
void logsPC(char hexdata, char dataps1, char dataps2, char dataps3)

Code

c++
#define led 2


// Buffer
int buffer[20];


// Data à enregistrer
char datap1 = "";
char datap2 = "";
char datap3 = "";
char dataPos = 1;


char incomingByte;


void setup() {
  configset();
}


void loop() {
  digitalWrite(led, LOW);
  if (Serial3.available() > 0) {
    incomingByte = Serial3.read();


    // Check data
    if (dataPos <= 4) {


      if (dataPos == 4) {
        dataPos = 1;
        datap1 = "";
        datap2 = "";
        datap3 = "";
      }


      if (dataPos == 1) { datap1 = incomingByte; }
      if (dataPos == 2) { datap2 = incomingByte; }
      if (dataPos == 3) { datap3 = incomingByte; }


      Serial.print("DATAPOS : ");
      Serial.println(dataPos, HEX);


      dataPos++;
    }




    logsPC(incomingByte, datap1, datap2, datap3);
  }


  delay(100);
}


// Configuration
void configset() {
  // PC
  Serial.begin(9600);
  Serial.print(".");


  // HMI
  Serial3.begin(9600);
  Serial.print(".");


  pinMode(led, OUTPUT);
  Serial.print(".");


  // Fin chargement (ne pas supprimer)
  delay(200);
  Serial.println("Fin");
}










// Logs
void logsPC(char hexdata, char dataps1, char dataps2, char dataps3) {
  // Serial.println(hexdata);
  Serial.print("[HEX: ");
  Serial.print(hexdata, HEX);
  Serial.print("] [ASCII : ");
  Serial.print(hexdata);
  Serial.print("] [");


  // Check début (0x53 = S) (0x54 = T) (0x3C = <)
  if (hexdata == 0x53 || hexdata == 0x54 || hexdata == 0x3C) {
    Serial.println("DEBUT]");
  } else {
    Serial.println("]");
  }


  // Afficher contenu des datapos
  Serial.print(dataps1);
  Serial.print(dataps2);
  Serial.println(dataps3);


  // Détecte début de trame
  if(hexdata == 0x3C){
    Serial.println("-> DEBUT DE TRAME");
  }


  // Détection fin de trame
  if (hexdata == 0x3E) {
    Serial.println("-> FIN DE TRAME");
  }


  digitalWrite(led, HIGH);
}

Documentation/code du Projet B.R.A.S présent sur ce site sous license CC BY 4.0. (pour en savoir plus rdv dans la section LICENSE)