Merged r10418:10423 from jcorgan/pps into trunk. Adds usrp2::sync_every_pps
[debian/gnuradio] / usrp2 / firmware / apps / app_common_v2.c
index c277d12f024fc493618c51086e165d04ed62719c..df943a4ee9b1853284e841a517fbd5f27bd44672 100644 (file)
@@ -54,6 +54,18 @@ sync_to_pps(const op_generic_t *p)
   return true;
 }
 
+static bool
+sync_every_pps(const op_generic_t *p)
+{
+  // FIXME use bit fields or defined masks
+  if (p->ok)
+    timesync_regs->tick_control |= 16;
+  else
+    timesync_regs->tick_control &= ~16;
+
+  return true;
+}
+
 static bool
 config_mimo_cmd(const op_config_mimo_t *p)
 {
@@ -505,6 +517,11 @@ handle_control_chan_frame(u2_eth_packet_t *pkt, size_t len)
       subpktlen = generic_reply(gp, reply_payload, reply_payload_space, true);
       break;
 
+    case OP_SYNC_EVERY_PPS:
+      subpktlen = generic_reply(gp, reply_payload, reply_payload_space,
+                               sync_every_pps((op_generic_t *) payload));
+      break;
+
     default:
       printf("app_common_v2: unhandled opcode = %d\n", gp->opcode);
       break;