OpcUaCanOpen
CANopen OPC-UA server
CanBusAccess.cpp
Go to the documentation of this file.
1 
24 #include "CanBusAccess.h"
25 
26 namespace CanModule
27 {
28 
29 
31 {
32  CanLibLoader *dlcan;
33  map<string, CanLibLoader *>::iterator itcomponent;
34  string bus = cInter->getBusName();
35  string nameComponent = bus.substr(0, bus.find_first_of(':'));
36 
37  itcomponent = m_Component.find(nameComponent);
38  dlcan = (*itcomponent).second;
39  dlcan->closeCanBus(cInter);
40 }
41 
42 CCanAccess* CanBusAccess::openCanBus(string name, string parameters)
43 {
44  map<string, CanLibLoader *>::iterator itcomponent;
45  map<string, CCanAccess *>::iterator it;
46  CanLibLoader *dlcan = 0;
47  string nameComponent;
48 
49  it = m_ScanManagers.find(name);
50  if (!(it == m_ScanManagers.end())) {
51  return (*it).second;
52  }
53 
54  nameComponent = name.substr(0, name.find_first_of(':'));
55  itcomponent = m_Component.find(nameComponent);
56 
57  if (!(itcomponent == m_Component.end())) {
58  dlcan = (*itcomponent).second;
59  } else {
60  dlcan = CanLibLoader::createInstance((char *)nameComponent.c_str());
61  if (dlcan != 0)
62  m_Component.insert(map<string, CanLibLoader *>::value_type(nameComponent, dlcan));
63  else return 0;
64  }
65  CCanAccess *tcca = dlcan->openCanBus(name, parameters);
66  return tcca;
67 }
68 }