Newer
Older
//=============================================================================
namespace LibItsCam__TestSystem {
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
UpperTesterPort::UpperTesterPort(const char *par_port_name)
: UpperTesterPort_BASE(par_port_name), _cfg_params(), _layer_params(), _layer(NULL), _time_key("UpperTesterPort_Cam::outgoing_send")
{
loggers::get_instance().log("UpperTesterPort_Cam::UpperTesterPort_Cam");
}
UpperTesterPort::~UpperTesterPort()
{
if (_layer != NULL) {
delete _layer;
}
}
void UpperTesterPort::set_parameter(const char * parameter_name, const char * parameter_value)
{
loggers::get_instance().log("UpperTesterPort_Cam::set_parameter: %s=%s", parameter_name, parameter_value);
_cfg_params.insert(std::pair<std::string, std::string>(std::string(parameter_name), std::string(parameter_value)));
_cfg_params.log();
}
/*void UpperTesterPort::Handle_Fd_Event(int fd, boolean is_readable,
boolean is_writable, boolean is_error) {}*/
void UpperTesterPort::Handle_Fd_Event_Error(int /*fd*/)
{
}
void UpperTesterPort::Handle_Fd_Event_Writable(int /*fd*/)
{
}
void UpperTesterPort::Handle_Fd_Event_Readable(int /*fd*/)
{
}
/*void UpperTesterPort::Handle_Timeout(double time_since_last_call) {}*/
void UpperTesterPort::user_map(const char * system_port)
{
loggers::get_instance().log(">>> UpperTesterPort_Cam::user_map: %s", system_port);
// Build layer stack
Params::iterator it = _cfg_params.find(std::string("params"));
if (it != _cfg_params.end()) {
loggers::get_instance().log("UpperTesterPort_Cam::user_map: %s", it->second.c_str());
_layer = LayerStackBuilder::get_instance()->create_layer_stack(it->second.c_str());
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
if (static_cast<UpperTesterCamLayer *>(_layer) == NULL) {
loggers::get_instance().error("UpperTesterPort_Cam::user_map: Invalid stack configuration: %s", it->second.c_str());
}
static_cast<UpperTesterCamLayer *>(_layer)->addUpperPort(this);
} else {
loggers::get_instance().error("UpperTesterPort_Cam::user_map: No layers defined in configuration file");
}
}
void UpperTesterPort::user_unmap(const char * system_port)
{
loggers::get_instance().log(">>> UpperTesterPort_Cam::user_unmap: %s", system_port);
if (_layer != NULL) {
delete _layer;
_layer = NULL;
}
}
void UpperTesterPort::user_start()
{
}
void UpperTesterPort::user_stop()
{
}
void UpperTesterPort::outgoing_send(const LibItsCam__TypesAndValues::UtCamInitialize& send_par)
{
loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par);
float duration;
loggers::get_instance().set_start_time(_time_key);
static_cast<UpperTesterCamLayer *>(_layer)->sendMsg(send_par, _layer_params);
loggers::get_instance().set_stop_time(_time_key, duration);
}
void UpperTesterPort::outgoing_send(const LibItsCam__TypesAndValues::UtCamChangePosition& send_par)
{
loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par);
float duration;
loggers::get_instance().set_start_time(_time_key);
static_cast<UpperTesterCamLayer *>(_layer)->sendMsg(send_par, _layer_params);
loggers::get_instance().set_stop_time(_time_key, duration);
}
void UpperTesterPort::outgoing_send(const LibItsCam__TypesAndValues::UtCamTrigger& send_par)
{
loggers::get_instance().log_msg(">>> UppertesterPort::outgoing_send: ", send_par);
float duration;
loggers::get_instance().set_start_time(_time_key);
static_cast<UpperTesterCamLayer *>(_layer)->sendMsg(send_par, _layer_params);
loggers::get_instance().set_stop_time(_time_key, duration);
}
void UpperTesterPort::outgoing_send(const LibItsCam__TypesAndValues::UtActivatePositionTime& /*send_par*/)
{
}
void UpperTesterPort::outgoing_send(const LibItsCam__TypesAndValues::UtDeactivatePositionTime& /*send_par*/)
{
}
void UpperTesterPort::receiveMsg (const Base_Type& p_ind, const Params& p_params) {
loggers::get_instance().log_msg(">>> UpperTesterPort_Cam::receive_msg: ", p_ind);
// Sanity check
if (!p_ind.is_bound()) {
return;
}
loggers::get_instance().log("UpperTesterPort_Cam::receive_msg: %s", p_ind.get_descriptor()->name);
if (std::string(p_ind.get_descriptor()->name).compare("@LibItsCam_TypesAndValues.UtCamResults") == 0) { // TODO To be refined
incoming_message((LibItsCam__TypesAndValues::UtCamResults&)p_ind);
} // TODO Implement UtCamEventInd part
}