📄 unit1.h
字号:
//和DisableMenuItems(void);用到
void __fastcall IdleHandler(TObject *Sender, bool &Done);
int mIndex;
String sCurBC,sCurEn,sBaseEn;
float fBoChangValue;//作为BoChangJianSuo()的函数
float fBCJSvalue;
bool bOnIdle;//闲循环标志
bool bMouseLeft;
bool bFresh;//刷新标志 =true显示背景 =false显示曲线
//------在执行读取数据功能时要用到--------
int wavemove;
int Rsd;//速度
int Rpk;
int Rn,Rn1,Rn2,Rwi;
//float Ra;
int Rx,Ry;
TRect RDRect,RSRect;
float Rt;
bool bReadData;
bool bError;
bool bClose;
//-----------------------------------------
TColor clQX,clCross,clBK;
TColor clMulti[10];
void file_load_a();//读取光谱数据
int in(int m);//检测是否到零位?
int gotown();
void getdattim(int m);
void file_save_a();/*光谱文件存盘*/
void file_load_option();//光谱参数读盘
void file_save_option();/*光谱参数存盘*/
void DrawCross(int X,int Y);
void PrintDoc();
void ExchangData();
void SetData();
void SetBoChangCheck(void);
bool ReadData_Init(void);
void GetData(int wi);
void Init(void);//初始化
void StartSysInit(void);
void ReadDelay(void);
void ShowGrid(int height,int width,bool bbgrid);
void ShowScale(int turn,float bigscale,float Start);
void SetResetorNot(bool b);
public: // User declarations
void Peak_write(TImage *Image,int Posx,int Posy,char *pchar);
void DrawQX(void);//画曲线
void DrawQX1(TCanvas *Canvas,
int Wx00, int Wx11, int Wy00, int Wy11,
int Wx0, int Wx1, int Wy0, int Wy1);
void DrawBK1(TCanvas *Canvas, int width, int height,
int &PWx00, int &PWx11, int &PWy00, int &PWy11,
int &PWx0, int &PWx1, int &PWy0, int &PWy1);
bool GetData1(int &wi,
int wx0, int wx1, int wy0, int wy1,
int &X, int &Y, float &wx, float &val);
UCHAR mBuf[32];
void DrawBK(void);
void parameter_set_ch();
int set_tmode(); // 设置透过率方式
int set_emode(); // 设能量方式
void CreatThread1(void);
void DeleteThread1(void);
void CreatThreadUSB(void);
void DeleteThreadUSB(void);
void file_save_ascii();
//定点改动
void mczf(int m, int step);//控制扫描电机
void mszf(int m, int step);//控制狭缝电机
void mfzf(int m, int step);//控制滤光电机
void mlzf(int m, int step);//控制光源电机
//-----------------------------------------
void EnableMenuItems(void);//使主菜单和按纽有效
void DisableMenuItems(void);//使主菜单和按纽无效
bool bStop;//各个费时操作的停止标志
char file_name1[256];
AnsiString MyDir;
char wfz25bj[12];
char wfz25bj1[12];
char wfz25bj2[12];
char wfz25bj3[12];
char wfz25bj4[12];
char wfz25bj5[12];//光谱数据文件标志
char wfz25bj6[12];
//short int csd5[4];//1-重复扫描次数 2-连续扫描次数 3-时间扫描时间
int wn; // 当前波长
int fs; // 换滤光片时的波长
int dds; // 氘灯位置电机步数
int wds; // 钨灯位置电机步数
int mci,msi,mfi,mli; // 电机相序
int mcs,mss,mfs,mls; // 电机步数
int wac,was,waf,wal; // 电机延时
float wns0,wne0; // 仪器工作波长
float pp1,pp2; // 零和百系数
short int con,con1,con2; // 采样次数
short int pa1,pb1,pc1,pd1; // 8255-1各口状态变量
short int pa2,pb2,pc2,pd2; // 8255-2各口状态变量
short int pad1[4]; // 8255-1各口地址
short int pad2[4]; // 8255-2各口地址
char mc[8],ms[8],mf[8],ml[8]; //
char mc0,ms0,mf0,ml0;
short int out_c,our_s,out_f,out_l; // 电机输出状态
short int add_c,add_s,add_f,add_l; // 电机输出地址
unsigned int add_csfl; // 定义检零输入口地址
unsigned int in_csfl; // 定义检零输入口状态
unsigned int in_c,in_s,in_f,in_l; // 检零输入状态
unsigned int in_c0,in_s0,in_f0,in_l0; // 在in()函数里用到
short int ap[9]; // 增益
short int vl[9]; // 负高压
char gs[100]; // 公用的字符串
float wns,wne; // 当前系统用横坐标
float tnl,tnh; // 当前系统用纵坐标
int wnd0; // 每 1 nm 的电机步数
char samp[51],oper[51]; // 样品名称和操作者
short int gpdata,gpdisp;
int wx0,wx1,wy0,wy1; // 画图坐标
//int CountX;//画点数
//由于吸收峰窗口里要用到这些变量和函数,所以把它们定义为public型
struct para
{
char wfz[10]; // wfz-25uv标志
short int m1; // 测量模式 csd[1]
short int m2; // 数据类型
short int m3; // 扫描方式 csd[4]
short int m4; // 次数时间 csd[5]
float wns; // 起始波长 wns
float wne; // 终止波长 wne
float tnh; // 上刻度 tnh
float tnl; // 下刻度 tnl
short int lamp; // 工作光源 csd[2]
short int speed; // 扫描速率 csd[3]
short int interval; // 扫描间隔 csd[0]
short int source; // 换灯波长 csd[8]
short int slit; // 狭缝宽度 csd[9]
short int vol; // 负高压 csd[10]
char samp[51]; // 样品名称
char oper[51]; // 操作事项
short int dattim[8]; // 扫描日期时间
}ptb,ptc,ptd;
float tc[28500],tb[28500],td[28500]; //曲线数据和基线数据
float ts[28500],tr[28500],tts,ttr,ttd; //样品光与参比光
short int csd[20];// 仪器当前状态参数
short int itl[5];// 采集间隔
// 很快: 1 nm 40步
// 快: 0.5 nm 20步
// 中: 0.1 nm 4 步
// 慢: 0.025 nm 1 步
int pkn1,pkw1[8100];//峰值序号 (峰值检索里用到)
int pkn2,pkw2[8100];//谷值序号
float toa(float t);
void BoChangJianSuo();
void __fastcall SysInit(void); //复位
bool ScanFengZhi(); //峰值检索
void TForm1::DispFengZhi(void); //在光谱曲线上显示吸收峰
void __fastcall baseline_scan();//基线扫描
void __fastcall scan(); //光谱扫描
void Scan_T(void); //时间扫描
void fixed_measure(void); //定点测量
void pp_measure();
float tas(int mod);
float tbb();
void ReadPP();
void WritePP();
void ReFreshWn();
void dely(int t);
int delaypara;
//-----------------------------------------
__fastcall TForm1(TComponent* Owner);
virtual __fastcall ~TForm1();
//-----------------------------------------
void IncProgressBar();
char filename[20];
bool bSaveFile;
int baseaddr;
// 华南理工要求改动
float ddsmax,wdsmax;
int iArrayScale[4];
int iScaleIndex;
//在图谱上显示峰值和波长
bool bWLonImage;
bool bPVonImage;
bool bScale;
bool bGrid;
int grid[4];
int Xgridindex;
int Ygridindex;
bool bReset;
//USB接口通讯
int NHighVoltage(UINT Grade);
int speedh;
int speedl;
void filter_set();
void ChangLamp_set(int STEP);
void BoChangCheck();
};
//---------------------------------------------------------------------------
//VOID CALLBACK mInterruptEvent(PUCHAR);
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -