?? reference.cpp
字號:
// Reference.cpp : implementation file
//
#include "stdafx.h"
#include "Watertank.h"
#include "Reference.h"
#include "FakeMserial.h"
#include "Mserial.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CFakeMserial fakemserial;
CMserial mserial;
/////////////////////////////////////////////////////////////////////////////
// CReference
IMPLEMENT_DYNCREATE(CReference, CCmdTarget)
CReference::CReference()
{
Time=0;
outdata=0;
x[0]=0;
y[0]=0;
x[1]=20;
x[2]=40;
x[3]=90;
x[4]=140;
x[5]=190;
x[6]=230;
x[7]=270;
x[8]=310;
x[9]=340;
x[10]=390;
x[11]=450;
x[12]=500;
x[13]=640;
x[14]=720;
x[15]=800;
x[16]=880;
x[17]=940;
x[18]=1060;
x[19]=1180;
x[20]=1300;
x[21]=1460;
x[22]=1580;
x[23]=1700;
x[24]=1820;
x[25]=1940;
x[26]=2060;
x[27]=2180;
y[1]=y[9]=20;
y[2]=y[8]=80;
y[3]=y[7]=180;
y[4]=y[6]=280;
y[5]=380;
y[10]=380;
y[11]=380;
y[12]=20;
y[13]=100;
y[14]=200;
y[15]=300;
y[16]=0;
y[17]=350;
y[18]=380;
y[19]=360;
y[20]=230;
y[21]=130;
y[22]=10;
y[23]=10;
y[24]=30;
y[25]=150;
y[26]=310;
y[27]=350;
}
CReference::~CReference()
{
}
BEGIN_MESSAGE_MAP(CReference, CCmdTarget)
//{{AFX_MSG_MAP(CReference)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReference message handlers
double CReference::produce()
{
if(Time<x[1])
outdata=y[1]; //梯形輸出
else if(Time<x[2])
outdata=y[2];
else if(Time<x[3])
outdata=y[3]+mserial.Produce_Mserial()*20;
else if(Time<x[4])
outdata=y[4]+mserial.Produce_Mserial()*30;
else if(Time<x[5])
outdata=y[5];
else if(Time<x[6])
outdata=y[6]+fakemserial.Produce_FakeMserial(8)*60;
else if(Time<x[7])
outdata=y[7]+fakemserial.Produce_FakeMserial(7)*180;
else if(Time<x[8])
outdata=y[8]+mserial.Produce_Mserial()*40;
else if(Time<x[9])
outdata=y[9];//梯形輸出
else if(Time<x[10])//鋸齒輸出
outdata=10+((y[10]-10)/(x[10]-x[9]))*(Time-x[9])+mserial.Produce_Mserial()*40;
else if(Time<x[11])
outdata=y[10]+mserial.Produce_Mserial()*20;
else if(Time<x[12])
outdata=y[10]-(37.0/(x[11]-x[10]))*(Time-x[10])+mserial.Produce_Mserial()*50;//鋸齒輸出
else if(Time<x[13])//平衡位置震蕩
outdata=y[12]+mserial.Produce_Mserial()*5;
else if(Time<x[14])
outdata=y[13]+mserial.Produce_Mserial()*50;
else if(Time<x[15])
outdata=y[14]+mserial.Produce_Mserial()*60;
else if(Time<x[16])
outdata=y[15]+mserial.Produce_Mserial()*70;
else if(Time<x[17])
outdata=y[17]+mserial.Produce_Mserial()*70;//平衡位置震蕩
else if(Time<x[18])//M序列震蕩
outdata=y[18]*fakemserial.Produce_FakeMserial(10);
else if(Time<x[19])//平衡震蕩
outdata=y[19]+mserial.Produce_Mserial()*20;
else if(Time<x[20])
outdata=y[20]+mserial.Produce_Mserial()*50;
else if(Time<x[21])
outdata=y[21]+mserial.Produce_Mserial()*50;
else if(Time<x[22])
outdata=y[22]+mserial.Produce_Mserial()*60;
else if(Time<x[23])
outdata=y[23]+mserial.Produce_Mserial()*10;
else if(Time<x[24])
outdata=y[24]+fakemserial.Produce_FakeMserial(10)*30;
else if(Time<x[25])
outdata=y[25]+mserial.Produce_Mserial()*60;
else if(Time<x[26])
outdata=y[26]+mserial.Produce_Mserial()*80;
else if(Time<x[27])
outdata=y[27]+fakemserial.Produce_FakeMserial(10);
else if(Time<2300)
outdata=fakemserial.Produce_FakeMserial(15)*380;
else outdata=0;
Time++;
return outdata;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -