source: pacpussensors/trunk/CanGateway/Win32CanInterface.h@ 1

Last change on this file since 1 was 1, checked in by DHERBOMEZ Gérald, 11 years ago

ajout des capteurs CanGateway et Alasca

File size: 1.8 KB
Line 
1/*********************************************************************
2// created: 2008/2/11 - 12:01
3// filename: Win32CanInterface.h
4//
5// author: Gerald Dherbomez
6// Copyright Heudiasyc UMR UTC/CNRS 6599
7//
8// version: $Id: $
9//
10// purpose: Windows specific management of the Can Interface
11//
12*********************************************************************/
13
14#ifndef WIN32CANINTERFACE_H
15#define WIN32CANINTERFACE_H
16
17// we use the Vector driver
18#ifdef WIN32
19//# define CAN_DRIVER_TYPE VECTOR_CAN_DRIVER
20# define CAN_DRIVER_TYPE VECTOR_CANXL_DRIVER
21#else
22# define CAN_DRIVER_TYPE PEAK_CAN_DRIVER
23#endif
24
25#include <iostream>
26#include <qsemaphore.h>
27#include <qthread.h>
28
29#include "../driver/CanDriver.h"
30#include "structure/structureCanCarmen.h"
31
32namespace pacpus {
33
34class ShMem;
35
36class Win32CanInterface
37 : public QThread
38{
39public:
40 Win32CanInterface();
41 ~Win32CanInterface();
42
43 enum DataSource {VectorCard, SharedMemory, PeakCard, XLVectorCard};
44
45 bool openInterface(const int number, const unsigned int speed);
46 bool openInterface(char* port, char* accessMode);
47 bool closeInterface(const int number);
48 void stop();
49
50 void setSignalSempahore(QSemaphore * semaphore) { semaphore_ = semaphore;};
51 void setExchangeBuffer(TimestampedCanFrame * framesArray, const int framesArraySize);
52 void setSource(DataSource source);
53 CanDriver * canDriver_;
54protected:
55 void run();
56 void vectorLoop();
57 void shMemLoop();
58 void peakLoop();
59 void vectorXlLoop();
60
61private:
62 CanFrame frame_;
63 bool continue_;
64 DataSource source_;
65
66 QSemaphore *semaphore_;
67 TimestampedCanFrame * receivedFrames_;
68 int receivedFramesArraySize_;
69
70 ShMem * shMem_;
71
72 int counter_;
73};
74
75} // namespace pacpus
76
77#endif // WIN32CANINTERFACE_H
Note: See TracBrowser for help on using the repository browser.