extern "C" {
#include <roboorte_robottype.h>
#include <robot.h>
+#include "../control/CRecognition.h"
}
int i = 0;
int keyNumber = 1000;
Uint8 *keys = NULL;
+unsigned char* color;
+
/* Public data for ORTE comuunication */
struct robottype_orte_data orte;
bool camera_control_on = false;
void processKeys()
-{
+{
+#ifdef __i386__
while (SDL_PollEvent(&event)){
- if (event.type == SDL_MOUSEBUTTONDOWN) recognition->learnPixel(&image->data[3*(image->width*event.motion.y + event.motion.x)]);
+ if (event.type == SDL_MOUSEBUTTONDOWN) color = &image->data[3*(image->width*event.motion.y + event.motion.x)];
}
+#endif
keys = SDL_GetKeyState(&keyNumber);
if (keys[SDLK_ESCAPE]) stop = true;
if (keys[SDLK_a]) camera->setBrightness(camera->getBrightness()+1);
if (keys[SDLK_u]) camera->setExposition(7);
if (keys[SDLK_SPACE] && lastKeys[SDLK_SPACE] == false) move = (move == false);
if (keys[SDLK_m]) recognition->increaseTolerance();
- if (keys[SDLK_n]) recognition->decreaseTolerance();
+ if (keys[SDLK_n]) recognition->decreaseTolerance();
if (keys[SDLK_l]) recognition->learnPixel(&image->data[3*(640*240+320)]);
if (keys[SDLK_RETURN])image->saveBmp();
memcpy(lastKeys,keys,keyNumber);
camera->setExposition(8);
CTimer timer;
- while (stop == false){
+ while(stop){
+ while (camera_control_on){
+ recognition->learnPixel(color);
//Nacteni obrazku
camera->renewImage(image);
//zpracovani obrazku
//meanPosition = recognition->findMean(image);
meanPosition = recognition->findSegment(image);
-
- //vypis timeru doby zpracovani obrazu
+ //vypis timeru doby zpracovani obrazu
//fprintf(stdout,"Timer %i\n",timer.getTime());
//vypocet rychlosti
//command = robot->computeCommand(meanPosition);
//if (move) robot->sendCommand(command);
//vykresleni vysledku zpracovani
- if (cp == true){
if (move==false || i%1 ==0){
image->plotLine(meanPosition.x,meanPosition.y);
image->plotCenter();
//Zpracovani udalosti z klavesnice
processKeys();
}
- }
+
//fprintf(stderr,"Device exposition=%d\n",camera->getExposition());
//fprintf(stderr,"%d\n\nBR=%lf\n",i,image->getOverallBrightness(true));
i++;
controlExposition(image,camera);
}
- }
-
+ }
+ }
delete recognition;
//delete robot;
delete image;