VR-Forces 4.1.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
vrfobjcore
vrfRadio.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2007 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
10
11
#pragma once
12
13
#include "
tdbutil/stringKeyFactory.h
"
14
#include "
vrfobjcore/vrfobjcoreDefines.h
"
15
#include "
vrfmsgs/vrfObjectMessageExecutive.h
"
16
#include "
vrfmsgs/vrfObjectMessage.h
"
17
#include <deque>
18
19
class
DtVrfObject
;
20
class
DtVrfRadio
;
21
class
DtVrfRadioDescriptor
;
22
class
DtVrfObjectMessageExecutive
;
23
class
DtCommModel
;
24
class
DtVrfRadioTransmitter
;
25
class
DtSettingsObject
;
26
28
struct
DtRadioCreationParams
29
{
30
DtVrfObject
*
vrfObject
;
31
const
DtVrfRadioDescriptor
*
radioDescriptor
;
33
int
radioId
;
34
};
35
37
typedef
DtStringKeyFactoryWithParam<DtVrfRadio, DtRadioCreationParams&>
DtVrfRadioFactory
;
38
43
class
DT_DLL_vrfobjcore
DtVrfRadio
44
{
45
private
:
47
48
DtVrfRadio
();
49
DtVrfRadio
(
const
DtVrfRadio
& orig);
50
DtVrfRadio
& operator=(
const
DtVrfRadio
& orig);
52
53
public
:
54
DtVrfRadio
(
DtRadioCreationParams
& params);
55
virtual
~
DtVrfRadio
();
56
58
virtual
bool
init
();
59
62
virtual
DtString
type()
const
;
63
67
virtual
bool
sendMessage(
DtVrfObjectMessage
* message);
68
71
72
virtual
void
addMessageCallback(
DtVrfObjectMessageCallbackFcn
fcn,
void
* usr);
73
virtual
void
removeMessageCallback(
DtVrfObjectMessageCallbackFcn
fcn,
void
* usr);
75
76
template
<
typename
messageType>
77
void
addMessageCallback(
const
messageType& type,
DtVrfObjectMessageCallbackFcn
fcn,
void
* usr)
78
{
79
myMessageExecutive.addMessageCallback(type, fcn, usr);
80
}
81
82
template
<
typename
messageType>
83
void
removeMessageCallback(
const
messageType& type,
DtVrfObjectMessageCallbackFcn
fcn,
void
* usr)
84
{
85
myMessageExecutive.addMessageCallback(type, fcn, usr);
86
}
87
93
virtual
bool
readyToSend()
const
;
94
97
virtual
void
tick();
98
102
virtual
void
receiveMessage(
const
DtVrfObjectMessage
* message);
103
106
virtual
void
setReadyToSend(
bool
val);
107
109
virtual
DtVrfObject
* vrfObject();
110
112
virtual
int
radioId()
const
;
113
116
virtual
double
sampleRate()
const
;
117
122
123
virtual
const
DtVrfRadioTransmitter
* radioTransmitter()
const
;
124
virtual
DtVrfRadioTransmitter
* radioTransmitter();
126
128
static
DtVrfRadio
* create(
DtRadioCreationParams
& params);
129
131
static
void
setFactory(
DtVrfRadioFactory
* factory);
133
static
DtVrfRadio
* createRadio(
const
DtString
& typeString,
DtVrfObject
* vrfObject,
134
const
DtVrfRadioDescriptor
* descriptor,
int
radioId);
135
145
static
void
readCommModelSettingsCallback(
146
const
DtSettingsObject
* settings,
void
* usr);
147
virtual
void
processReadCommModelSettings(
const
DtSettingsObject
* settings);
148
149
protected
:
150
static
DtVrfRadioFactory
*
theFactory
;
151
152
DtVrfObject
*
myVrfObject
;
153
const
DtVrfRadioDescriptor
&
myRadioDescriptor
;
154
DtVrfObjectMessageExecutive
myMessageExecutive
;
156
DtCommModel
*
myCommModel
;
157
DtVrfRadioTransmitter
*
myRadioTransmitter
;
158
int
myRadioId
;
159
bool
myReadyToSend
;
160
typedef
std::deque<DtVrfObjectMessagePtr>
DtMessageQueue
;
161
DtMessageQueue
myMessageQueuedToSend
;
162
};
Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)