Exemplo n.º 1
0
Region *GetRegion(
    char *inname,
    fstream &output,
    int &FstIter,
    double &CurTime,
    double &TimeStp,
    double &TimeWrite,
    double &PresDerivCoef,
    double &EndTime) {
    int Cont = 1, HeadRead = 1;
    FstIter = 1;
    char tmp[150];
    double CurTime1, Buf;
    fstream input = fstream(inname, ios::in);
    Region *Reg = NULL, *Reg1 = NULL, *Reg0 = NULL;
    Reg = new Region;
    Reg1 = new Region;

    InHead(input, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
    if((!Reg->ReadMatter(input)) || (!Reg->ReadData(input))) {
        cout << " Could not read ReadIni. exiting.\n";
        exit(0);
    }
    input >> tmp;
    if(!seek_eof(input)) {
        input.close();
        input.open(inname, ios::in);
        InHead(input, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
        Reg1->ReadMatter(input);
        Reg1->ReadData(input);
    }
    input >> tmp;
    OutHead(output, *Reg, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime, 1);
    if(InHead(input, CurTime1, Buf, Buf, Buf, Buf)) {
        if(!Reg1->ReadData(input))
            goto exit_loop;
        input >> tmp;
        OutHead(output, *Reg1, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
        Reg0 = Reg;
        Reg = Reg1;
        Reg1 = Reg0;
        CurTime = CurTime1;
        while(InHead(input, CurTime1, Buf, Buf, Buf, Buf)) {
            //      if (!Reg1->ReadData(input)) goto exit_loop;
            if(!Reg1->ReadData(input))
                goto exit_loop;
            input >> tmp;
            OutHead(output, *Reg1, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
            Reg0 = Reg;
            Reg = Reg1;
            Reg1 = Reg0;
            CurTime = CurTime1;
        }
    };
exit_loop:
    cout << " Bef del Coreleft " << Coreleft() << "\n";
    delete Reg1;
    cout << " Aft del Coreleft " << Coreleft() << "\n";
    return Reg;
};
Exemplo n.º 2
0
RegionIO* GetRegion(char *inname,fstream &output,int &FstIter,
                        double &CurTime,double &TimeStp,double &TimeWrite,
                                    double &PresDerivCoef,double &EndTime)
  {
   int Cont=1,HeadRead=1;FstIter=1;
			char tmp[150];
			double CurTime1,Buf;
   fstream input=fstream(inname,ios::in);
   RegionIO *Reg=NULL,*Reg1=NULL,*Reg0=NULL;
   Reg=new RegionIO;Reg1=new RegionIO;
   do
     {
      if (!FstIter) {input>>tmp;HeadRead=InHead(input,CurTime,Buf,Buf,Buf,Buf);}
						else InHead(input,CurTime,TimeStp,TimeWrite,PresDerivCoef,EndTime);
      Cont=0;
      if ((HeadRead) && (Reg->ReadIni(input)))
        {
         if (!FstIter)
           {
            OutHead(output,*Reg1,CurTime1,TimeStp,TimeWrite,PresDerivCoef,EndTime);
            Reg1->InterfaceIODelete();
           }  
         FstIter=0;
//cout<<" Read Reg1 \n";
         input>>tmp;
         if (InHead(input,CurTime1,Buf,Buf,Buf,Buf) && (Reg1->ReadIni(input)))
           {
            OutHead(output,*Reg,CurTime,TimeStp,TimeWrite,PresDerivCoef,EndTime);
            Reg->InterfaceIODelete();
            Cont=1;
cout<<" Cont "<<Cont<<"\n";
           } 
         else Reg1->InterfaceIODelete();
        }   
      else 
        {
         if (FstIter) { cout<<" There is no points. Exiting\n";exit (1);}
Exemplo n.º 3
0
// 处理页求请求
int Page::Deal()
{
    FUNCTION_TRACK(); // 函数轨迹跟踪

    Connect * const connect = m_request->GetConnect();

    // 输出http协议头部
    if( OutHead() < 0 )
    {
        LOG_ERROR("Send http head error");
        return ERR;
    }

    // 输出数据体
    return OutBody();
}
Exemplo n.º 4
0
int cgiMain() {
	int sensor_num,sensor_idx;
	int i,j,k;
	char name[81];
	light_sensor *p_sensor ;

	cgiFormInteger("sensor_num", &sensor_num, 0);
	
	if(sensor_num > 100) sensor_num = 100;

	cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
	cgiHeaderContentType("text/html");

	OutHead();
	OutBodyStart();

	if(0 == check_password())
		return 0;

	if(0 == sensor_num)
	{
		fprintf(cgiOut, "<p>数据出错,退出!!</p>\n");
		OutBodyEnd();	
		return 0;
	}
	else
	{
		pwsw_h.sensor_num= sensor_num;

		for(i=0;i<sensor_num;i++)
		{
			p_sensor = &pwsw_h.sensor[i];
			p_sensor->lux = get_lux(i+1);
			p_sensor->voltage = get_voltage(i+1);
		}
	}

	save_to_xml_file();
	fprintf(cgiOut, "<p>保存成功,请返回!</p>\n");
	fprintf(cgiOut, "&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"button\" name=\"rest\" onclick=\"javascript:history.go(-1)\" value=\"重新载入\" />\n");

	OutBodyEnd();

	return 0;
}
Exemplo n.º 5
0
int cgiMain() {
	int sensor_num;
	
	sensor_num = 0;
	cgiFormInteger("sensor_num", &sensor_num, 0);

	pdlc_load_light_sensor_from_xml();

	if(sensor_num > 50) sensor_num = 50;
	
	if(0 == sensor_num)
	{
		sensor_num = pwsw_h.sensor_num;
	}
	else
	{
		pwsw_h.sensor_num = sensor_num;
	}

	cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
	CookieSet();
	cgiHeaderContentType("text/html");

	OutHead();
	OutBodyStart();

	if(0 == check_password())
		return 0;

	//fprintf(cgiOut, "<p>&nbsp; sensor_num=%d -%d</p>\n",pwsw_h.sensor_num,sensor_num);
	
	OutBodyConfigForm(sensor_num);
	OutGroup(sensor_num);


	OutBodyEnd();

	return 0;
}
Exemplo n.º 6
0
int cgiMain() {
	int power_num,group_serial_num[5],group_num,group_idx;
	int i,j,k;
	char name[81];
	ctrl_group *p_group ;

	cgiFormInteger("power_num", &power_num, 0);
	cgiFormInteger("group_num", &group_num, 0);
	memset(name,0,sizeof(name));
	cgiFormStringNoNewlines("serial_num", name, 81);
	get_serial_num(name,&group_serial_num);
	
	if(power_num > 100) power_num = 100;
	if(group_num > 5) group_num = 5;
	if(group_serial_num[0] > 100) group_serial_num[0] = 100;
	if(group_serial_num[1] > 100) group_serial_num[1] = 100;
	if(group_serial_num[2] > 100) group_serial_num[2] = 100;
	if(group_serial_num[3] > 100) group_serial_num[3] = 100;
	if(group_serial_num[4] > 100) group_serial_num[4] = 100;


	cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
	cgiHeaderContentType("text/html");

	OutHead();
	OutBodyStart();

	if(0 == check_password())
		return 0;

	fprintf(cgiOut, "<p>power_num=%d group_num=%d [%d-%d-%d-%d-%d]</p>\n",
		power_num,group_num,group_serial_num[0],group_serial_num[1],
		group_serial_num[2],group_serial_num[3],group_serial_num[4]);

	if(0 == power_num)
	{
		fprintf(cgiOut, "<p>数据出错,退出!!</p>\n");
		OutBodyEnd();	
		return 0;
	}
	else
	{
		pwsw_h.power_num = power_num;
		pwsw_h.group_num = group_num;
		pwsw_h.group[0].ctrl_serial_num = group_serial_num[0];
		pwsw_h.group[1].ctrl_serial_num = group_serial_num[1];
		pwsw_h.group[2].ctrl_serial_num = group_serial_num[2];
		pwsw_h.group[3].ctrl_serial_num = group_serial_num[3];
		pwsw_h.group[4].ctrl_serial_num = group_serial_num[4];

		for(i=0;i<group_num;i++)
		{
			p_group = &pwsw_h.group[i];
			p_group->projector_on = 0;
			p_group->ctrl_serial_num = group_serial_num[i];
			get_start_time(i,&p_group->start_time);
			get_end_time(i,&p_group->end_time);
			for(j=0;j<p_group->ctrl_serial_num;j++)
			{
				p_group->serial_info[j].duration_ms = get_duration_ms(i,j);
				for(k=0;k<power_num;k++)
				{
					p_group->serial_info[j].power_status[k]= get_power_status(i,j,k);
				}
				
			}
		}
	}

	//Out_pwsw_xml();
	save_to_xml_file();
	fprintf(cgiOut, "<p>保存成功,请返回!</p>\n");
	fprintf(cgiOut, "&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"button\" name=\"rest\" onclick=\"javascript:history.go(-1)\" value=\"重新载入\" />\n");

	OutBodyEnd();

	return 0;
}
Exemplo n.º 7
0
void main(int argc, char *argv[]) {
    argc--;
    cout << " uil_my - version\n";
    cout << " Coreleft " << Coreleft() << "\n";
    //   char tmp[50];
    if((argc < 2) || (GetCmd("/h", argc, argv) != NULL)) {
        cout
            << "usage:\n"
            << argv[0] << "  in_lmethod  output_file\n"
            << "      /h - display help\n"
            << "      /dN - set dimension N\n"
            << "      /s - Skip vacuum for better show\n"
            << "      /oT - output in T times more frequently when something happens on the bound\n"
            << "      /eN - Skip calculation of sound N times ( 10 by default )\n"
            <<
#ifndef InternalPointsUrs
            "  current version - no internal points \n";
#else
            "  current version - with internal points \n";
#endif
        exit(1);
    }

    my_file = new fstream(argv[2], ios::out);


    int FstIter = 0;
    double TimeStp, EndTime, CurTime = 0, TimeWrite, PresDerivCoef;
    Region *Reg = GetRegion(
        argv[1], *my_file, FstIter, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
    //	my_file->close();};/*

    double CoefUp = 1, NumSkipS = 10;
    char *tmp;
    if((tmp = GetCmd("/e", argc, argv)) != NULL)
        NumSkipS = atoi(tmp);
    if((tmp = GetCmd("/o", argc, argv)) != NULL)
        CoefUp = min(atof(tmp), 1);
    if((tmp = GetCmd("/s", argc, argv)) != NULL)
        Reg->RegionShow = 1;
    int d = 1;
    if((tmp = GetCmd("/d", argc, argv)) != NULL)
        d = atoi(tmp);
    //cout<<d<<"\n";

    Reg->SetBodySkipS(NumSkipS);

    Reg->SetWorkDim(d);
    Reg->ClcMass();
    int x = 1;

    double CurStp, OldTimeWrite, NewTimeWrite, PresDeriv = 1, OldStp = 1e5;
    int BreakSignal = 0;
    Time_struct Time;
    double CurStpSum = 0;
    int CurStpNum = 1;
    cout << " Before clc Coreleft " << Coreleft() << "\n";
    while((!(CurTime >= EndTime)) && (!BreakSignal)) {
        OldTimeWrite = CurTime;
        NewTimeWrite =
            min(OldTimeWrite + TimeWrite / (1 + PresDeriv * PresDerivCoef), EndTime);
        //cout<<" Before While NewTime "<<NewTimeWrite<<"\n";
        while((!(CurTime >= NewTimeWrite)) && (!BreakSignal)) {
            NewTimeWrite =
                min(OldTimeWrite + TimeWrite / (1 + PresDeriv * PresDerivCoef), EndTime);
            if(x < 100) {
                x++;
                CurStp = 0.5 * log10(x) * TimeStp;
            } else
                CurStp = TimeStp;
            if(CurStp + CurTime > NewTimeWrite)
                CurStp = NewTimeWrite - CurTime;
            if(CurStp < MathZer)
                break;
            if(CurStp > OldStp)
                CurStp = OldStp * (CoefUp * log(CurStp / OldStp) + 1);
            OldStp = CurStp;
            CurStpSum += CurStp;
            CurStpNum++;

            CurTime += CurStp;
            StepRegion(*Reg, CurStp, TimeStp, PresDeriv);
        }
        OutHead(*my_file, *Reg, CurTime, TimeStp, TimeWrite, PresDerivCoef, EndTime);
        cout << " Write !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1\n";
        cout << " CurStp " << CurStpSum / CurStpNum << " CurTime " << CurTime << "\n";
        CurStpNum = 1;
        CurStpSum = 0;
#ifdef WCPP
        if(_kbhit()) {
            BreakSignal = _getch();
            if(BreakSignal == ESC)
                break;
        }
#else
        while((BreakSignal = bioskey(1)) != 0)
            if(BreakSignal == ESC)
                break;
            else {
                cout << " " << BreakSignal;
                bioskey(0);
            }
#endif
    }
    cout << Time << "\n"
         << " Coreleft " << Coreleft() << "\n";
    Reg->DeleteRegion();
    my_file->close();
    cout << " Coreleft " << Coreleft() << "\n";
};
Exemplo n.º 8
0
int cgiMain() {
	int power_num,group_serial_num[5],group_num,group_idx;

	
	power_num = 8;
	group_num = 6;
	cgiFormInteger("power_num", &power_num, 0);
	cgiFormInteger("group_num", &group_num, 0);
	cgiFormInteger("group1_num", &group_serial_num[0], 0);
	cgiFormInteger("group2_num", &group_serial_num[1], 0);
	cgiFormInteger("group3_num", &group_serial_num[2], 0);
	cgiFormInteger("group4_num", &group_serial_num[3], 0);
	cgiFormInteger("group5_num", &group_serial_num[4], 0);

	pdlc_load_pwctrl_from_xml();

	if(power_num > 100) power_num = 100;
	if(group_num > 5) group_num = 5;
	if(group_serial_num[0] > 100) group_serial_num[0] = 100;
	if(group_serial_num[1] > 100) group_serial_num[1] = 100;
	if(group_serial_num[2] > 100) group_serial_num[2] = 100;
	if(group_serial_num[3] > 100) group_serial_num[3] = 100;
	if(group_serial_num[4] > 100) group_serial_num[4] = 100;
	
	if(0 == power_num)
	{
		power_num = pwsw_h.power_num;
		group_num = pwsw_h.group_num;
		group_serial_num[0] = pwsw_h.group[0].ctrl_serial_num;
		group_serial_num[1] = pwsw_h.group[1].ctrl_serial_num;
		group_serial_num[2] = pwsw_h.group[2].ctrl_serial_num;
		group_serial_num[3] = pwsw_h.group[3].ctrl_serial_num;
		group_serial_num[4] = pwsw_h.group[4].ctrl_serial_num;
	}
	else
	{
#if 1	
		pwsw_h.power_num = power_num;
		pwsw_h.group_num = group_num;
		pwsw_h.group[0].ctrl_serial_num = group_serial_num[0];
		pwsw_h.group[1].ctrl_serial_num = group_serial_num[1];
		pwsw_h.group[2].ctrl_serial_num = group_serial_num[2];
		pwsw_h.group[3].ctrl_serial_num = group_serial_num[3];
		pwsw_h.group[4].ctrl_serial_num = group_serial_num[4];
#endif
	}

	cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
	CookieSet();
	cgiHeaderContentType("text/html");

	OutHead();
	OutBodyStart();

	if(0 == check_password())
		return 0;
	
	OutBodyConfigForm(power_num,group_num,group_serial_num[0],group_serial_num[1],
		group_serial_num[2],group_serial_num[3],group_serial_num[4]);

//	fprintf(cgiOut, "<p>power_num=%d group_num=%d [%d-%d-%d-%d-%d]</p>\n",
//		power_num,group_num,group_serial_num[0],group_serial_num[1],
//		group_serial_num[2],group_serial_num[3],group_serial_num[4]);

	for(group_idx=0;group_idx<pwsw_h.group_num;group_idx++)
	{
		OutGroup(pwsw_h.power_num,pwsw_h.group[group_idx].ctrl_serial_num,group_idx);
	}

	OutBodyEnd();

	return 0;
}
Exemplo n.º 9
0
void main( int argc, char *argv[] )
  {
argc--;
cout<<" Coreleft "<<Coreleft()<<"\n";
//   char tmp[50];
   if ((argc<2) || (GetCmd("/h",argc,argv)!=NULL))
     { cout<<"usage:\n"<<argv[0]<<"  in_lmethod  output_file\n"<<
           "      /h - display help\n"; exit(1);  }
   my_file=new fstream(argv[2],ios::out);


   int FstIter=0;
   double TimeStp,EndTime,CurTime=0,TimeWrite,PresDerivCoef;
   RegionIO *Reg=GetRegion(argv[1],*my_file,FstIter,
			               CurTime,TimeStp,TimeWrite,PresDerivCoef,EndTime); 

   if (argc>2) CoefUp=max(1,atoi(argv[3]));else CoefUp=1;
   ClcMass(*Reg);
   int x=1;

   double CurStp,OldTimeWrite,NewTimeWrite,PresDeriv=1,OldStp=1e5;
   int BreakSignal=0;
//#ifdef WCPP
   double elapsed_time;
   clock_t start, finish;start=clock();
//#endif

   while ((!(CurTime>=EndTime)) && (!BreakSignal))
     {
  	  OldTimeWrite=CurTime;
	  NewTimeWrite=min(OldTimeWrite+TimeWrite/(1+PresDeriv*PresDerivCoef),EndTime);
//cout<<" Before While NewTime "<<NewTimeWrite<<"\n";
        while ((!(CurTime>=NewTimeWrite)) && (!BreakSignal))
        {
 	     NewTimeWrite=min(OldTimeWrite+
		              TimeWrite/(1+PresDeriv*PresDerivCoef),EndTime);
		 if (x<100) {x++;CurStp=0.5*log10(x)*TimeStp;}
		 else CurStp=TimeStp;
		 if (CurStp+CurTime>NewTimeWrite) CurStp=NewTimeWrite-CurTime;
		 if (CurStp<MathZer) break;
         if (CurStp>OldStp) CurStp=OldStp*(CoefUp*log(CurStp/OldStp)+1);
         OldStp=CurStp;
//cout<<" CurStp "<<CurStp<<" CurTime "<<CurTime<<"\n";
//ChRead();
         if ((x==2) && (FstIter)) CalcPos(*Reg,-0.5*CurStp,TimeStp); // Exracted? 
//cout<<" StepRegion \n";
         CurTime+=CurStp;StepRegion(*Reg,CurStp,TimeStp,PresDeriv);
//         if (i++==10) {i=0;Reconstruct(*Reg);}
//      Reg.SaveIni(output);

		}
	OutHead(*my_file,*Reg,CurTime,TimeStp,TimeWrite,PresDerivCoef,EndTime);
cout<<" Write !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1\n";
cout<<" CurStp "<<CurStp<<" CurTime "<<CurTime<<"\n";cout.flush();
#ifdef WCPP
		 if (_kbhit()) { BreakSignal=_getch();if (BreakSignal==ESC) break;}
#else
         while ((BreakSignal=bioskey(1))!=0) if (BreakSignal==ESC) break;else {cout<<" "<<BreakSignal;bioskey(0);}
#endif
     }
//#ifdef WCPP
  finish=clock();elapsed_time=(finish-start);//CLK_TCK;
cout<<" RunTime "<<elapsed_time<<"\n";
//#endif
//cout<<" Reg.InterfaceIODelete();  \n";
cout<<" Coreleft "<<Coreleft()<<"\n";
    Reg->InterfaceIODelete();
	my_file->close();
cout<<" Coreleft "<<Coreleft()<<"\n";
  };