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.
Dependencies: DataControl
ikarashiCAN.cpp
- Committer:
- ikarashikota
- Date:
- 2022-08-26
- Revision:
- 2:05d0790d0fc6
- Parent:
- 0:b9571508f055
- Child:
- 5:664bd71935c3
File content as of revision 2:05d0790d0fc6:
#include "ikarashiCAN.h" ikarashiCAN::ikarashiCAN(PinName rd, PinName td, int msgID, int frequency): can(rd, td, frequency), msg(msgID, reciever, 4) { _msgID = msgID; sended_msgID = 0; can_s = 0; can_r = 0; _can_data = 0; } ikarashiCAN::ikarashiCAN(PinName rd, PinName td, int msgID): can(rd, td, 50000), msg(msgID, reciever, 4) { _msgID = msgID; sended_msgID = 0; can_s = 0; can_r = 0; _can_data = 0; } //----------------------bit controll------------------------ int ikarashiCAN::getData() { return dataCombine(msg.data, msg.len); } //--------------------------------------------------------// //---attach function---------------------------------------// void ikarashiCAN::send() { can_s = 0; if(can.write(CANMessage(_msgID, sender, separated_data_size))) { can_s = 1; } } void ikarashiCAN::recieve() { can_r = 0; if(can.read(msg)) { can_r = 1; } } //--------------------------------------------------------// //---attach-----------------------------------------------// void ikarashiCAN::startSend(float second) { can_ticker.attach(this, &ikarashiCAN::send, second); } void ikarashiCAN::startRecieve() { can_ticker.attach(this, &ikarashiCAN::recieve, CAN::TxIrq); } //--------------------------------------------------------// int ikarashiCAN::simpleGetData(int _id){ if(_id == msg.id && can_r){ _can_data = getData(); } return _can_data; } bool ikarashiCAN::checkSender() { return can_s; } bool ikarashiCAN::checkReciever() { return can_r; } int ikarashiCAN::recievedCanID(){ if(can_r){ return msg.id; }else{ return -1; } } int ikarashiCAN::myCanID(){ return _msgID; } int ikarashiCAN::CanLen(){ return msg.len; } void ikarashiCAN::sender_reset() { for(int i=0; i<4; i++) sender[i] = 0; } void ikarashiCAN::reciever_reset() { for(int i=0; i<4; i++) reciever[i] = 0; }