OpcUaCanOpen
CANopen OPC-UA server
CanOpenObject.h
Go to the documentation of this file.
1
#ifndef __CANOPENOBJECT_H__
2
#define __CANOPENOBJECT_H__
3
4
#include "uaobjecttypes.h"
5
#include "uasemaphore.h"
6
#include "
InterfaceUserDataBase.h
"
7
#include "CanBusAccess.h"
8
9
#include "
CanOpenData.h
"
10
#include "
CANOpenServerConfig.h
"
11
#include "
CanBusObject.h
"
12
13
namespace
CanOpen
14
{
19
class
CanObject;
20
24
class
CanOpenObject
:
public
InterfaceUserDataBase
25
{
26
30
public
:
31
38
CanOpenObject
(
39
pUserDeviceStruct
*parent,::
xml_schema::type
*
conf
,UaNode *blink,
int
code);
40
42
virtual
~CanOpenObject
(
void
);
43
44
CCanAccess
*
getCanBus
();
45
46
const
char
*
getBusName
() {
47
CanBusObject
* cb =
static_cast<
CanBusObject
*
>
(
getTopInterface
()->
getDevice
());
48
const
char
*bn = cb->
getCanBusName
().c_str() ;
49
return
bn;
50
}
51
52
OpcUa_UInt16
getCobId
()
53
{
54
return
m_cobId
;
55
}
56
57
// virtual UaStatus getDeviceMessage(OpcUa_UInt32) = 0;
58
// virtual UaStatus sendDeviceMessage(OpcUa_UInt32 code, UaDataValue *value = 0) = 0;
59
60
virtual
void
pass
(
const
CanMsgStruct
*) = 0;
61
62
virtual
bool
isMsgForObject
(
const
CanMsgStruct
*);
63
64
DirectionType
getDirectionType
() {
return
m_direction
; }
65
UaStatus
waitOperation
(OpcUa_UInt timeout);
66
UaStatus
waitOperation
();
67
68
virtual
void
messageCame
() {
69
signalOperation
();
70
}
71
72
virtual
UaStatus
releaseOperation
();
73
virtual
UaStatus
signalOperation
()
74
{
75
if
((
m_iMaxCount
-
m_iCount
) > 0)
76
++
m_iCount
;
77
return
m_waitMessage
.post(1);
78
}
79
80
UaByteArray
m_buffer
;
81
UaDateTime
m_udt
;
82
83
protected
:
84
85
OpcUa_UInt32
m_iTimeout
;
86
UaSemaphore
m_waitMessage
;
87
88
OpcUa_UInt16
m_cobId
;
89
DirectionType
m_direction
;
90
OpcUa_UInt32
m_iMaxCount
;
91
OpcUa_UInt32
m_iCount
;
92
};
93
}
94
#endif
95
CanOpen
include
CanOpenObject.h
Generated on Fri Sep 11 2020 14:29:51 for OpcUaCanOpen by
1.8.14