⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 armature.h

📁 winsail v2.0是用于DOS下的图形界面空间系统
💻 H
字号:
#ifndef  _ARMATURE_H_
#define  _ARMATURE_H_
//------------------------------------------------------------------------
#include <Register.h>
#include <Graph.h>

#ifndef  MAX_ARMATURE_SUPPORT_COUNT
#define  MAX_ARMATURE_SUPPORT_COUNT     54
#endif

#define  ARMATURE_STYLE_CONSTANT        0x0001 //Constant
#define  ARMATURE_STYLE_SINGLE_FLYING   0x0002 //Single Flying
#define  ARMATURE_STYLE_DOUBLE_FLYING   0x0004 //Double Flying

#define  ARMATURE_ADD_PEAK              0x0008//Peak Or Gain

#define  ARMATURE_CLOCK                 0x0010//Clock Or Anti-Clock

#define OVER_DAMP         0
#define CRITICAL_DAMP     1
#define LACK_DAMP         2
#define NONE_DAMP         3

#define ARMATURE_METHOD_COIL   0
#define ARMATURE_METHOD_BARBAR 1
#define ARMATURE_METHOD_OTHER  2
//------------------------------------------------------------------------
class  CArmatureLearning:public CGraphWave
{
private:
/*	int    m_nLeft;
	int    m_nTop;
	int    m_nRight;
	int    m_nBottom;

	int    m_nGraphForeColor;
	int    m_nGraphBackColor;
	int    m_nGraphLineColor;
	int    m_nTextColor;
*/
private:
	BOOL   m_bAutoScale;
	//float  m_fMinResistance;
	//float  m_fMaxResistance;
public:
	void   SetAutoScale(BOOL bValue){m_bAutoScale=bValue;}
	BOOL   GetAutoScale(){return(m_bAutoScale);}
	//void   SetResistance(float fMin,float fMax){m_fMinResistance=fMin,m_fMaxResistance=fMax;}
private:
	int    m_nStyle;
	int    m_nBar;
	float  m_sfWave[MAX_ARMATURE_SUPPORT_COUNT];
	float  m_sfLowLimits[MAX_ARMATURE_SUPPORT_COUNT];
	float  m_sfHighLimits[MAX_ARMATURE_SUPPORT_COUNT];
public:
	void   InitLimit();
public:
	void   SetGraphForeColor(int nColor){m_nGraphForeColor=nColor;}
	void   SetGraphBackColor(int nColor){m_nGraphBackColor=nColor;}
	void   SetGraphLineColor(int nColor){m_nGraphLineColor=nColor;}

	void   SetTextColor(int nColor){m_nTextColor=nColor;}

	int    GetGraphForeColor(){return(m_nGraphForeColor);}
	int    GetGraphBackColor(){return(m_nGraphBackColor);}
	int    GetGraphLineColor(){return(m_nGraphLineColor);}
	int    GetTextColor(){return(m_nTextColor);}

	//int    GetLeft(){return(m_nLeft);};
	//int    GetTop(){return(m_nTop);};
	//int    GetRight(){return(m_nRight);};
	//int    GetBottom(){return(m_nBottom);}
	//int    GetWidth(){return(m_nRight-m_nLeft+1);}
	//int    GetHeight(){return(m_nBottom-m_nTop+1);}
	//void   SetLocation(int nleft,int nTop,int nRight,int nBottom);
public:
	void   SetStyle(int nStyle){m_nStyle=nStyle;}
	int    GetStyle(){return(m_nStyle);}
	void   SetBarCount(int nBar){m_nBar=nBar;}
	int    GetBarCount(){return(m_nBar);}
	void   SetWave(float *pfWave,int nCount);
	void   SetWave(int nIndex,float fBar);
	float* GetWave(){return(m_sfWave);}

	void   SetLowLimits(int nIndex,float fValue);
	void   SetLowLimits(float *pfValue,int nCount);
	void   SetHighLimits(int nIndex,float fValue);
	void   SetHighLimits(float *pfValue,int nCount);
public:
	//float  GetLineCoordinateXY(float fX1,float fY1,float fX2,float fY2,float fValue);
	//void   GetMin2Coordinate(float *pfDataX,float *pfDataY,int nCount,float *pfK,float *pfB,float *pfR2);
public:
	void   DrawWave(BOOL bXorMode = TRUE) ;
	void   ShowFrame();
public:
	CArmatureLearning();
public:
	static void   LoopArmatureData(int nIndex,float *pfData,int nCount);
	static void   AntiArmatureData(float *pfData,int nCount);
	static int    SortArmatureData(int nStyle,float *pfData,int nCount);

};


class CCalculate
{
private:
	int    m_nPin;
	DWORD  m_dwStyle;
	int    m_nBaseIndex;
	float  m_fI;
	float  m_fTemp;
	float  m_fsData[MAX_ARMATURE_SUPPORT_COUNT+3][MAX_ARMATURE_SUPPORT_COUNT];
private:
	int    m_nMinBar;
	int    m_nMaxBar;
	int    m_nBar;

private:
	void   (*m_pDrawFc)(WORD *pwData,int nCount,int nMode,int nColor, BOOL bCover);
	void   (*m_pSampleFc)(int nBase,int nChannel,WORD* pwData,int nCount,BOOL bHigh);
	void   (*m_pCircleFc)(int nBar,BOOL bOpen);
	float  (*m_pSampleConstCurrentFc)();

