OpcUaCanOpen
CANopen OPC-UA server
canaccess.cpp
Go to the documentation of this file.
1 #ifdef WIN32
2 #include "Stdafx.h"
3 #endif
4 
5 #include "canaccess.h"
6 
8 
10 {
11  g_numChannels = 1;
12 }
13 
14 /*
15 int Canaccess::getNumberOfChannels()
16 {
17  return g_numChannels;
18 }
19 
20 string Canaccess::getChannelName(int noc)
21 {
22 
23 }
24 */
25 
27 {
28  char *name;
29  map<int,CCanAccess *>::iterator it = chName.find(n);
30  name = chName[n]->getBusName();
31  map<string,int>::iterator hiter = ScanManagers.find(string((char *)name));
32  delete chName[n];
33  chName.erase(it);
34  ScanManagers.erase(hiter);
35 }
36 
37 int Canaccess::openCanBus(string name,string parameters,CCanCallback *cb)
38 {
39  map<string,dlcanbus *>::iterator itcomponent;
40  map<int,CCanAccess *>::iterator it;
41  map<string,int>::iterator hiter;
42  dlcanbus *dlcan;
43  string nameComponent,nameOfCh;
44 
45  hiter = ScanManagers.find(name);
46  if (! ( hiter == ScanManagers.end() ) ) {
47  return (*hiter).second;
48  }
49 
50  nameComponent = name.substr(0,name.find_first_of(':'));
51  nameOfCh = name.substr(name.find_first_of(':')+1);
52 
53  itcomponent = Component.find(nameComponent);
54 
55  if (! (itcomponent == Component.end() )) {
56  dlcan = (*itcomponent).second;
57  }
58  else {
59  dlcan = new dlcanbus();
60  if (dlcan->openInterface((char *)nameComponent.c_str()))
61  Component.insert(map<string,dlcanbus *>::value_type(nameComponent,dlcan));
62  else return 0;
63  }
64 
65  CCanAccess *tcca = dlcan->maker_CanAccessObj();
66  if (tcca != NULL) {
67  const char * na = nameOfCh.c_str();
68  const char * pa = parameters.c_str();
69  bool c = tcca->createBUS( na,pa, cb);
70  if (c){
74  return g_numChannels;
75  }
76  }
77  return 0;
78 }
79 
80 /*
81 bool Canaccess::getTseg1(int i,unsigned int &t)
82 {
83  if (isCanOpen(i)) {
84  t = findCanbus(i)->getTseg1();
85  return true;
86  }
87  else return false;
88 }
89 
90 bool Canaccess::getTseg2(int i,unsigned int &tseg2)
91 {
92  if (isCanOpen(i)) {
93  tseg2 = findCanbus(i)->getTseg2();
94  return true;
95  }
96  else return false;
97 }
98 
99 bool Canaccess::getSjw(int i,unsigned int &t)
100 {
101  if (isCanOpen(i)) {
102  t = findCanbus(i)->getSjw();
103  return true;
104  }
105  else return false;
106 }
107 
108 bool Canaccess::getNoSamp(int i,unsigned int &t)
109 {
110  if (isCanOpen(i)) {
111  t = findCanbus(i)->getNoSamp();
112  return true;
113  }
114  else return false;
115 }
116 
117 bool Canaccess::getSyncmode(int i,unsigned int &t)
118 {
119  if (isCanOpen(i)) {
120  t = findCanbus(i)->getSyncmode();
121  return true;
122  }
123  else return false;
124 }
125 
126 bool Canaccess::getBaudRate(int i,long &br)
127 {
128  if (isCanOpen(i)) {
129  br = findCanbus(i)->getBaudRate();
130  return true;
131  }
132  else return false;
133 }
134 
135 bool Canaccess::getBusParameters(int i)
136 {
137  if (isCanOpen(i)) {
138  return findCanbus(i)->getBusParameters();
139  }
140  else return false;
141 }
142 { if (isCanPortOpen(i)) return ScanManagers[i]; else return 0; }
143 */