CANopen library
Fork of CANopen_Node by
CANopen_Node.h@9:822973c25f99, 2016-07-11 (annotated)
- Committer:
- kkoichy
- Date:
- Mon Jul 11 11:02:12 2016 +0000
- Revision:
- 9:822973c25f99
- Parent:
- 8:7f20c24f653d
Added comments and example programm
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kkoichy | 4:edb55099ea3b | 1 | #ifndef CANOPEN_NODE_H |
kkoichy | 4:edb55099ea3b | 2 | #define CANOPEN_NODE_H |
kkoichy | 0:0f99b1d63054 | 3 | |
kkoichy | 0:0f99b1d63054 | 4 | #include "mbed.h" |
kkoichy | 5:e3ca883a96e7 | 5 | |
kkoichy | 5:e3ca883a96e7 | 6 | |
kkoichy | 7:f97c93005257 | 7 | /**************************************************/ |
kkoichy | 7:f97c93005257 | 8 | /* CANopen-Node class : |
kkoichy | 7:f97c93005257 | 9 | - Contains : node-id, identifier of the node to communicate with, range from 1 to 127 |
kkoichy | 7:f97c93005257 | 10 | can, pointer to the CAN instance used to communicate with the node |
kkoichy | 7:f97c93005257 | 11 | |
kkoichy | 7:f97c93005257 | 12 | - Methods : 2 constructors, 1 of them setting the frequency of the CAN bus |
kkoichy | 7:f97c93005257 | 13 | Getters and setters for every variable |
kkoichy | 7:f97c93005257 | 14 | Send SDO up- and download, to send and receive basic messages over CANopen protocol |
kkoichy | 7:f97c93005257 | 15 | */ |
kkoichy | 7:f97c93005257 | 16 | /**************************************************/ |
kkoichy | 7:f97c93005257 | 17 | |
kkoichy | 7:f97c93005257 | 18 | /**************************************************/ |
kkoichy | 7:f97c93005257 | 19 | /* Example program |
kkoichy | 7:f97c93005257 | 20 | |
kkoichy | 7:f97c93005257 | 21 | #include "mbed.h" |
kkoichy | 8:7f20c24f653d | 22 | #include "CANopen_node.h" |
kkoichy | 7:f97c93005257 | 23 | |
kkoichy | 7:f97c93005257 | 24 | //Create a CANopen node object with node identifier 1, CAN frequency = 1Mbps |
kkoichy | 7:f97c93005257 | 25 | CAN can(p30, p29); |
kkoichy | 7:f97c93005257 | 26 | CANopen_Node CAN_node(1, &can, 1000000); |
kkoichy | 7:f97c93005257 | 27 | |
kkoichy | 7:f97c93005257 | 28 | |
kkoichy | 7:f97c93005257 | 29 | int main(void) |
kkoichy | 7:f97c93005257 | 30 | { |
kkoichy | 7:f97c93005257 | 31 | |
kkoichy | 7:f97c93005257 | 32 | for(;;) |
kkoichy | 7:f97c93005257 | 33 | { |
kkoichy | 7:f97c93005257 | 34 | wait(1); |
kkoichy | 7:f97c93005257 | 35 | CAN_node.Send_Initiate_SDO_Download(0x2000, 0x05, 0x800004f3); |
kkoichy | 7:f97c93005257 | 36 | |
kkoichy | 7:f97c93005257 | 37 | } |
kkoichy | 7:f97c93005257 | 38 | return 1; |
kkoichy | 7:f97c93005257 | 39 | } |
kkoichy | 7:f97c93005257 | 40 | |
kkoichy | 7:f97c93005257 | 41 | |
kkoichy | 7:f97c93005257 | 42 | */ |
kkoichy | 7:f97c93005257 | 43 | /**************************************************/ |
kkoichy | 7:f97c93005257 | 44 | |
kkoichy | 7:f97c93005257 | 45 | |
kkoichy | 7:f97c93005257 | 46 | |
kkoichy | 5:e3ca883a96e7 | 47 | namespace mbed { |
kkoichy | 5:e3ca883a96e7 | 48 | class CANopen_Node { |
kkoichy | 5:e3ca883a96e7 | 49 | |
kkoichy | 5:e3ca883a96e7 | 50 | public : |
kkoichy | 5:e3ca883a96e7 | 51 | |
kkoichy | 5:e3ca883a96e7 | 52 | CANopen_Node(uint8_t _id, CAN * _can); |
kkoichy | 5:e3ca883a96e7 | 53 | CANopen_Node(uint8_t _id, CAN * _can, int _baud); |
kkoichy | 5:e3ca883a96e7 | 54 | int Send_Initiate_SDO_Download(short index, short subindex, long data); |
kkoichy | 5:e3ca883a96e7 | 55 | int Send_Initiate_SDO_Upload(short index, short subindex); |
kkoichy | 5:e3ca883a96e7 | 56 | short GetNodeID(void); |
kkoichy | 5:e3ca883a96e7 | 57 | void SetNodeID(uint8_t _id); |
kkoichy | 5:e3ca883a96e7 | 58 | void SetCan(CAN * _can); |
kkoichy | 5:e3ca883a96e7 | 59 | CAN* GetCan(void); |
kkoichy | 5:e3ca883a96e7 | 60 | |
kkoichy | 5:e3ca883a96e7 | 61 | private : |
kkoichy | 5:e3ca883a96e7 | 62 | |
kkoichy | 5:e3ca883a96e7 | 63 | |
kkoichy | 5:e3ca883a96e7 | 64 | protected : |
kkoichy | 5:e3ca883a96e7 | 65 | |
kkoichy | 5:e3ca883a96e7 | 66 | short node_id; |
kkoichy | 5:e3ca883a96e7 | 67 | CAN * can; |
kkoichy | 5:e3ca883a96e7 | 68 | |
kkoichy | 5:e3ca883a96e7 | 69 | |
kkoichy | 5:e3ca883a96e7 | 70 | |
kkoichy | 5:e3ca883a96e7 | 71 | };//end class |
kkoichy | 5:e3ca883a96e7 | 72 | |
kkoichy | 5:e3ca883a96e7 | 73 | |
kkoichy | 5:e3ca883a96e7 | 74 | |
kkoichy | 5:e3ca883a96e7 | 75 | }//end namespace |
kkoichy | 5:e3ca883a96e7 | 76 | |
kkoichy | 0:0f99b1d63054 | 77 | #endif |