OpcUaCanOpen
CANopen OPC-UA server
|
#include "AnaCanScan.h"
#include <time.h>
#include <string.h>
#include <map>
#include <LogIt.h>
#include <sstream>
#include <iostream>
#include <boost/thread/thread.hpp>
#include "CanModuleUtils.h"
#include <sys/time.h>
Go to the source code of this file.
Macros | |
#define | DLLEXPORTFLAG |
© Copyright CERN, 2015. More... | |
#define | WINAPI |
#define | MLOGANA(LEVEL, THIS) LOG(Log::LEVEL, AnaCanScan::st_logItHandleAnagate) << __FUNCTION__ << " " << " anagate bus= " << THIS->getBusName() << " " |
Functions | |
DLLEXPORTFLAG CCanAccess * | getCanBusAccess () |
creates and returns anagate can access object More... | |
void WINAPI | InternalCallback (AnaUInt32 nIdentifier, const char *pcBuffer, AnaInt32 nBufferLen, AnaInt32 nFlags, AnaInt32 hHandle, AnaInt32 nSeconds, AnaInt32 nMicroseconds) |
call back to catch incoming CAN messages for reading. More... | |
Variables | |
boost::mutex | anagateReconnectMutex |
std::map< AnaInt32, AnaCanScan * > | g_AnaCanScanPointerMap |
global map of connection-object-pointers: the map-key is the handle. More... | |
#define DLLEXPORTFLAG |
© Copyright CERN, 2015.
All rights not expressly granted are reserved.
Created on: Mar 17, 2015 Author: pnikiel, vfilimon, quasar team mludwig at cern dot ch
This file is part of Quasar.
Quasar is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public Licence as published by the Free Software Foundation, either version 3 of the Licence.
Quasar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public Licence for more details.
You should have received a copy of the GNU Lesser General Public License along with Quasar. If not, see http://www.gnu.org/licenses/.
Here the Anagate ethernet-CAN bridges are implemented
Definition at line 47 of file AnaCanScan.cpp.
#define MLOGANA | ( | LEVEL, | |
THIS | |||
) | LOG(Log::LEVEL, AnaCanScan::st_logItHandleAnagate) << __FUNCTION__ << " " << " anagate bus= " << THIS->getBusName() << " " |
Definition at line 63 of file AnaCanScan.cpp.
#define WINAPI |
Definition at line 48 of file AnaCanScan.cpp.
DLLEXPORTFLAG CCanAccess* getCanBusAccess | ( | ) |
creates and returns anagate can access object
Definition at line 143 of file AnaCanScan.cpp.
void WINAPI InternalCallback | ( | AnaUInt32 | nIdentifier, |
const char * | pcBuffer, | ||
AnaInt32 | nBufferLen, | ||
AnaInt32 | nFlags, | ||
AnaInt32 | hHandle, | ||
AnaInt32 | nSeconds, | ||
AnaInt32 | nMicroseconds | ||
) |
call back to catch incoming CAN messages for reading.
It is called on a handle, which is internally registered and managed by the anagate API. If that handle changes, the callback has to be unregistered before I guess.
Definition at line 154 of file AnaCanScan.cpp.
boost::mutex anagateReconnectMutex |
Definition at line 56 of file AnaCanScan.cpp.
std::map<AnaInt32, AnaCanScan*> g_AnaCanScanPointerMap |
global map of connection-object-pointers: the map-key is the handle.
Since handles are allocated by the OS the keys are getting changed as well when we reconnect, so that we do not keep the stale keys(=handles) in the map at all. The map the InternalCallback code straightforward and speedy, because we can get to the object by just looking up the map using the key(=the handle).
Definition at line 71 of file AnaCanScan.cpp.