📄 armature.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 + -