Changeset 151 in flair-src for trunk/lib/FlairSensorActuator


Ignore:
Timestamp:
03/01/17 15:38:42 (7 years ago)
Author:
Sanahuja Guillaume
Message:

add timestamp to simucamera producer

Location:
trunk/lib/FlairSensorActuator/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/FlairSensorActuator/src/SimuCamera.cpp

    r150 r151  
    1919#include <FrameworkManager.h>
    2020#include <GroupBox.h>
    21 #include <SpinBox.h>
    22 //#include <cvimage.h>
    2321#include <SharedMem.h>
    2422#include <sstream>
     
    3230namespace sensor {
    3331
     32//control part
    3433SimuCamera::SimuCamera(string name,
    3534                       uint16_t width, uint16_t height, uint8_t channels,
     
    3736    : Thread(getFrameworkManager(), name, priority),
    3837      Camera(name, width, height, cvimage::Type::Format::BGR) {
    39 //  data_rate =
    40 //      new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 200, 1, 50);
    4138
    42   buf_size = width * height * channels;
     39  buf_size = width * height * channels+sizeof(Time);
    4340
    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;
    4643
    4744  ostringstream dev_name;
     
    5047}
    5148
     49//simulation part
    5250SimuCamera::SimuCamera(const IODevice *parent, string name, uint16_t width,
    5351                       uint16_t height, uint8_t channels, uint32_t dev_id)
    5452    : Thread(parent, name, 0), Camera(parent,name) {
    55 //  data_rate = NULL;
    5653
     54  buf_size = width * height * channels+sizeof(Time);
     55 
    5756  ostringstream dev_name;
    5857  dev_name << "simu_cam_" << dev_id;
    5958  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;
    6161}
    6262
     
    6464  SafeStop();
    6565  Join();
     66  if(shmemReadBuf!=NULL) delete shmemReadBuf;
    6667}
    6768
    6869void SimuCamera::Run(void) {
     70  Time time;
    6971//  if (data_rate == NULL) {
    7072//    Thread::Err("not applicable for simulation part.\n");
     
    8486    output->GetMutex();
    8587    //blocking read
    86     shmem->Read((char *)img->imageData, buf_size); // remplacer copie par
     88    shmem->Read(shmemReadBuf, buf_size); // remplacer copie par
    8789                                                   // échange de pointeur sur
    8890                                                   // double buffering
    8991    output->ReleaseMutex();
    90 
    91     output->SetDataTime(GetTime());
     92    memcpy(&time,shmemReadBuf+buf_size-sizeof(Time),sizeof(Time));
     93    output->SetDataTime(time);
    9294
    9395    ProcessUpdate(output);
  • trunk/lib/FlairSensorActuator/src/SimuCamera.h

    r144 r151  
    2121  namespace core {
    2222    class SharedMem;
    23   }
    24   namespace gui {
    25     class SpinBox;
    2623  }
    2724}
     
    9996  void UpdateFrom(const core::io_data *data){};
    10097
    101   gui::SpinBox *data_rate;
    10298  size_t buf_size;
    103   IplImage *img;
     99  char* shmemReadBuf;
    104100};
    105101} // end namespace sensor
Note: See TracChangeset for help on using the changeset viewer.