Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1494021
MasterAgentHandlerOfAgent.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
2 KB
Referenced Files
None
Subscribers
None
MasterAgentHandlerOfAgent.cpp
View Options
#include
"MasterAgentHandlerOfAgent.h"
#include
<cstdlib>
#define MAX_BUFFER_LENGTH_MASTERAGENT_HANDLER 300
MasterAgentHandlerOfAgent
::
MasterAgentHandlerOfAgent
()
{
masterAgentSlotOfAgent
=
NULL
;
maxBufferLength
=
MAX_BUFFER_LENGTH_MASTERAGENT_HANDLER
;
}
bool
MasterAgentHandlerOfAgent
::
mount_masterAgentIntoSlaveAgentSlot
(
Channel
*
comPort
)
{
masterAgentSlotOfAgent
=
new
SlotOfAgent
();
if
(
masterAgentSlotOfAgent
!=
NULL
)
{
if
(
masterAgentSlotOfAgent
->
set_comPort
(
comPort
))
{
return
true
;
}
}
delete
masterAgentSlotOfAgent
;
return
false
;
}
SlotOfAgent
*
MasterAgentHandlerOfAgent
::
get_masterAgentSlotAddress
()
{
return
masterAgentSlotOfAgent
;
}
bool
MasterAgentHandlerOfAgent
::
demount_masterAgent
()
{
if
(
masterAgentSlotOfAgent
!=
NULL
)
{
delete
masterAgentSlotOfAgent
;
masterAgentSlotOfAgent
=
NULL
;
return
true
;
}
return
false
;
}
bool
MasterAgentHandlerOfAgent
::
set_maxBufferLength
(
unsigned
int
maxBufferLength
)
{
if
(
maxBufferLength
<=
MAX_BUFFER_LENGTH_MASTERAGENT_HANDLER
)
{
this
->
maxBufferLength
=
maxBufferLength
;
return
true
;
}
return
false
;
}
unsigned
int
MasterAgentHandlerOfAgent
::
get_maxBufferLength
()
{
return
maxBufferLength
;
}
bool
MasterAgentHandlerOfAgent
::
pass_msgToSendBuffer
(
float
msg
)
{
// TODO: make message handler and shift following lines to it!
// TODO: try/catch for pushback function!
Message
*
message
=
new
Message
(
msg
);
lSendBuffer
.
push_back
(
message
);
return
false
;
}
bool
MasterAgentHandlerOfAgent
::
pass_msgToSendBuffer
(
int
msg
)
{
// TODO: make message handler and shift following lines to it!
// TODO: try/catch for pushback function!
Message
*
message
=
new
Message
(
msg
);
lSendBuffer
.
push_back
(
message
);
return
false
;
}
unsigned
int
MasterAgentHandlerOfAgent
::
get_avlSendBuffer
()
{
return
maxBufferLength
-
get_occSendBuffer
();
}
unsigned
int
MasterAgentHandlerOfAgent
::
get_occSendBuffer
()
{
return
lSendBuffer
.
size
();
}
bool
MasterAgentHandlerOfAgent
::
send_msgs
()
{
if
(
masterAgentSlotOfAgent
!=
NULL
)
{
Channel
*
comPort
=
masterAgentSlotOfAgent
->
get_comPort
();
if
(
comPort
!=
NULL
)
{
// TODO: also other sending mode... current MODE: only send it when all
// packets can be sended
if
(
get_occSendBuffer
()
<=
comPort
->
get_avlInputBufferUp
())
{
// for(unsigned int i=0; i<get_occSendBuffer(); i++)
while
(
get_occSendBuffer
()
>
0
)
{
// TODO: make message handler and shift following lines to it!
// TODO: try/catch for pushback function!
comPort
->
send_MsgUp
(
lSendBuffer
.
front
());
lSendBuffer
.
pop_front
();
}
}
}
}
return
false
;
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Mar 1, 6:29 PM (1 d, 19 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
283028
Default Alt Text
MasterAgentHandlerOfAgent.cpp (2 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment