Changeset 151 in flair-src for trunk/lib/FlairSensorActuator/src
- Timestamp:
- Mar 1, 2017, 3:38:42 PM (8 years ago)
- Location:
- trunk/lib/FlairSensorActuator/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairSensorActuator/src/SimuCamera.cpp
r150 r151 19 19 #include <FrameworkManager.h> 20 20 #include <GroupBox.h> 21 #include <SpinBox.h>22 //#include <cvimage.h>23 21 #include <SharedMem.h> 24 22 #include <sstream> … … 32 30 namespace sensor { 33 31 32 //control part 34 33 SimuCamera::SimuCamera(string name, 35 34 uint16_t width, uint16_t height, uint8_t channels, … … 37 36 : Thread(getFrameworkManager(), name, priority), 38 37 Camera(name, width, height, cvimage::Type::Format::BGR) { 39 // data_rate =40 // new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 200, 1, 50);41 38 42 buf_size = width * height * channels ;39 buf_size = width * height * channels+sizeof(Time); 43 40 44 img = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);45 output->img->imageData = img->imageData;41 shmemReadBuf=(char*)malloc(buf_size); 42 output->img->imageData = shmemReadBuf; 46 43 47 44 ostringstream dev_name; … … 50 47 } 51 48 49 //simulation part 52 50 SimuCamera::SimuCamera(const IODevice *parent, string name, uint16_t width, 53 51 uint16_t height, uint8_t channels, uint32_t dev_id) 54 52 : Thread(parent, name, 0), Camera(parent,name) { 55 // data_rate = NULL;56 53 54 buf_size = width * height * channels+sizeof(Time); 55 57 56 ostringstream dev_name; 58 57 dev_name << "simu_cam_" << dev_id; 59 58 shmem = new SharedMem((Thread *)this, dev_name.str().c_str(), 60 width * height * channels, SharedMem::Type::producerConsumer); 59 buf_size, SharedMem::Type::producerConsumer); 60 shmemReadBuf=NULL; 61 61 } 62 62 … … 64 64 SafeStop(); 65 65 Join(); 66 if(shmemReadBuf!=NULL) delete shmemReadBuf; 66 67 } 67 68 68 69 void SimuCamera::Run(void) { 70 Time time; 69 71 // if (data_rate == NULL) { 70 72 // Thread::Err("not applicable for simulation part.\n"); … … 84 86 output->GetMutex(); 85 87 //blocking read 86 shmem->Read( (char *)img->imageData, buf_size); // remplacer copie par88 shmem->Read(shmemReadBuf, buf_size); // remplacer copie par 87 89 // échange de pointeur sur 88 90 // double buffering 89 91 output->ReleaseMutex(); 90 91 output->SetDataTime( GetTime());92 memcpy(&time,shmemReadBuf+buf_size-sizeof(Time),sizeof(Time)); 93 output->SetDataTime(time); 92 94 93 95 ProcessUpdate(output); -
trunk/lib/FlairSensorActuator/src/SimuCamera.h
r144 r151 21 21 namespace core { 22 22 class SharedMem; 23 }24 namespace gui {25 class SpinBox;26 23 } 27 24 } … … 99 96 void UpdateFrom(const core::io_data *data){}; 100 97 101 gui::SpinBox *data_rate;102 98 size_t buf_size; 103 IplImage *img;99 char* shmemReadBuf; 104 100 }; 105 101 } // end namespace sensor
Note:
See TracChangeset
for help on using the changeset viewer.