Quantcast
Viewing all articles
Browse latest Browse all 4921

Français • Re: gpio c++

salut les gars ! au secour au secour !!!!
ma carte SD ne demarre plus , ilisible sur un autre ordinateur ! donc j'ai tous formater !
j'avais une autre carte SD raspberry blueseye toute neuve , mais la je rencontre des erreurs , quand j'installe la bibliotheque de daniel .

le test fonctionne bien ,

quand je mais ce code

Code:

#include <string>#include <algorithm>#include <iostream>#include <fstream>#include <iomanip>#include "gpioPin.hpp"#include <unistd.h>#include <signal.h>#include <math.h>#include <array>#include "BB_DS18B20.hpp"#include <vector>using namespace std;BB_DS18B20 * ds18b20;std::vector<unsigned long long > ds_ID;  //vector contenant l'ID des ds18b20std::vector<double> ds_temperature;      //vector qui va contenir les températures des ds18b20void loadDSConfig(string filename, std::vector<unsigned long long> &array){    unsigned long long ds_ID;    stringstream ss;    ifstream file(filename);    if (file.is_open()) {       string line;       while (getline(file, line)) {          // enleve espace          line.erase(remove(line.begin(), line.end(), ' '), line.end());          //  avons-nous au moins 17 caracteres          if(line.size() ==17)          {             // ok avons-nous 28-             if(line.substr(0,3) == "28-")              {                 stringstream ss(line.substr(3,-1));                 ss >> hex >>  ds_ID;                 ds_ID = (ds_ID << 8) | 0x28;                 array.push_back(ds_ID);  // valide donc insère ce capteur dans la matrice vector ds_ID               }          }       }    file.close();   }}void lireDS18B20(){    // partir une  conversion    ds18b20->GlobalStartConversion();    // lire les capteurs    // l'indetification des DS18B20  sont dans ds_ID    for(uint loop=0;loop < ds_ID.size();loop++)    {     if(ds18b20->ReadSensor(ds_ID[loop]))      {        // valeur valide        ds_temperature[loop]=ds18b20->temperature;      }      else        ds_temperature[loop]=-9999.9;    }}void afficherDS18B20(){    // afficher les valeurs de températures    // les valeurs sont dans la matrice en vecteur ds_temperature    for(uint loop=0;loop < ds_ID.size();loop++)    {      cout << ds18b20->IdToString(ds_ID[loop]) << " : ";      if(ds_temperature[loop]==(-9999.9))          cout << "-----" << endl;      else          cout << setw(6) << fixed << setprecision(1) <<  (int(ds_temperature[loop]*2))/2.0 << "°C" << endl;    }}int main(void){  /******  ceci est le setup  ******/  int DS_PIN=4;  pinMode(DS_PIN,OPENDRAIN_PULLUP);  ds18b20 = new BB_DS18B20(gpioline[DS_PIN]);  // charge info sur les ds18b20  loadDSConfig("DS18B20.conf", ds_ID);  // créer  le vecteur contenant la température des DS18b20  for(uint loop=0;loop< ds_ID.size() ;loop++)      ds_temperature.push_back(-9999.9); //  enregistre une information invalide pour commencer  /****** ceci est la loop  *****/  while(1)  {    lireDS18B20();    afficherDS18B20();    // insérer deux lignes    cout << endl << endl;    // Délai de 4.25 secondes environ    usleep(4250000);  } delete ds18b20; return 0;}
la c'est le drame

g++ -Wall -g -c BB_DS18B20.cpp
g++ -Wall -g -c gpioPin.cpp
g++ -Wall -g -c main.cpp
In file included from /usr/include/c++/10/vector:67,
from main.cpp:12:
/usr/include/c++/10/bits/stl_vector.h: In member function 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = long long unsigned int; _Alloc = std::allocator<long long unsigned int>]':
/usr/include/c++/10/bits/stl_vector.hImage may be NSFW.
Clik here to view.
:1198:
21: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' changed in GCC 7.1


c'est pas due as une mise a jour ou car je n'ai pas installer wiringpi avant???

Statistics: Posted by ludoraspberry — Wed Feb 21, 2024 4:34 pm



Viewing all articles
Browse latest Browse all 4921

Trending Articles