Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+/** @defgroup synco Synchronisation Object
+ * SYNC object is a CANopen message forcing the receiving nodes to sample the inputs mapped into synchronous TPDOS.
+ * Receiving this message cause the node to set the outputs to values received in the previous synchronous RPDO.
+ * @ingroup comobj
+ */
+
#ifndef __SYNC_h__
#define __SYNC_h__
void stopSYNC(CO_Data* d);
-typedef void (*post_sync_t)(void);
-void _post_sync(void);
+typedef void (*post_sync_t)(CO_Data*);
+void _post_sync(CO_Data* d);
+
+typedef void (*post_TPDO_t)(CO_Data*);
+void _post_TPDO(CO_Data* d);
-typedef void (*post_TPDO_t)(void);
-void _post_TPDO(void);
+/**
+ * @brief Transmit a SYNC message and trigger sync TPDOs
+ * @param *d Pointer on a CAN object data structure
+ * @return
+ */
+UNS8 sendSYNC (CO_Data* d);
-/** transmit a SYNC message on the bus number bus_id
- * bus_id is hardware dependant
- * return canSend(bus_id,&m)
+/**
+ * @brief Transmit a SYNC message on CAN bus
+ * @param *d Pointer on a CAN object data structure
+ * @return
*/
-UNS8 sendSYNC (CO_Data* d, UNS32 cob_id);
-
-/** This function is called when the node is receiving a SYNC
- * message (cob-id = 0x80).
- * What does the function :
- * check if the node is in OERATIONAL mode. (other mode : return 0 but does nothing).
- * Get the SYNC cobId by reading the dictionary index 1005. (Return -1 if it does not correspond
- * to the cobId received).
- * Scan the dictionary from index 0x1800 to the last PDO defined (dict_cstes.max_count_of_PDO_transmit)
- * for each PDO whose transmission type is on synchro (transmission type < 241) and if the msg must
- * be send at this SYNC. read the COBID. Verify that the nodeId inside the
- * nodeId correspond to bDeviceNodeId. (Assume that the cobId of a PDO Transmit is made
- * with the node id of the node who transmit), get the mapping, launch PDOmGR to send the PDO
- * *m is a pointer to the message received
- * bus_id is hardware dependant
- * return 0 if OK, 0xFF if error
+UNS8 sendSYNCMessage(CO_Data* d);
+
+/**
+ * @brief This function is called when the node is receiving a SYNC message (cob-id = 0x80).
+ * - Check if the node is in OERATIONAL mode. (other mode : return 0 but does nothing).
+ * - Get the SYNC cobId by reading the dictionary index 1005, check it does correspond to the received cobId
+ * - Trigger sync TPDO emission
+ * @param *d Pointer on a CAN object data structure
+ * @return 0 if OK, 0xFF if error
*/
-UNS8 proceedSYNC (CO_Data* d, Message * m);
+UNS8 proceedSYNC (CO_Data* d);
#endif