示例#1
0
void Listener::chatterCallback(const sensor_msgs::ImageConstPtr& msg){

//(const std_msgs::String::ConstPtr &msg) {
//	ROS_INFO("I heard: [%s]", msg->data.c_str());
	cv_bridge::CvImagePtr cv_ptr;
	  try
	    {
	      cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);

	    }
	    catch (cv_bridge::Exception& e)
	    {
	      ROS_ERROR("cv_bridge exception: %s", e.what());
	      return;
	    }
	    px = QPixmap::fromImage(cvtCvMat2QImage(cv_ptr->image));
	logging.insertRows(0,1);
	std::stringstream logging_msg;
	logging_msg << "[ INFO] [" << ros::Time::now() << "]: I heard: " << "camera";
	QVariant new_row(QString(logging_msg.str().c_str()));
	logging.setData(logging.index(0),new_row);
	Q_EMIT Update_Image(&px);
}
示例#2
0
文件: Raster.cpp 项目: envinf/ogs
void Raster::refineRaster(std::size_t scaling)
{
	double *new_raster_data(new double[_n_rows*_n_cols*scaling*scaling]);

	for (std::size_t row(0); row<_n_rows; row++) {
		for (std::size_t col(0); col<_n_cols; col++) {
			const std::size_t idx(row*_n_cols+col);
			for (std::size_t new_row(row*scaling); new_row<(row+1)*scaling; new_row++) {
				const std::size_t idx0(new_row*_n_cols*scaling);
				for (std::size_t new_col(col*scaling); new_col<(col+1)*scaling; new_col++) {
					new_raster_data[idx0+new_col] = _raster_data[idx];
				}
			}
		}
	}

	std::swap(_raster_data, new_raster_data);
	_cell_size /= scaling;
	_n_cols *= scaling;
	_n_rows *= scaling;

	delete [] new_raster_data;
}
示例#3
0
void
printBlock (
  sEvent *sp,
  FILE *outFile
)
{
  char time_str[40];
  pwr_tTime event_time;

  new_row( outFile);
  printMsgInfo(&(sp->Mess.block.Info), outFile);
  //EventText
  //Status
  //TargetIdx
  //DetectTime
  //AValue
  //CtrlLimit
  //Hysteres
  //Unit
  //DValue
  //High
  col_print(outFile, "\"\"");
  col_print(outFile, "%s", sp->Mess.block.EventName);
  col_print(outFile, "%u", sp->Mess.block.TargetId.Idx);

  event_time = net_NetTimeToTime( &(sp->Mess.block.DetectTime));        
  time_AtoAscii(&event_time, time_eFormat_ComprDateAndTime, time_str, sizeof(time_str));
  col_print(outFile, "%s", time_str);
    
  col_print(outFile,"");
  col_print(outFile,"");
  col_print(outFile,"");
  col_print(outFile,"");
  col_print(outFile,"");
  col_print(outFile,"");
}
示例#4
0
文件: cspcapa.c 项目: ppdewolf/CSP
int        separa_capacity(int        *card,CONSTRAINT **stack)

{
    
    int       k,l,nvar,num,index;
    double    *primal;
    double    *cvar;
    PROT_LEVEL*pro,*pro0;
    VARIABLE  **xvar;
    CONSTRAINT*con;
    char      *sleep;
    double    bd[2];
    double    maxc;

    if( *card ==MAX_CUTS_ITER) return(0);
#ifdef STAMP
    std::cout << "    .. capacity cuts .. ";
#endif

    cvar = (double *)malloc( Rncells * sizeof(double) );
    xvar = (VARIABLE **)malloc( Rncells * sizeof(VARIABLE *) );
    primal = (double *)malloc( Rncells * sizeof(double) );
    if( !cvar || !xvar || !primal ){        
        std::cout << "There is not enough memory for CAPACITY" << std::endl;
        CSPexit(EXIT_MEMO); //exit(1);
    }
    for(k=0;k<Rncells;k++) primal[k] = columns[k].val;
    load_network(primal,'C');

    num = *card;
    sleep = (char *)calloc( nprot_level , sizeof(char) );
    l = nprot_level;
    while(l--){
        pro = prot_level+l;
        if( !sleep[l] ){
			index = pro->sen->var->index;
///////////			free_col(index,bd);
            if( protection_level(pro->sen->var,pro->sense,&nvar,xvar,cvar,primal,'C') < pro->sense * pro->sen->var->nominal + pro->level-ZERO ){
                con = capacity_constraint(nvar,xvar,cvar,pro->sen->var,pro->level);
                if( con && new_row(con) ){
                    stack[ num++] = con;
                    if( num==MAX_CUTS_ITER) break;
                }else
                    remove_row( con );
            }
///////////			unfree_col(index,bd);
            k = l;
            while(k--){
                pro0 = prot_level+k;
                if( pro0->sense * primal[ pro0->sen->var->index ] > pro0->sense * pro0->sen->var->nominal + pro0->level - ZERO )
                    sleep[k] = 1;
            }
//                    for introducing an alternative Capacity Cut
//                         a cell must be choosen to be super-suppressed

            index = -1;
            maxc  = 0.0;
            for(k=0;k<nvar;k++)
                if( xvar[k]->val>ZERO && cvar[k]>maxc ){
                    index = xvar[k]->index;
                    maxc  = cvar[k];
                }
            if( index != -1 ){
                free_col(index,bd);
                if( protection_level(pro->sen->var,pro->sense,&nvar,xvar,cvar,NULL,'C') < pro->sense * pro->sen->var->nominal + pro->level-ZERO ){
#ifdef STAMP
                    for(k=0;k<nvar;k++)
                        if( xvar[k]->index==index ){                            
                            std::cout << "ERROR: capacity with imposible cell" << std::endl;
                            CSPexit(EXIT_ERROR); //exit(1);
                        }
#endif
                    con = capacity_constraint(nvar,xvar,cvar,pro->sen->var,pro->level);
                    if( con && new_row(con) ){
                        stack[ num++] = con;
                        if( num==MAX_CUTS_ITER) break;
                    }else
                        remove_row( con );
                }
                unfree_col(index,bd);
            }
        }
    }
    free( sleep );
    sleep = NULL; /*PWOF*/
    num -= *card;
    *card += num;
    unload_network();

    free(primal);
    primal = NULL; /*PWOF*/
    free(cvar);
    cvar = NULL; /*PWOF*/
    free(xvar);
    xvar = NULL; /*PWOF*/
    ccapa += num;
#ifdef STAMP
    std::cout << num << std::endl;
#endif
    return( num );
}
示例#5
0
文件: Cspbridg.c 项目: ppdewolf/CSP
int        separa_bridge(int        *card,CONSTRAINT **stack)