	int    m_nOpenRelayTime;
	int    m_nCloseRelayTime;
	int    m_nChannelRelayTime;
	BOOL   m_bDebug;
private:  //2005-10-17
	int    m_nMethod;
public:
	void   SetMethod(int nMethod){m_nMethod = nMethod;}
	int    GetMethod(){return(m_nMethod);}
	void   SetBar(int nBar);
	int    GetBar(){return(m_nBar);}
	void   SetStyle(DWORD dwStyle){m_dwStyle = dwStyle;}
	DWORD  GetStyle(){return(m_dwStyle);}
	int    GetMinBar(){return(m_nMinBar);}
	int    GetMaxBar(){return(m_nMaxBar);}
	void   SetPin(int nPin);
	int    GetPin(){return(m_nPin);}
	int    GetBase(){return(m_nBaseIndex);}
	void   GetRange(int* pnMin,int *pnMax){*pnMin = m_nMinBar;*pnMax = m_nMaxBar;}
	void   SetI(float fI) {m_fI = fI;}
	float  GetI(){return(m_fI);}
	float  GetTemp(){return(m_fTemp);}
	BOOL   SetData(int nRow,int nCol,float fData);
	void   SetSample3Data(int nRow,int nChannel,float fData);
	void   ClearWave(BOOL bClear);
	void   Display();

public:
	float Modify_Average(WORD *pwData,int nCount);
	float Modify_Internal(WORD *pwData,int nCount,float fX1,float fY1,float fX2,float fY2);

	float GetLineCoordinateXY(float fX1,float fY1,float fX2,float fY2,float fValue);

	void  SetDrawFc(void (*pFc)(WORD *pwData,int nCount,int nMode,int nColor, BOOL bCover)){m_pDrawFc = pFc;}
	void  SetSampleFc(void (*pFc)(int nBase,int nChannel,WORD* pwData,int nCount,BOOL bHigh)){m_pSampleFc = pFc;}
	void  SetCircleFc(void (*pFc)(int nBar,BOOL bOpen)){m_pCircleFc = pFc;}
	void  SetConstCurrentFc(float (*pFc)()){m_pSampleConstCurrentFc = pFc;}

	void  SetOpenRelayTime(int nTime){m_nOpenRelayTime=nTime;}
	void  SetCloseRelayTime(int nTime){m_nCloseRelayTime=nTime;}
	void  SetChannelRelayTime(int nTime){m_nChannelRelayTime=nTime;}
	void  SetDebug(BOOL bDebug){m_bDebug = bDebug;}

	void  CalcForAfter(float * pfTargetBase, float* pfTargetWeld, BOOL bTemp);

	//Coil Method
	BOOL  SampleData_Coil1(CRegister* pTestRegister,WORD* pwSourceData,WORD* pwTargetData,
		WORD* pwFilterData, int nCount,float *pfAdjust,int nBase,int nChannel,BOOL bHigh);
	BOOL  SampleData_Coil2(CRegister* pTestRegister,WORD* pwSourceData,WORD* pwTargetData,
		WORD* pwFilterData, int nCount,float *pfAdjust,int nBase,int nChannel,BOOL bHigh);
	BOOL   Calc1(float *pfTargetBase,float*pfTargetWeld,BOOL bTemp=FALSE,float fTemp = 20.0f);

	//BBar Method
	BOOL  SampleData_Bar1(CRegister* pTestRegister,WORD* pwSourceData,WORD* pwTargetData,
		WORD* pwFilterData, int nCount, float *pfAdjust,
		int nBase,int nChannel,BOOL bHigh);
	//BBar Method- SELECTCHANNEL_BOARD
	BOOL  SampleData_Bar2(CRegister* pTestRegister,WORD* pwSourceData,WORD* pwTargetData,
		WORD* pwFilterData, int nCount, float *pfAdjust,
		int nBase,int nChannel,BOOL bHigh);
	BOOL   Calc2(float *pfTargetBase,float*pfTargetWeld,BOOL bTemp=FALSE,float fTemp = 20.0f);

	//Old Firstsail
	BOOL  SampleData_Coil2(CRegister* pTestRegister,WORD* pwSourceData,WORD* pwTargetData,int nCount,float *pfAdjust,int nBase,int nChannel,BOOL bHigh);
	BOOL   Calc3(float *pfTargetBase,float*pfTargetWeld,BOOL bTemp=FALSE,float fTemp=20.0f);


	int    SortArmatureData(int nStyle,float *pfData,int nCount);
	void   AntiArmatureData(float *pfData,int nCount);
	float  GetVoltageEmulation(float* pfDataBuffer,int nBar,float fI,int nPole,int nIndex);
	void   LoopSample3Data(float *pfDataBuffer,int nBar,BOOL bClock);
protected:
	void   LoopArmatureData(int nIndex ,float *pfData,int nCount);

public:
	CCalculate();
};

class CSurgeStandand:public CDialog
{
public:
	BOOL  m_bStandand;
	BOOL  m_bWave;
	//BOOL  m_bStart;
	//BOOL  m_bTest;
	BOOL   m_bSaveResistance;
public:
	void OnTime();
	void OnDraw();
	void   SetSaveResistance(BOOL bSave){m_bSaveResistance = bSave;}
	BOOL   GetSaveResistance(){return(m_bSaveResistance);}
public:
	void DrawAverageNumber();
	int  GetAlreadyTestCount();
	BOOL IsEmpty();
	void DrawStandand();
public:
	void  far KeyF2();
    void  far KeyF3();
public:
	void DrawSurgeWave(int nIndex , WORD *pwData,BOOL bFinish);
public:
	CSurgeStandand();//{m_bStandand=m_bWave=m_bStart=m_bTest=FALSE;};
};


void far NewSurgeStandand();
BYTE CalcChannelByte(int nChannel);

//------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -