]> rtime.felk.cvut.cz Git - CanFestival-3.git/blob - include/sync.h
Third time, Re-write doxygen tags in headers files to generate User API documentation
[CanFestival-3.git] / include / sync.h
1 /*
2 This file is part of CanFestival, a library implementing CanOpen Stack. 
3
4 Copyright (C): Edouard TISSERANT and Francis DUPIN
5
6 See COPYING file for copyrights details.
7
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation; either
11 version 2.1 of the License, or (at your option) any later version.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21 */
22
23 /** @defgroup synco Synchronisation Object
24  *  SYNC object is a CANopen message forcing the receiving nodes to sample the inputs mapped into synchronous TPDOS.
25  *  Receiving this message cause the node to set the outputs to values received in the previous synchronous RPDO.
26  *  @ingroup comobj
27  */
28                                          
29 #ifndef __SYNC_h__
30 #define __SYNC_h__
31
32 void startSYNC(CO_Data* d);
33
34 void stopSYNC(CO_Data* d);
35
36 typedef void (*post_sync_t)(CO_Data*);
37 void _post_sync(CO_Data* d);
38
39 typedef void (*post_TPDO_t)(CO_Data*);
40 void _post_TPDO(CO_Data* d);
41
42 /** 
43  * @brief Transmit a SYNC message and trigger sync TPDOs
44  * @param *d Pointer on a CAN object data structure
45  * @return
46  */
47 UNS8 sendSYNC (CO_Data* d);
48
49 /** 
50  * @brief Transmit a SYNC message on CAN bus
51  * @param *d Pointer on a CAN object data structure
52  * @return
53  */
54 UNS8 sendSYNCMessage(CO_Data* d);
55
56 /** 
57  * @brief This function is called when the node is receiving a SYNC message (cob-id = 0x80).
58  *  - Check if the node is in OERATIONAL mode. (other mode : return 0 but does nothing).
59  *  - Get the SYNC cobId by reading the dictionary index 1005, check it does correspond to the received cobId
60  *  - Trigger sync TPDO emission 
61  * @param *d Pointer on a CAN object data structure
62  * @return 0 if OK, 0xFF if error 
63  */
64 UNS8 proceedSYNC (CO_Data* d);
65
66 #endif