?? signal.cpp
字號:
// Signal.cpp : implementation file
//
#include "stdafx.h"
#include "Watertank.h"
#include "Signal.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSignal
IMPLEMENT_DYNCREATE(CSignal, CCmdTarget)
CSignal::CSignal()
{
}
CSignal::~CSignal()
{
}
BEGIN_MESSAGE_MAP(CSignal, CCmdTarget)
//{{AFX_MSG_MAP(CSignal)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSignal message handlers
void CSignal::Initial()
{
TimeArray[0]=2.0;//確定各個波形的持續時間
TimeArray[1]=100.0;
TimeArray[2]=400.0;
TimeArray[3]=400.0;
TimeArray[4]=80;//歸零時間
RangeArray[0]=30;
RangeArray[1]=200;
RangeArray[2]=350;
RangeArray[3]=360;
RangeArray[4]=100;
Time=0;
}
double CSignal::Produce()
{
double OutData=0;
if(Time>=0&&Time<TimeArray[0])
OutData=Time*(RangeArray[0]/TimeArray[0]);
else if(Time<(TimeArray[0]+TimeArray[1]))
OutData=RangeArray[0]+Mserial.Produce_Mserial()*RangeArray[4];
else if(Time<(2*TimeArray[0]+TimeArray[1]))
OutData=RangeArray[0]+((RangeArray[1]-RangeArray[0])/TimeArray[0])*(Time-TimeArray[0]-TimeArray[1]);
else if(Time<(2*TimeArray[0]+2*TimeArray[1]))
OutData=RangeArray[1]+Mserial.Produce_Mserial()*RangeArray[4];
else if(Time<(3*TimeArray[0]+2*TimeArray[1]))
OutData=RangeArray[1]+((RangeArray[2]-RangeArray[1])/TimeArray[0])*(Time-2*TimeArray[0]-2*TimeArray[1]);
else if(Time<(3*TimeArray[0]+3*TimeArray[1]))
OutData=RangeArray[2]+Mserial.Produce_Mserial()*RangeArray[4];
else if(Time<(4*TimeArray[0]+3*TimeArray[1]))
OutData=RangeArray[2]-((RangeArray[2]-RangeArray[1])/TimeArray[0])*(Time-(3*TimeArray[0]+3*TimeArray[1]));
else if(Time<(4*TimeArray[0]+4*TimeArray[1]))
OutData=RangeArray[1]+Mserial.Produce_Mserial()*RangeArray[4];
else if(Time<(5*TimeArray[0]+4*TimeArray[1]))
OutData=RangeArray[1]-((RangeArray[1]-RangeArray[0])/TimeArray[0])*(Time-(4*TimeArray[0]+4*TimeArray[1]));
else if(Time<(5*TimeArray[0]+5*TimeArray[1]))
OutData=RangeArray[0]+Mserial.Produce_Mserial()*RangeArray[4];
else if(Time<(6*TimeArray[0]+5*TimeArray[1]))
OutData=RangeArray[0]-(RangeArray[0]/TimeArray[0])*(Time-(5*TimeArray[0]+5*TimeArray[1]));
else if(Time<(6*TimeArray[0]+5*TimeArray[1]+TimeArray[4]))
OutData=FakeMserial.Produce_FakeMserial(2)*(RangeArray[4]-0.2);
else if(Time<(6*TimeArray[0]+5*TimeArray[1]+TimeArray[2]+TimeArray[4]))
OutData=FakeMserial.Produce_FakeMserial(15)*RangeArray[3];
else if(Time<(6*TimeArray[0]+5*TimeArray[1]+TimeArray[2]+2*TimeArray[4]))
OutData=FakeMserial.Produce_FakeMserial(2)*(RangeArray[4]-0.2);
else if(Time<(6*TimeArray[0]+5*TimeArray[1]+TimeArray[2]+TimeArray[3]+2*TimeArray[4]))
OutData=FakeMserial.Produce_FakeMserial(15)*RangeArray[3];
else if(Time<(6*TimeArray[0]+5*TimeArray[1]+TimeArray[2]+TimeArray[3]+2*TimeArray[4])+80)
OutData=FakeMserial.Produce_FakeMserial(2)*(RangeArray[4]-0.2);
else if(Time<1800)
OutData=FakeMserial.Produce_FakeMserial(15)*RangeArray[3];
else
OutData=0;
Time++;
return OutData;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -