[Résolu] Classe non reconnue dans une librairie

Bonsoir,

Je me fais une petite carte avec une pro mini, un afficheur TFT et quelques boutons et un joystick
Comme je pense utiliser cette plateforme pour faire des petits prototypes, j’ai voulu me faire une librairie pour avoir accès facilement aux fonctions de base de la carte.
J’ai donc voulu faire une classe MiniArduino qui hérite de la librairie UTFT et à laquelle j’ajouterai des méthodes pour accéder aux boutons et au joystick
Le fichier MiniArduino.h

/*
 MiniArduino
 library for miniArduino plateform
*/

#ifndef _MINIARDUINOH_
#define _MINIARDUINOH_
#include <UTFT.h>

#if defined(ARDUINO) && ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
  #include "pins_arduino.h"
#endif

//declare the IO associated with the buttons
#define GREEN_BUTTON 2
#define RED_BUTTON 4

//declare the IO associated with the joystick
#define XAXIS A7
#define YAXIS A6

//declare IO associated with the display
#define PIN_SDA 11
#define PIN_SCL 13
#define PIN_CS 10
#define PIN_RST A0
#define PIN_RS 8
#define PIN_BLK 9

// Declare which fonts we will be using
#define FONTWIDTH 6
#define FONTHEIGHT 8


class MiniArduino : public UTFT {
    protected:
    
    public:
        MiniArduino(void);
        
        void begin(void);
        uint16_t battery(void);
        void calibrateJoystick(void);
        bool buttonState(uint8_t button);
        void setBacklight(uint8_t level);
        uint8_t getBacklight(void);
        
    private:
        //extern uint8_t SmallFont[];
        uint16_t    internalRef = 1100; // internal reference value in mV
        uint8_t     backlight = 255; // backlight level
    
}
#endif

Le fichier MiniArduino.cpp

/*
 MiniArduino
 library for MiniArduino plateform
*/

#include <UTFT.h>
#include <MiniArduino.h>

// Declare an instance of the class UTFT
// syntax : UTFT(Model, SDA, SCL, CS, RST[, RS]);


MiniArduino::MiniArduino(void) : UTFT(ST7735_80_160,PIN_SDA,PIN_SCL,PIN_CS,PIN_RST,PIN_RS){
}

/* begin
    Initialize the display, the IOs, the ADC's ref
    
    input:
            nothing
    output:
            nothing
*/
void MiniArduino::begin(void){
}

/* battery
    Measure battery level
    
    Change ADC's ref to Vcc and read internal bandgap reference value
    Compute battery level
    Switch back ADC's ref to internal
    
    input:
            nothing
    output:
            uint16_t : battery level in mV
*/
uint16_t MiniArduino::battery(void){
}

/* calibrateJoystick
    Find value of both axis of joystick while in rest position

    Makes multiple reads of both joystick axis and made an average
    keep value in struc joystick for later use
    
    input:
            nothing
    output:
            nothing
*/
void MiniArduino::calibrateJoystick(void){
}

/* buttonState
    Returns state of a button
    
    input:
            uint8_t : button to test (RED_BUTTON or GREEN_BUTTON)
    output:
            boolean : true or false (true if button is pushed)
*/
bool MiniArduino::buttonState(uint8_t button){
    if (button==RED_BUTTON)
        return digitalReadFast(RED_BUTTON)==0? true : false;
    else
        return digitalReadFast(GREEN_BUTTON)==0? true : false;
}

/* setBacklight
    Set backlight level
    
    input:
            uint8_t : level of backlight 0 --> 255 (0: off, 255: max)
    output:
            nothing
*/
void MiniArduino::setBacklight(uint8_t level){
}

/* getBacklight
    Get backlight level
    
    input:
            nothing
    output:
            uint8_t : level of backlight 0 --> 255 (0: off, 255: max)
*/
uint8_t MiniArduino::getBacklight(void){
    return backlight;
}

Les fichiers sont dans un répertoire MiniArduino dans libraries
Le problème c’est que dès que je veux utiliser cette librairie (comme le programme de test ci-dessous).

#include <UTFT.h>
#include <MiniArduino.h>

/* Test_miniArduino_lib
//
// Small plateform based on an arduino pro mini
// equiped with:
//    an 80x160 TFT screen
//    2 pushbuttons
//    an analog joystick
//
//
// This program requires the miniArduino library.
*/

MiniArduino myMini= MiniArduino();


void setup(){}
void loop(){}

J’ai l’erreur suivante

Arduino : 1.8.5 (Linux), TD: 1.45, Carte : "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"


Test_miniArduino_lib:16: error: expected initializer before 'myMini'
 MiniArduino myMini= MiniArduino();
             ^
Utilisation de la bibliothèque UTFT prise dans le dossier : /home/frederic/Arduino/libraries/UTFT (legacy)
Utilisation de la bibliothèque MiniArduino prise dans le dossier : /home/frederic/Arduino/libraries/MiniArduino (legacy)
exit status 1
expected initializer before 'myMini'

Manifestement ma classe n’est pas reconnue. Et là je comprends pas pourquoi.

Bonsoir,

Il manque un ; à la fin de la définition de class MiniArduino.

Merci kamill j'ai passé je ne sais combien de temps à chercher cette co...rie.
Avec les classes, je suis un peu en dehors de ma zone de confort alors je cherchais pas au bon endroit.

Ca arrive même à ceux qui ont l’habitude du C++