Bon alors si je ne suis pas clair, je recommence…
Mon progPrinc.ino
#include <SPI.h>
#include <SD.h>
#include <MsTimer2.h>
#include <RTClib.h>
#include <Wire.h>
#include "Device.h"
#include "LecturePldUfd.h"
#include "LectureDm.h"
// Variables globales
bool recordRunning = false;
bool resetRunning = false;
bool supportPres = false;
LectureDm *lireDm;
Reset *resetBat;
LecturePldUfd *lirePldUfd;
void setup() {
// Du code pas important pour ce problème
}
void loop() {
if(recordRunning){
lireDm = new LectureDm(dirName);
if(!(recordRunning =lireDm->getBatFault1(BAT_FLT_1)))// Mise en route avec BAT_FAULT_1
ihmState(LED_ON, LED_OFF, LED_OFF, LED_OFF);
else if(!(recordRunning = lireDm->switchOffBatFault1(BAT_FLT_1))) // extinction BAT_FAULT_1
ihmState(LED_ON, LED_OFF, LED_OFF, LED_OFF);
else{
// Prêt à lire la DM
lireDm->rdyToReadDm();
// Voir Req-SLD-0120??
// lecture données DM
if(!lireDm->lectureDmData ()){
ihmState(LED_ON, LED_OFF, LED_OFF, LED_OFF);
recordRunning = false;
}
}
delete(lireDm);
recordRunning = false;
}
if(resetRunning){
resetBat = new Reset();
if(!(resetRunning = resetBat->miseEnRoute(BAT_FLT_1)))
ihmState(LED_OFF, LED_OFF, LED_ON, LED_OFF);
else if(!(resetRunning = resetBat->resetBat(PUT_RDY, SOC_RDY)))
ihmState(LED_OFF, LED_OFF, LED_ON, LED_OFF);
// On stoppe l'affichage de l'opération en cours
MsTimer2::stop();
// Mise à jour IHM
if(resetRunning)
ihmState(LED_OFF, LED_OFF, LED_OFF, LED_ON);
switchOffBat();
delete(resetBat);
resetRunning = false;
}
} // fin de loop
Ensuite mon fichier de gestion de l’IHM
Device.h
#ifndef DEVICE_H
#define DEVICE_H
#ifdef __cplusplus
extern "C" {
#endif
//==============================================================================
// Include files
#include <Arduino.h>
//==============================================================================
// Constants
// IHM Led
const unsigned int recordStatusOk = 6;
const unsigned int recordStatusKo = 7;
const unsigned int resetStatusOk = 8;
const unsigned int resetStatusKo = 9;
// Constantes LED
const unsigned int LED_ON = 0;
const unsigned int LED_OFF = 1;
// Constantes relais
const unsigned int RELAY_ON = 0;
const unsigned int RELAY_OFF = 1;
//==============================================================================
// Global functions
//extern void clignoEnCours(const bool pRecordRunning, const bool pResetRunning);
extern void clignoEnCours();
#ifdef __cplusplus
}
#endif
#endif // DEVICE_H
et mon Device.c
//==============================================================================
//
// Title: Device.c
// Purpose: Fonction de gestion IHM et des Relais.
//
// Created on: 27/06/2017 at 09:51:50 by Pascal.
// Copyright: SAFT. All Rights Reserved.
//
//==============================================================================
//==============================================================================
// Include files
#include "Device.h"
//==============================================================================
// Fonctions IHM
//==============================================================================
/*
* Clignotement LED en Orange
*/
//void clignoEnCours(const bool pRecordRunning, const bool pResetRunning){
void clignoEnCours(){
static bool outputEnCours = false;
if(recordRunning){
digitalWrite(recordStatusKo, outputEnCours);
digitalWrite(recordStatusOk, outputEnCours);
}else if(resetRunning){
digitalWrite(resetStatusKo, outputEnCours);
digitalWrite(resetStatusOk, outputEnCours);
}
outputEnCours = !outputEnCours;
}
et l’erreur qui va avec…
sketch\Device.c: In function 'clignoEnCours':
Device.c:25: error: 'recordRunning' undeclared (first use in this function)
if(recordRunning){
^
sketch\Device.c:25:6: note: each undeclared identifier is reported only once for each function it appears in
Device.c:29: error: 'resetRunning' undeclared (first use in this function)
}else if(resetRunning){
^
exit status 1
'recordRunning' undeclared (first use in this function)
Voila j’espère que c’est plus clair…