24 #include <interfaces/KickerInterface.h>
26 #include <core/exceptions/software.h>
47 KickerInterface::KickerInterface() : Interface()
49 data_size =
sizeof(KickerInterface_data_t);
51 data = (KickerInterface_data_t *)
data_ptr;
54 enum_map_GuideBallSideEnum[(int)GUIDE_BALL_LEFT] =
"GUIDE_BALL_LEFT";
55 enum_map_GuideBallSideEnum[(int)GUIDE_BALL_RIGHT] =
"GUIDE_BALL_RIGHT";
59 add_fieldinfo(
IFT_ENUM,
"guide_ball_side", 1, &data->guide_ball_side,
"GuideBallSideEnum", &enum_map_GuideBallSideEnum);
64 unsigned char tmp_hash[] = {0x96, 0x3d, 0x55, 0x60, 0xfd, 0x65, 0xf2, 0xfa, 0xa8, 0xfa, 0xfc, 0xaa, 0xb6, 0xfc, 0xc2, 0x81};
69 KickerInterface::~KickerInterface()
83 default:
return "UNKNOWN";
96 return data->num_kicks_left;
118 data->num_kicks_left = new_num_kicks_left;
131 return data->num_kicks_center;
153 data->num_kicks_center = new_num_kicks_center;
166 return data->num_kicks_right;
188 data->num_kicks_right = new_num_kicks_right;
221 data->guide_ball_side = new_guide_ball_side;
234 return data->current_intensity;
256 data->current_intensity = new_current_intensity;
264 if ( strncmp(
"KickMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
265 return new KickMessage();
266 }
else if ( strncmp(
"ResetCounterMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
267 return new ResetCounterMessage();
268 }
else if ( strncmp(
"GuideBallMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
269 return new GuideBallMessage();
271 throw UnknownTypeException(
"The given type '%s' does not match any known "
272 "message type for this interface type.",
type);
283 const KickerInterface *oi = dynamic_cast<const KickerInterface *>(other);
286 type(), other->type());
288 memcpy(data, oi->data,
sizeof(KickerInterface_data_t));
294 if (strcmp(enumtype,
"GuideBallSideEnum") == 0) {
319 data = (KickMessage_data_t *)
data_ptr;
321 data->left = ini_left;
322 data->center = ini_center;
323 data->right = ini_right;
324 data->intensity = ini_intensity;
338 data = (KickMessage_data_t *)
data_ptr;
362 data = (KickMessage_data_t *)
data_ptr;
394 data->left = new_left;
424 data->center = new_center;
454 data->right = new_right;
464 return data->intensity;
484 data->intensity = new_intensity;
507 data_size =
sizeof(ResetCounterMessage_data_t);
510 data = (ResetCounterMessage_data_t *)
data_ptr;
530 data = (ResetCounterMessage_data_t *)
data_ptr;
557 data_size =
sizeof(GuideBallMessage_data_t);
560 data = (GuideBallMessage_data_t *)
data_ptr;
562 data->guide_ball_side = ini_guide_ball_side;
565 add_fieldinfo(
IFT_ENUM,
"guide_ball_side", 1, &data->guide_ball_side,
"GuideBallSideEnum", &enum_map_GuideBallSideEnum);
570 data_size =
sizeof(GuideBallMessage_data_t);
573 data = (GuideBallMessage_data_t *)
data_ptr;
577 add_fieldinfo(
IFT_ENUM,
"guide_ball_side", 1, &data->guide_ball_side,
"GuideBallSideEnum", &enum_map_GuideBallSideEnum);
594 data = (GuideBallMessage_data_t *)
data_ptr;
626 data->guide_ball_side = new_guide_ball_side;
646 const KickMessage *m0 = dynamic_cast<const KickMessage *>(message);
650 const ResetCounterMessage *m1 = dynamic_cast<const ResetCounterMessage *>(message);
654 const GuideBallMessage *m2 = dynamic_cast<const GuideBallMessage *>(message);
662 EXPORT_INTERFACE(KickerInterface)