{
    
    int       k,l,nvar,nvar1,nvar2,num;
    double    *primal1,*primal2;
    double    *cvar1,*cvar2,*cvar;
    VARIABLE  *var,*var0;
    VARIABLE  **xvar1,**xvar2,**xvar;
    CONSTRAINT*con;
    double    minvalue,maxvalue,value;
    char      *sleep;

    if( *card ==MAX_CUTS_ITER) return(0);
#ifdef STAMP
    std::cout << "    .. bridge-less cuts .. ";
#endif

    cvar    = (double *)malloc( Rncells * sizeof(double) );
    cvar1   = (double *)malloc( Rncells * sizeof(double) );
    cvar2   = (double *)malloc( Rncells * sizeof(double) );
    xvar1   = (VARIABLE **)malloc( Rncells * sizeof(VARIABLE *) );
    xvar2   = (VARIABLE **)malloc( Rncells * sizeof(VARIABLE *) );
    xvar    = (VARIABLE **)malloc( Rncells * sizeof(VARIABLE *) );
    primal1 = (double *)malloc( Rncells * sizeof(double) );
    primal2 = (double *)malloc( Rncells * sizeof(double) );
    if( !cvar1 || !cvar2 || !xvar || !primal1 || !primal2 ){        
        std::cout << "There is not enough memory for CAPACITY" << std::endl;
        CSPexit(EXIT_MEMO); //exit(1);
    }
    for(k=0;k<Rncells;k++) primal2[k] = primal1[k] = columns[k].val;
    load_network(primal1,'C');

    num = *card;
    sleep = (char *)calloc( nsupport , sizeof(char) );
    for(k=0;k<nsupport;k++)
        if( support[k]->sensitive ) sleep[k]=1;
    
    l = nsupport;
    while(l--){
        var = support[l];
        if( !sleep[l] ){
            bounding_1();
            maxvalue = protection_level(var,1,&nvar1,xvar1,cvar1,primal1,'C');
            minvalue = -protection_level(var,-1,&nvar2,xvar2,cvar2,primal2, 'C');
            value = bridge_lhs(nvar1,nvar2,xvar1,xvar2,cvar1,cvar2,&nvar,xvar,cvar);
            if( maxvalue-minvalue < ZERO || value < var->val+ZERO-MIN_VIOLA ){
                con = bridge_constraint(nvar,xvar,var->index);
                if( con && new_row(con) ){
                    stack[ num++] = con;
                    if( num==MAX_CUTS_ITER) break;
                }else
                    remove_row( con );
            }
            k = l;
            while(k--){
                var0 = support[k];
                if( fabs(primal2[var0->index] - primal1[var0->index]) > var0->val-MIN_VIOLA+ZERO )
                    sleep[k] = 1;
            }
        }
    }
    free( sleep );
    sleep = NULL; /*PWOF*/
    num -= *card;
    *card += num;
    unload_network();

    free(primal1);
    primal1 = NULL; /*PWOF*/
    free(primal2);
    primal2 = NULL; /*PWOF*/
    free(xvar);
    xvar = NULL; /*PWOF*/
    free(xvar1);
    xvar1 = NULL; /*PWOF*/
    free(xvar2);
    xvar2 = NULL; /*PWOF*/
    free(cvar);
    cvar = NULL; /*PWOF*/
    free(cvar1);
    cvar1 = NULL; /*PWOF*/
    free(cvar2);
    cvar2 = NULL; /*PWOF*/
    cbrid += num;
#ifdef STAMP
    std::cout << num << std::endl;
#endif
    return( num );
}