diff options
author | Josh Blum <josh@joshknows.com> | 2010-04-26 12:16:37 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-04-26 12:16:37 -0700 |
commit | 1217b8d67c3bef98195836fe10ab39576642b340 (patch) | |
tree | 97c8e964b38a27db66fcb2f68a646e483b3de436 /host/lib/types.cpp | |
parent | 0c609b96574095affe12d9aaa53bead98faba4f3 (diff) | |
download | uhd-1217b8d67c3bef98195836fe10ab39576642b340.tar.gz uhd-1217b8d67c3bef98195836fe10ab39576642b340.tar.bz2 uhd-1217b8d67c3bef98195836fe10ab39576642b340.zip |
Got eeprom read/write dboard ids working.
Moved named prop implementation into cpp,
and made named prop a struct (tuples are trouble).
Diffstat (limited to 'host/lib/types.cpp')
-rw-r--r-- | host/lib/types.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/host/lib/types.cpp b/host/lib/types.cpp index a1b9b21a9..08e41b62f 100644 --- a/host/lib/types.cpp +++ b/host/lib/types.cpp @@ -32,6 +32,7 @@ #include <boost/format.hpp> #include <boost/cstdint.hpp> #include <boost/assign/list_of.hpp> +#include <boost/thread.hpp> #include <stdexcept> #include <complex> @@ -257,10 +258,11 @@ void i2c_iface::write_eeprom( boost::uint8_t offset, const byte_vector_t &bytes ){ - BOOST_FOREACH(boost::uint8_t byte, bytes){ + for (size_t i = 0; i < bytes.size(); i++){ //write a byte at a time, its easy that way - byte_vector_t cmd = boost::assign::list_of(offset)(byte); + byte_vector_t cmd = boost::assign::list_of(offset+i)(bytes[i]); this->write_i2c(addr, cmd); + boost::this_thread::sleep(boost::posix_time::milliseconds(10)); //worst case write } } @@ -272,7 +274,7 @@ byte_vector_t i2c_iface::read_eeprom( byte_vector_t bytes; for (size_t i = 0; i < num_bytes; i++){ //do a zero byte write to start read cycle - this->write_i2c(addr, byte_vector_t(1, offset)); + this->write_i2c(addr, byte_vector_t(1, offset+i)); bytes.push_back(this->read_i2c(addr, 1).at(0)); } return bytes; |