VR-Forces 4.7 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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 Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (
www.mak.com
)