Salut à tous.
J'aimerai une variable pour chacune de mes sondes qui sont extraites du fichier txt du dossier device (W1) des sondes DS18B20
j'ai commencé à &crire un bout de code en c++ pour obtenir ces variables pour chaque sonds, j'obtiens bien chaque id .
je n'arrive pas à donner un petit nom pour chacune d'entre elles et d'afficher leur température .
en sachant que le dossier se compose comme tel : /sys/bus/w1/devices/28-3ce1e3805e9f/temperature ,/sys/bus/w1/devices/28-3ce1e38060ec/temperature ect.

et mon code :

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
 
int main (void) {
    DIR *dir;
    struct dirent *dirent;
    char dev[16];      // Dev ID
    char devPath[128]; // Path to device
    char buf[256];     // Data from device
    char tmpData[6];   // TempA * 1000 reported by device
    char path[] = "/sys/bus/w1/devices";
 
    //ssize_t numRead;
 
    dir = opendir (path);
 
    if (dir != NULL) {
	while ((dirent = readdir (dir)))
 
	if (dirent->d_type == DT_LNK && strstr(dirent->d_name, "28-") != NULL) {
	    strcpy(dev, dirent->d_name);
	    printf("\nDevice: %s\n", dev); // affiche tous les ID des sondes
	    sprintf(devPath, "%s/%s/w1_slave\n", path, dev);
	    printf(devPath);
	    //strncpy(tmpData, strstr(buf, "t=") + 2, 5);
	    float tempC = strtof(tmpData, NULL);
	    printf("%.3f C\n", tempC / 1000);
	}
	(void) closedir (dir);
	printf("\nfichier fermer\n");
    } else {
	perror ("Impossible d'ouvrire le fichier W1\n");
	return 1;
    }
}

merci pour votre aide, car je bloque !