Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SDC21XX_Motor SDC21XX_Motor
CANopen.cpp
- Committer:
- kkoichy
- Date:
- 2016-05-30
- Revision:
- 1:a5e0bd1f1c93
- Parent:
- 0:0f99b1d63054
File content as of revision 1:a5e0bd1f1c93:
#include "CANopen.h"
namespace mbed {
    
        CANopen::CANopen(short _id, CAN * _can)
        {
            can = _can;
            node_id = _id;
            
        }
        CANopen::CANopen(short _id, CAN * _can, int _baud)
        {
            can = _can;
            node_id = _id;
            can->frequency(_baud);
            
        }
        int CANopen::Send_Initiate_SDO_Download(short index, short subindex, long data)
        {
            char _data[8];
            _data[0] = 0x22;
            _data[1] = index;
            _data[2] = index >> 8;
            _data[3] = subindex;
            _data[4] = data >> 0;
            _data[5] = data >> 8;
            _data[6] = data >> 16;
            _data[7] = data >> 24;
            return can->write(CANMessage(0x600 + node_id, _data, 8));
            
        }
        int32_t CANopen::Send_Initiate_SDO_Upload(short index, short subindex)
        {
            char _data[8];
            _data[0] = 0x60;
            _data[1] = index;
            _data[2] = index >> 8;
            _data[3] = subindex;
            _data[4] = 0;
            _data[5] = 0;
            _data[6] = 0;
            _data[7] = 0;
            CANMessage _message(0x600 + node_id, _data, 8);
            can->write(_message);
            can->read(_message);
            return (_message.data[4] | _message.data[5] << 8 | _message.data[6] << 16 | _message.data[7] << 24);
            
        }
        short CANopen::GetNodeID(void)
        {
            return node_id;
            
        }
        void CANopen::SetNodeID(short _id)
        {
            node_id = _id;
            
        }
    
}//end namespace