OpcUaCanOpen
CANopen OPC-UA server
canaccess.h
Go to the documentation of this file.
1 #ifndef CANACCESS_H
2 #define CANACCESS_H
3 
4 #pragma once
5 
6 #include "dlcanbus.h"
7 #include "CCanAccess.h"
8 #include <map>
9 #include <string>
10 #include "CCanCallback.h"
11 
12 using namespace std;
13 
14 class Canaccess {
15 
16 public:
17  Canaccess();
18  int getNumberOfChannels();
19 // string getChannelName(int);
20 // static CCanAccess *findCanbus(int i);
21 
22  int openCanBus(string name,string parameters,CCanCallback * ccc = 0);
23  CCanAccess *getCanAccess(int n) { return isCanPortOpen(n) ? chName[n] : 0; }
24  void setCallBack(int n,CCanCallback *cb) { if (isCanPortOpen(n) ) chName[n]->setCallBack(cb); }
25  void closeCanBus(int);
27  bool sendRemoteRequest(int n,short cobId) { return chName[n]->sendRemoteRequest(cobId); }
28  bool sendMessage(int n,short cobId, unsigned char len, unsigned char *data) { return isCanPortOpen(n) ? chName[n]->sendMessage(cobId,len,data): false; }
29  bool getErrorMessage(int n,long code, char **mess) { return isCanPortOpen(n) ? chName[n]->getErrorMessage(code,mess): false; }
30 
31 
32 private:
33  bool isCanPortOpen(int i) { return (chName.find(i) != chName.end()); }
34  map<string,dlcanbus *> Component;
35  map<int,CCanAccess *> chName;
36  map<string,int> ScanManagers;
37 
38  static int g_numChannels;
39 };
40 
41 #endif // CANACCESS_H