Separated sync_reference_clock() and sync_slave_clocks().
authorFlorian Pose <fp@igh-essen.com>
Thu, 23 Apr 2009 12:02:26 +0000
changeset 1410 fb6719008bf5
parent 1409 eb1e2540cb02
child 1411 3ebef749275c
Separated sync_reference_clock() and sync_slave_clocks().
include/ecrt.h
master/master.c
--- a/include/ecrt.h	Mon Apr 20 14:37:30 2009 +0000
+++ b/include/ecrt.h	Thu Apr 23 12:02:26 2009 +0000
@@ -44,7 +44,8 @@
  * - Added the distributed clocks feature and the respective methods
  *   ecrt_slave_config_dc_assign_activate() and
  *   ecrt_slave_config_dc_sync_cycle_times() to configure a slave for cyclic
- *   operation, and ecrt_master_sync() for drift compensation.
+ *   operation, and ecrt_master_sync_reference_clock() and
+ *   ecrt_master_sync_slave_clocks() for drift compensation.
  * - Changed the meaning of the negative return values of
  *   ecrt_slave_config_reg_pdo_entry() and ecrt_slave_config_sdo*().
  * - Imlemented the Vendor-specific over EtherCAT mailbox protocol. See
@@ -506,16 +507,23 @@
         ec_master_state_t *state /**< Structure to store the information. */
         );
 
-/** Queues the DC drift compensation datagram for sending.
- *
- * The reference clock will by synchronized to the \a app_time, while the
- * other slaves will by synchronized to the reference clock.
- */
-void ecrt_master_sync(
+/** Queues the DC reference clock drift compensation datagram for sending.
+ *
+ * The reference clock will by synchronized to the \a app_time.
+ */
+void ecrt_master_sync_reference_clock(
         ec_master_t *master, /**< EtherCAT master. */
         const struct timeval *app_time /**< Application time. */
         );
 
+/** Queues the DC clock drift compensation datagram for sending.
+ *
+ * All slave clocks synchronized to the reference clock.
+ */
+void ecrt_master_sync_slave_clocks(
+        ec_master_t *master /**< EtherCAT master. */
+        );
+
 /******************************************************************************
  * Slave configuration methods
  *****************************************************************************/
--- a/master/master.c	Mon Apr 20 14:37:30 2009 +0000
+++ b/master/master.c	Thu Apr 23 12:02:26 2009 +0000
@@ -1648,19 +1648,20 @@
 
 /*****************************************************************************/
 
-void ecrt_master_sync(ec_master_t *master, const struct timeval *app_time)
+void ecrt_master_sync_reference_clock(ec_master_t *master,
+        const struct timeval *app_time)
 {
     master->app_time = EC_TIMEVAL2NANO(app_time);
-
-#if 1
     EC_WRITE_U32(master->ref_sync_datagram.data, master->app_time);
     ec_master_queue_datagram(master, &master->ref_sync_datagram);
-#endif
-
-#if 1
+}
+
+/*****************************************************************************/
+
+void ecrt_master_sync_slave_clocks(ec_master_t *master)
+{
     ec_datagram_zero(&master->sync_datagram);
     ec_master_queue_datagram(master, &master->sync_datagram);
-#endif
 }
 
 /*****************************************************************************/
@@ -1674,7 +1675,8 @@
 EXPORT_SYMBOL(ecrt_master_callbacks);
 EXPORT_SYMBOL(ecrt_master_slave_config);
 EXPORT_SYMBOL(ecrt_master_state);
-EXPORT_SYMBOL(ecrt_master_sync);
+EXPORT_SYMBOL(ecrt_master_sync_reference_clock);
+EXPORT_SYMBOL(ecrt_master_sync_slave_clocks);
 
 /** \endcond */