commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r10423 - in gnuradio/branches/developers/jcorgan/pps/u


From: jcorgan
Subject: [Commit-gnuradio] r10423 - in gnuradio/branches/developers/jcorgan/pps/usrp2/host: include/usrp2 lib
Date: Tue, 10 Feb 2009 09:23:10 -0700 (MST)

Author: jcorgan
Date: 2009-02-10 09:23:10 -0700 (Tue, 10 Feb 2009)
New Revision: 10423

Modified:
   gnuradio/branches/developers/jcorgan/pps/usrp2/host/include/usrp2/usrp2.h
   gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2.cc
   gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.cc
   gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.h
Log:
libusrp2 code for sync_every_pps

Modified: 
gnuradio/branches/developers/jcorgan/pps/usrp2/host/include/usrp2/usrp2.h
===================================================================
--- gnuradio/branches/developers/jcorgan/pps/usrp2/host/include/usrp2/usrp2.h   
2009-02-10 15:52:30 UTC (rev 10422)
+++ gnuradio/branches/developers/jcorgan/pps/usrp2/host/include/usrp2/usrp2.h   
2009-02-10 16:23:10 UTC (rev 10423)
@@ -372,11 +372,16 @@
     bool burn_mac_addr(const std::string &new_addr);
 
     /*!
-     * Reset master time to 0 at next PPS rising edge
+     * Reset master time to 0 at next PPS edge
      */
     bool sync_to_pps();
 
     /*!
+     * Reset master time to 0 at every PPS edge
+     */
+    bool sync_every_pps(bool enable);
+
+    /*!
      * Read memory from Wishbone bus as 32-bit words.  Handles endian swapping 
if needed.
      *
      * \param addr      32-bit aligned address.  Only the lower 16-bits are 
significant.

Modified: gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2.cc
===================================================================
--- gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2.cc    
2009-02-10 15:52:30 UTC (rev 10422)
+++ gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2.cc    
2009-02-10 16:23:10 UTC (rev 10423)
@@ -413,6 +413,12 @@
     return d_impl->sync_to_pps();
   }
 
+  bool
+  usrp2::sync_every_pps(bool enable)
+  {
+    return d_impl->sync_every_pps(enable);
+  }
+
   std::vector<uint32_t>
   usrp2::peek32(uint32_t addr, uint32_t words)
   {

Modified: gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.cc
===================================================================
--- gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.cc       
2009-02-10 15:52:30 UTC (rev 10422)
+++ gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.cc       
2009-02-10 16:23:10 UTC (rev 10423)
@@ -77,6 +77,8 @@
     case OP_SET_TX_LO_OFFSET_REPLY: return "OP_SET_TX_LO_OFFSET_REPLY";
     case OP_SET_RX_LO_OFFSET: return "OP_SET_RX_LO_OFFSET";
     case OP_SET_RX_LO_OFFSET_REPLY: return "OP_SET_RX_LO_OFFSET_REPLY";
+    case OP_SYNC_EVERY_PPS: return "OP_SYNC_EVERY_PPS";
+    case OP_SYNC_EVERY_PPS_REPLY: return "OP_SYNC_EVERY_PPS_REPLY";
 
     default:
       char buf[64];
@@ -1128,6 +1130,28 @@
     return ntohx(reply.ok) == 1;
   }
 
+  bool
+  usrp2::impl::sync_every_pps(bool enable)
+  {
+    op_generic_cmd cmd;
+    op_generic_t   reply;
+
+    memset(&cmd, 0, sizeof(cmd));
+    init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
+    cmd.op.opcode = OP_SYNC_EVERY_PPS;
+    cmd.op.len = sizeof(cmd.op);
+    cmd.op.rid = d_next_rid++;
+    cmd.op.ok = enable ? 1 : 0;
+    cmd.eop.opcode = OP_EOP;
+    cmd.eop.len = sizeof(cmd.eop);
+    
+    pending_reply p(cmd.op.rid, &reply, sizeof(reply));
+    if (!transmit_cmd(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
+      return false;
+
+    return ntohx(reply.ok) == 1;
+  }
+
   std::vector<uint32_t>
   usrp2::impl::peek32(uint32_t addr, uint32_t words)
   {

Modified: gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.h
===================================================================
--- gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.h        
2009-02-10 15:52:30 UTC (rev 10422)
+++ gnuradio/branches/developers/jcorgan/pps/usrp2/host/lib/usrp2_impl.h        
2009-02-10 16:23:10 UTC (rev 10423)
@@ -180,6 +180,7 @@
 
     bool burn_mac_addr(const std::string &new_addr);
     bool sync_to_pps();
+    bool sync_every_pps(bool enable);
     std::vector<uint32_t> peek32(uint32_t addr, uint32_t words);
     bool poke32(uint32_t addr, const std::vector<uint32_t> &data);
   };





reply via email to

[Prev in Thread] Current Thread [Next in Thread]