Exemplo n.º 1
0
int main(int argc, char *argv[])
{
    (void) argc; (void) argv;

    int n = 10;
    pthread_t threads[n];
    work_t work_items[n];

    QImage image;

    QString orig("../../inf8601-scratchpad/res/bsod.png");
    QString modz(orig + ".modz.png");

    if (!image.load(orig)) {
        qDebug() << "error loading image";
        return -1;
    }
    image = image.convertToFormat(QImage::Format_RGB32);

    for (int i = 0; i < n; i++) {
        work_items[i].n = n;
        work_items[i].rank = i;
        work_items[i].image = &image;
        pthread_create(&threads[i], NULL, effect, &work_items[i]);
    }

    for (int i = 0; i < n; i++) {
        pthread_join(threads[i], NULL);
    }

    image.save(modz);

    return 0;
}
/// Testbench
int sc_main(int argc, char *argv[]) {
  
  GS_INIT_STANDARD_GREENCONTROL;
  
  {
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "report_message_file1.txt"; 
    cnf.msgconfig_starttime_en = true;
    cnf.msgconfig_starttime = sc_core::sc_time(13, sc_core::SC_NS);
    cnf.msgconfig_endtime = sc_core::sc_time(23, sc_core::SC_NS);
    cnf.msgconfig_dbglvl = gs::report::dbg_msg_L9;
    cnf.msgconfig_printfile = true;
    cnf.msgconfig_module_id.push_back("ModuleA"); // ModuleA
    cnf.msgconfig_module_id.push_back(""); // top-level
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  {
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "stdout"; 
    cnf.msgconfig_dbglvl = gs::report::dbg_msg_L6;
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  {
    // system message output with new cnf object
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "SC_REPORT_INFO"; 
    cnf.msgconfig_info_en = true;
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  
  ModuleA moda("ModuleA");
  ModuleA modz("ModuleZ");
  
  sc_core::sc_start();
    
  return EXIT_SUCCESS; 
  
}
	void trym()
	{
		double tx,ty;

		for(int i=0;i<n;i++)
		{
			tx=zx;
			ty=zy;

			step();

			if(modz()>2)
			{
				ism=0;
				iter=i;
				return;
			}
			if(tx==zx && ty==zy)
				break;
		}
		ism=1;
	}