Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 5 months ago.
Help with Scope Resolution Operator
I want to use the MCP2515.cpp and MCP215.h files. The MCP2515.cpp file includes the following form the start:
- include "MCP2515.h"
MCP2515::MCP2515(SPI& spi, PinName cs) : spi(spi), cs(cs) { /* reset = 0; RESET MCP2515 CONTROLLER wait_ms(10); reset = 1; wait_ms(100);
- / }
void MCP2515::send_1()transmits buffer 1 { cs = 0; spi.write(SEND_TX_BUF_1); cs = 1; }
void MCP2515::send_2()transmits buffer 2 { cs = 0; spi.write(SEND_TX_BUF_2); cs = 1; } ...more of the same type of "function" follow...
To a C programmer these look like functions that get called from a main program, but I'm new to C++ and don't understand how to "call" these needed operations. Can someone offer some help? So far I know the double colon represents a "scope resolution operator." I'm reading and researching but nothing so far provides a helpful example that shows and explains what to do. I just need to use these operations in an example to show students. And I don't plan to become a C++ programmer. Thank you. Jon
You will find the .cpp and .h files here if you want to look at them in more detail:
https://developer.mbed.org/users/FalconOnishi/code/MCP2515/
1 Answer
8 years, 5 months ago.
First you call the constructor, since how it is defined in this lib (a bit weird imo, but I have seen it before), this should work:
MCP2515 myMCP2515(SPI(<your_mosi_pin>, <your_miso_pin>, <your_clk_pin>), <your_cs_pin>); //Note, not 100% sure I got the pin order correct
Now you made the MCP2515 object, and you call the functions on this object:
myMCP2515.send_0();
An alternative library which has a bit more documentation btw: https://developer.mbed.org/users/Just4pLeisure/code/SEEED_CAN/docs/tip/.
(I never used this component myself, or CAN at all, so I can't help further with that aspect).