NNP STM Generic Remote Module git-main
Loading...
Searching...
No Matches
states.h
Go to the documentation of this file.
1
8#ifndef INC_STATES_H_
9#define INC_STATES_H_
10
11#include <applicfg.h>
12
13/* The nodes states
14 * -----------------
15 * values are choosen so that they can be sent directly
16 * for heartbeat messages...
17 * Must be coded on 7 bits only (bit 8 is toggle bit)
18 * */
19
20enum enum_nodeState {
21 Hibernate = 0x00,
22 Waiting = 0x01,
23 Mode_X_Manual = 0x02,
24 Mode_Y_Manual = 0x03,
25 Stopped = 0x04,
26 Mode_Patient_Control = 0x05,
27 BootCheckReset = 0x06,
28 Mode_Patient_Manual = 0x07,
29 Mode_Produce_X_Manual = 0x08,
30 Mode_Record_X = 0x09,
31 Unknown_state = 0x0F
32
33};
34
35typedef enum enum_nodeState e_nodeState;
36/* Communication state structure */
37typedef struct
38{
39 INTEGER8 csBoot_Up;
40 INTEGER8 csSDO;
41 INTEGER8 csEmergency;
42 INTEGER8 csSYNC;
43 INTEGER8 csHeartbeat;
44 INTEGER8 csPDO;
45 INTEGER8 csLSS;
47
48
49typedef void (*mode_X_Manual_t)(CO_Data*);
50typedef void (*mode_Y_Manual_t)(CO_Data*);
51typedef void (*waiting_t)(CO_Data*);
52typedef void (*stopped_t)(CO_Data*);
53typedef void (*mode_Patient_Manual_t)(CO_Data*);
54typedef void (*mode_Patient_Control_t)(CO_Data*);
55
56void _mode_X_Manual(CO_Data* d);
57void _mode_Y_Manual(CO_Data* d);
58void _waiting(CO_Data* d);
59void _stopped(CO_Data* d);
62void _mode_Produce_X_Manual(CO_Data* d);
63
64
65/************************* prototypes ******************************/
66
67void canDispatch(CO_Data* d, Message *m);
68e_nodeState getState (CO_Data* d);
69UNS8 setState (CO_Data* d, e_nodeState newState);
71void setNodeId (CO_Data* d, UNS8 nodeId);
72
73
74#endif /* INC_STATES_H_ */
#define UNS8
Unsigned int8 representation in CANFest.
Definition applicfg.h:25
#define INTEGER8
Signed int8 representation in CANFest.
Definition applicfg.h:15
UNS8 setState(CO_Data *d, e_nodeState newState)
Change the state of the node.
Definition states.c:161
UNS8 getNodeId(CO_Data *d)
Returns the nodId.
Definition states.c:250
void _mode_X_Manual(CO_Data *d)
Function that user app can overload.
Definition states.c:334
void _waiting(CO_Data *d)
Function that user app can overload.
Definition states.c:348
void _stopped(CO_Data *d)
Function that user app can overload.
Definition states.c:355
void _mode_Patient_Control(CO_Data *d)
Function that user app can overload.
Definition states.c:369
e_nodeState getState(CO_Data *d)
Returns the state of the node.
Definition states.c:32
void _mode_Y_Manual(CO_Data *d)
Function that user app can overload.
Definition states.c:341
void setNodeId(CO_Data *d, UNS8 nodeId)
Define the node ID. Initialize the object dictionary.
Definition states.c:261
void _mode_Patient_Manual(CO_Data *d)
Function that user app can overload.
Definition states.c:362
void canDispatch(CO_Data *d, Message *m)
Called by driver/app when receiving messages.
Definition states.c:43
Definition can.h:13
This structure contains all necessary informations to define a CANOpen node.
Definition data.h:44