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.