diff options
| author | Josh Blum <josh@joshknows.com> | 2011-10-12 09:59:41 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2011-11-03 20:37:12 -0700 | 
| commit | 9369259177e5517e2b0e775804224c5467e14eab (patch) | |
| tree | 06b717dae712517e9acbb2e6bbbacce620c55f8e /host/lib | |
| parent | c885da11389ee275f9c5206b9f8a2155a5393a8a (diff) | |
| download | uhd-9369259177e5517e2b0e775804224c5467e14eab.tar.gz uhd-9369259177e5517e2b0e775804224c5467e14eab.tar.bz2 uhd-9369259177e5517e2b0e775804224c5467e14eab.zip  | |
usrp: deprecated clock config, added time/clock source calls
Diffstat (limited to 'host/lib')
| -rw-r--r-- | host/lib/deprecated.cpp | 28 | ||||
| -rw-r--r-- | host/lib/types/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | host/lib/types/clock_config.cpp | 44 | ||||
| -rw-r--r-- | host/lib/usrp/multi_usrp.cpp | 72 | 
4 files changed, 79 insertions, 66 deletions
diff --git a/host/lib/deprecated.cpp b/host/lib/deprecated.cpp index dd4cc02ad..b659d1be5 100644 --- a/host/lib/deprecated.cpp +++ b/host/lib/deprecated.cpp @@ -203,3 +203,31 @@ io_type_t::io_type_t(size_t size):  {      /* NOP */  } + +#include <uhd/types/clock_config.hpp> + +using namespace uhd; + +clock_config_t clock_config_t::external(void){ +    clock_config_t clock_config; +    clock_config.ref_source = clock_config_t::REF_SMA; +    clock_config.pps_source = clock_config_t::PPS_SMA; +    clock_config.pps_polarity = clock_config_t::PPS_POS; +    return clock_config; +} + +clock_config_t clock_config_t::internal(void){ +    clock_config_t clock_config; +    clock_config.ref_source = clock_config_t::REF_INT; +    clock_config.pps_source = clock_config_t::PPS_SMA; +    clock_config.pps_polarity = clock_config_t::PPS_POS; +    return clock_config; +} + +clock_config_t::clock_config_t(void): +    ref_source(REF_INT), +    pps_source(PPS_SMA), +    pps_polarity(PPS_POS) +{ +    /* NOP */ +} diff --git a/host/lib/types/CMakeLists.txt b/host/lib/types/CMakeLists.txt index 957dfd345..2ca0faef7 100644 --- a/host/lib/types/CMakeLists.txt +++ b/host/lib/types/CMakeLists.txt @@ -80,7 +80,6 @@ SET_SOURCE_FILES_PROPERTIES(  # This file included, use CMake directory variables  ########################################################################  LIBUHD_APPEND_SOURCES( -    ${CMAKE_CURRENT_SOURCE_DIR}/clock_config.cpp      ${CMAKE_CURRENT_SOURCE_DIR}/device_addr.cpp      ${CMAKE_CURRENT_SOURCE_DIR}/mac_addr.cpp      ${CMAKE_CURRENT_SOURCE_DIR}/ranges.cpp diff --git a/host/lib/types/clock_config.cpp b/host/lib/types/clock_config.cpp deleted file mode 100644 index c150c5cc3..000000000 --- a/host/lib/types/clock_config.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// Copyright 2011 Ettus Research LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program.  If not, see <http://www.gnu.org/licenses/>. -// - -#include <uhd/types/clock_config.hpp> - -using namespace uhd; - -clock_config_t clock_config_t::external(void){ -    clock_config_t clock_config; -    clock_config.ref_source = clock_config_t::REF_SMA; -    clock_config.pps_source = clock_config_t::PPS_SMA; -    clock_config.pps_polarity = clock_config_t::PPS_POS; -    return clock_config; -} - -clock_config_t clock_config_t::internal(void){ -    clock_config_t clock_config; -    clock_config.ref_source = clock_config_t::REF_INT; -    clock_config.pps_source = clock_config_t::PPS_SMA; -    clock_config.pps_polarity = clock_config_t::PPS_POS; -    return clock_config; -} - -clock_config_t::clock_config_t(void): -    ref_source(REF_INT), -    pps_source(PPS_SMA), -    pps_polarity(PPS_POS) -{ -    /* NOP */ -} diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 73699dc81..ab841487f 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -359,34 +359,64 @@ public:      }      void set_clock_config(const clock_config_t &clock_config, size_t mboard){ +        //set the reference source... +        std::string clock_source; +        switch(clock_config.ref_source){ +        case clock_config_t::REF_INT: clock_source = "internal"; break; +        case clock_config_t::PPS_SMA: clock_source = "external"; break; +        case clock_config_t::PPS_MIMO: clock_source = "mimo"; break; +        default: clock_source = "unknown"; +        } +        this->set_clock_source(clock_source, mboard); + +        //set the time source +        std::string time_source; +        switch(clock_config.pps_source){ +        case clock_config_t::PPS_INT: time_source = "internal"; break; +        case clock_config_t::PPS_SMA: time_source = "external"; break; +        case clock_config_t::PPS_MIMO: time_source = "mimo"; break; +        default: time_source = "unknown"; +        } +        if (time_source == "external" and clock_config.pps_polarity == clock_config_t::PPS_NEG) time_source = "_external_"; +        this->set_time_source(time_source, mboard); +    } + +    void set_time_source(const std::string &source, const size_t mboard){          if (mboard != ALL_MBOARDS){ -            //set the reference source... -            std::string clock_source; -            switch(clock_config.ref_source){ -            case clock_config_t::REF_INT: clock_source = "internal"; break; -            case clock_config_t::PPS_SMA: clock_source = "external"; break; -            case clock_config_t::PPS_MIMO: clock_source = "mimo"; break; -            default: clock_source = "unknown"; -            } -            _tree->access<std::string>(mb_root(mboard) / "clock_source" / "value").set(clock_source); - -            //set the time source -            std::string time_source; -            switch(clock_config.pps_source){ -            case clock_config_t::PPS_INT: time_source = "internal"; break; -            case clock_config_t::PPS_SMA: time_source = "external"; break; -            case clock_config_t::PPS_MIMO: time_source = "mimo"; break; -            default: time_source = "unknown"; -            } -            if (clock_source == "external" and clock_config.pps_polarity == clock_config_t::PPS_NEG) time_source = "_external_"; -            _tree->access<std::string>(mb_root(mboard) / "time_source" / "value").set(time_source); +            _tree->access<std::string>(mb_root(mboard) / "time_source" / "value").set(source);              return;          }          for (size_t m = 0; m < get_num_mboards(); m++){ -            set_clock_config(clock_config, m); +            return this->set_time_source(source, m);          }      } +    std::string get_time_source(const size_t mboard){ +        return _tree->access<std::string>(mb_root(mboard) / "time_source" / "value").get(); +    } + +    std::vector<std::string> get_time_sources(const size_t mboard){ +        return _tree->access<std::vector<std::string> >(mb_root(mboard) / "time_source" / "options").get(); +    } + +    void set_clock_source(const std::string &source, const size_t mboard){ +        if (mboard != ALL_MBOARDS){ +            _tree->access<std::string>(mb_root(mboard) / "clock_source" / "value").set(source); +            return; +        } +        for (size_t m = 0; m < get_num_mboards(); m++){ +            return this->set_clock_source(source, m); +        } +    } + +    std::string get_clock_source(const size_t mboard){ +        return _tree->access<std::string>(mb_root(mboard) / "clock_source" / "value").get(); +    } + +    std::vector<std::string> get_clock_sources(const size_t mboard){ +        return _tree->access<std::vector<std::string> >(mb_root(mboard) / "clock_source" / "options").get(); +    } +      size_t get_num_mboards(void){          return _tree->list("/mboards").size();      }  | 
