本文整理汇总了C++中DImage::compute_robot_position方法的典型用法代码示例。如果您正苦于以下问题:C++ DImage::compute_robot_position方法的具体用法?C++ DImage::compute_robot_position怎么用?C++ DImage::compute_robot_position使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DImage
的用法示例。
在下文中一共展示了DImage::compute_robot_position方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: envoyer_image
void envoyer_image(void *arg) {
DMessage *message = d_new_message();
DMessage *message_position = d_new_message();
DMessage *message_arena = d_new_message();
DImage *image = d_new_image();
DJpegimage *jpegimage = d_new_jpegimage();
char arena_found[] = "arena found";
rt_printf("tstreaming : Envoi de l'image à ~2.5img/s\n");
rt_task_set_periodic(NULL, TM_NOW, 400000000);
while (1) {
/* Attente de l'activation périodique */
rt_task_wait_period(NULL);
rt_mutex_acquire(&mutexEtatCamera, TM_INFINITE);
camera->get_frame(camera, image);
switch (etat_camera) {
case 0 : /* streaming simple */
rt_mutex_release(&mutexEtatCamera);
break;
case 1 : /* streaming avec arena */
rt_mutex_release(&mutexEtatCamera);
/* détection de l'arène */
arena = (DArena *) image->compute_arena_position(image);
/*check si l'arene a été trouvée*/
if (arena != NULL) {
x_arena = arena->get_x(arena);
y_arena = arena->get_y(arena);
//rt_printf("x = %f; y = %f\n ", x_arena, y_arena);
/*envoie du message confirmant que l'arène a été trouvée*/
message_arena->set(message_arena, ACTION_ARENA_IS_FOUND, strlen(arena_found), arena_found);
serveur->send(serveur, message_arena);
d_imageshop_draw_arena(image, arena);
}
break;
case 2 : /* streaming avec position du robot */
rt_mutex_release(&mutexEtatCamera);
/* détection de la position du robot */
arena = (DArena *) image->compute_arena_position(image);
rt_mutex_acquire(&mutexPosition, TM_INFINITE);
position_robot = (DPosition *) image->compute_robot_position(image, arena);
if (position_robot != NULL) {
x_robot = position_robot->get_x(position_robot);
y_robot = position_robot->get_y(position_robot);
orientation_robot = position_robot->get_orientation(position_robot);
rt_mutex_release(&mutexPosition);
/* rt_printf("\n\n\nx = %f; y = %f, angle = %f\n\n\n ", x_robot, y_robot, orientation_robot); */
/*envoie de la position par message*/
message_position->put_position(message_position, position_robot);
serveur->send(serveur, message_position);
d_imageshop_draw_position(image, position_robot);
}
break;
case 3 : /* streaming avec position de l'arene et du robot */
rt_mutex_release(&mutexEtatCamera);
/* détection de la position du robot et de l'arene*/
arena = (DArena *) image->compute_arena_position(image);
rt_mutex_acquire(&mutexPosition, TM_INFINITE);
position_robot = (DPosition *) image->compute_robot_position(image, arena);
if (position_robot != NULL) {
x_robot = position_robot->get_x(position_robot);
y_robot = position_robot->get_y(position_robot);
/* rt_printf("\n\n\nx = %f; y = %f\n\n\n ", x_robot, y_robot); */
rt_mutex_release(&mutexPosition);
/*envoie de la position par message*/
message_position->put_position(message_position, position_robot);
serveur->send(serveur, message_position);
d_imageshop_draw_position(image, position_robot);
}
/*check si l'arene a été trouvée*/
if (arena != NULL) {
x_arena = arena->get_x(arena);
y_arena = arena->get_y(arena);
/* rt_printf("x = %f; y = %f\n ", x_arena, y_arena); */
/*envoie du message confirmant que l'arène a été trouvée*/
message_arena->set(message_arena, ACTION_ARENA_IS_FOUND, strlen(arena_found), arena_found);
serveur->send(serveur, message_arena);
d_imageshop_draw_arena(image, arena);
}
break;
default :
rt_printf("valeur de etat_camera corrompue\n");
}
/*compression et envoie de l'image*/
jpegimage->compress(jpegimage, image);
//jpegimage->print(jpegimage);
message->put_jpeg_image(message, jpegimage);
//.........这里部分代码省略.........