Modifier le code d'une 'library' ?

Bonjour !

J'utilise la 'library' DS3231 (lien) qui renvoie les valeurs des mois et des jours en anglais.

Dans le code pour l'Arduino, j'ai créé quelques lignes pour contourner le problème, mais ceci complique (un peu) le programme.
En effet, la fonction retournant un pointeur sur un tableau de char représentant les jours ou les mois, ceci nécessite donc un peu de gymnastique.

Ma question
Ne serait-il pas plus simple de modifier directement le code en C++ de cette bibliothèque de manière à ce qu'elle renvoie les termes en français ?
(Toutefois, ceci ne me semble pas trop réglementaire...)

Quel est votre avis ?

Merci pour vos conseils.

Bonsoir
Oui c’est toujours possible. J’ai fait des modifications dans une librairie qui gère mon écran tft. Le seul inconvénient : lors des mises à jour de la librairie les modifications sont supprimées et il faut les remettre.

@EGT59
OK pour les modifications à apporter à chaque mise à jour.
Le tout est de s'en souvenir !

Bonsoir standardUser

Il faut copier la bibliothèque modifiée dans le même répertoire que le sketch et appeler la bibliothèque avec le nom entre des guillemets:
#include "DS3231.h"
Ainsi, plus de soucis de mise à jour.

Cordialement
jpbbricole

@jpbricole
Ca n'a pas l'air de fonctionner...
Je verrai ceci demain plus calmement.

il ne faut pas copier le répertoire, mais tout les fichiers du C++

@jpbbricole

Oui, oui, j'ai bien compris.
J'ai copié tout le dossier dans le sketch.

Mais en supprimant le dossier 'DS3231' du dossier 'libraries', alors le compilateur indique que la library est absente.

Donc, l'IDE ne tient pas compte de la nouvelle version de la library, version stockée dans le sketch.
Capture d’écran 2024-07-01 à 22.15.57
Capture d’écran 2024-07-01 à 22.16.45
Capture d’écran 2024-07-01 à 22.17.26

Pas la peine de bricoler la librairie.
La variable dow est public donc tu peux en récupérer la valeur et l'utiliser comme index dans ton tableau.

@ fdufnews
Je récupère effectivement la variable, mais elle est de type *char.
Et je dois passer par des if-else pour convertir les 'sun' et 'mon' en 'dim' et 'lun'...

En modifiant le .cpp, ceci m'évitait ces lignes de code.

La méthode getTime();
retourne une structure Time et le champs dow est ce que tu cherches
class Time
{
public:
uint8_t hour;
uint8_t min;
uint8_t sec;
uint8_t date;
uint8_t mon;
uint16_t year;
uint8_t dow;

Time();

};

Merci !
Je n'avais pas vu
uint8_t dow;