OpcUaCanOpen
CANopen OPC-UA server
MockCanAccess.h
Go to the documentation of this file.
1 /*
2  * MockCanAccess.h
3  *
4  * Created on: Feb 23, 2018
5  * Author: ben farnham
6  */
7 
8 #ifndef MOCKCANACCESS_H_
9 #define MOCKCANACCESS_H_
10 
11 #include <string>
12 #include "CanStatistics.h"
13 #include "CCanAccess.h"
14 
15 #ifdef _WIN32
16 
17 #include "tchar.h"
18 #include "Winsock2.h"
19 #include "windows.h"
20 
21 #else
22 
23 typedef unsigned long DWORD;
24 
25 #endif
26 
27 #define CAN_ECHO_MSG (unsigned char*)("0000EC40")
28 
29 /*
30  * This is an implementation of the abstract class CCanAccess. It serves as a can bus access layer that will communicate with Systec crates (Windows only)
31  */
33 {
34 public:
35  MockCanAccess();
36  virtual ~MockCanAccess();
37 
38  //Disable copy constructor && assignment
39  MockCanAccess(MockCanAccess const & other) = delete;
40  MockCanAccess& operator=(MockCanAccess const & other) = delete;
41 
42  /*
43  * Required overrides of abstract base class CCanAccess
44  */
45  virtual bool createBus(const string name, const string parameters);
46  virtual bool sendRemoteRequest(short cobID);
47  virtual bool sendMessage(short cobID, unsigned char len, unsigned char *message, bool rtr = false);
48  virtual void getStatistics( CanModule::CanStatistics & result );
49  virtual bool initialiseLogging(LogItInstance* remoteInstance);
50 
51  static std::string getCanMessageDataAsString(const unsigned char* data, const unsigned char& len = 8);
52 
53 private:
54  //Instance of Can Statistics
56 
57  //Current baud rate
58  unsigned int m_baudRate;
59 };
60 
61 #endif //MOCKCANACCESS_H_