Hi friends, 

I'm trying to read the voltage inputs from two analog IR distance sensors 
plugged into AIN0 and AIN1 using C++ code. 

I used Derek Molloy's code which can successfully read voltage values from 
one Analog pin. However, whenever I modify the code and try to read more 
than one analog pin, *I receive this error: *

terminate called after throwing an instance of 'std::ios_base::failure'
  what():  basic_filebuf::underflow error reading the file
Aborted 

I'm not really sure what this error is or why I'm getting it. Please let me 
know if you have knowledge on this matter:

*Code is as follows: *

#include<iostream>
#include<fstream>
#include<string>
#include<sstream>
#include<cmath>
using namespace std;

#define LDR_PATH "/sys/bus/iio/devices/iio:device0/in_voltage"

int readAnalog(int number){  
   
   stringstream ss; 
   
   ss << LDR_PATH << number << "_raw"; 
   
   fstream fs; 
   
   fs.open(ss.str().c_str(), fstream::in); 
   
   fs >> number; 
   
   fs.close(); 
   
   return number;
   
}

int main(int argc, char* argv[]){
   
   cout << "Starting the IR distance sensor program:" << endl;
   
   while(1) {
   
      int value0 = readAnalog(0);
      int value1 = readAnalog(1);
      float V0 = ((float)value0 / 4096) * 1.8;
      float V1 = ((float)value1 / 4096) * 1.8; 
      
      cout << "Sensor0 is: " << V0 << " Sensor1 is: " << V1 << '\r' << 
flush;
      
      usleep(100000); 
      
   }
   
   return 0;
}

I know this is some sort of access error, and there is a workaround for the 
python libraries 
(see: 
https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/source/c_adc.c
 
). But I am unsure as to how I can use this information in the context of 
C++ code. 

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to