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

📄 public.h

📁 EVC 下 USB 通信测试程序
💻 H
字号:
#ifndef PUBLIC_H
#define PUBLIC_H

#include "stdafx.h"

// Public.h : header file


#define KEY_FUN1		67  //C第二版对应按键
#define KEY_UP			71	//G
#define KEY_DOWN		66	//B
#define KEY_LEFT		84	//T
#define KEY_RIGHT		70	//F
#define KEY_FUN			72	//H	
#define KEY_OK			65	//A
#define KEY_BACK		85	//U
#define KEY_1			81	//Q
#define KEY_2			80	//P
#define KEY_3			69	//E
#define KEY_4			68	//D
#define KEY_5			77	//M
#define KEY_6			76	//L
#define KEY_7			79	//O
#define KEY_8			78	//N
#define KEY_9			74	//J
#define KEY_0			82	//R
#define KEY_M			75	//K
#define KEY_J			83	//S
#define KEY_SPI			0x5a//90
#define KEY_FAST		73  //I
#define KEY_CLOSE		0x58

#define CLOSE_DEVICE_TIME 1000
#define SAVEPOSITION  _T("\\NandFlash\\APPFILES\\")	

//#define  EMULATOR_TEST
#ifdef	 EMULATOR_TEST 
const CString  DIR_PATH			=_T("\\Storage Card");
#else 
const CString  DIR_PATH			=_T("\\NandFlash");
#endif

const CString MEASURE_DATA_PATH =_T("\\My Documents\\MeasureData.dat"); //点检临时数据文件
const CString MEASURE_TASK_PATH =_T("\\My Documents\\MeasureTask.dat");
const CString SINDATAPATH		=DIR_PATH + _T("\\APPLICATION\\sinData.dat");
const CString BITREVPATH		=DIR_PATH + _T("\\APPLICATION\\bitRev.dat");
//const LPCTSTR SINDATAPATH		=_T("\\My Documents\\sinData.dat");
//const LPCTSTR BITREVPATH		=_T("\\My Documents\\bitRev.dat");

const CString SYSTEMPATH		=DIR_PATH + _T("\\APPLICATION\\AnGang.ini");

const CString SYSINFPATH		=DIR_PATH + _T("\\APPLICATION\\System.ini");
const CString SYSTIMEPATH		=DIR_PATH + _T("\\下载任务\\SYSTEM.TXT");
const CString CURRENTPATH		=DIR_PATH + _T("\\APPFILES\\");
const CString TEMPPATH			=DIR_PATH + _T("\\TEMPFILES\\Temp.dat");
const CString TEMPDATAPATH		=DIR_PATH + _T("\\TEMPFILES\\TempData.dat");

const CString TEMPERATUREPATH	=DIR_PATH + _T("\\APPLICATION\\Temperature.ini");
const CString RFIDPATH			=DIR_PATH + _T("\\APPLICATION\\RFID.ini");
const CString NEW_TMPPATH		=DIR_PATH + _T("\\APPLICATION\\NewTmp.ini");
const CString TMPCHECKPATH		=DIR_PATH + _T("\\APPLICATION\\Measure.ini");
const CString UPLOADPATH		=DIR_PATH + _T("\\上传文件\\");
const CString PLANFILEPATH		=DIR_PATH + _T("\\点检计划\\plan.dat");
const CString TODAYTASKPATH		=DIR_PATH + _T("\\点检计划\\TodayTask.dat");
const CString USERPATH			=DIR_PATH + _T("\\点检计划\\UserIndex.dat");
const CString PLANTASKPATH		=DIR_PATH + _T("\\点检计划\\PlanTask.dat");
const CString PoiseLogPATH		=DIR_PATH + _T("\\TEMPFILES\\Poise.dat");

const int	 BITNUM = 16;					//for FFT 位数
const int	 TASK_LENGTH = 843;				//sizeof(todayTask)+2
const int	 MEA_POINT_LENGTH = 146;		//测点名称位置
const int	 SAVE_LENGTH = 837;				//当日点检次数保存的位置。
const int	 DEVICELOG_LENGTH = 242 ;		//sizeof(deviceLogStruct)
//const int	 DEVICEDATA_LENGTH = 442;		//sizeof(deviceDataStruct)

const int    SCREEN_WIDTH = 320;
const int	 SCREEN_HEIHT = 240;
const int    BATTERYLEVEL5 = 3980;			//电池电压与所对应的状态
const int    BATTERYLEVEL4 = 3880;
const int    BATTERYLEVEL3 = 3800;
const int    BATTERYLEVEL2 = 3750;
const int    BATTERYLEVEL1 = 3500;
const int    BATTERYLEVEL0 = 3500;
const int    CURRENTLIMIT  = 160;			//充电已完成的电流下限。
const int    SCREENDISPLEAYNUMBER = 9;		//浏览数据一屏显示的任务数,A ,C 类任务。
const int    TMPGRAPHNUMBER = 256;			//测温绘图的点数
const float  TMPMARGIN = 3.0f;				//测温曲线的上下留有的裕度。
const int    TEMPTASKNUM = 15;				//临时任务的默认任务数量。
const int    ADVANCEDNUMBER = 5;			//高级设置的项母鍪
const int    EDITLENGTH = 6;				//B 类任务允许输入的最大长度 edit控件允许输入数据位数
const float	 COEFFICIENT = 0.01f;			//波形数据从short 到 float 的转换系数
const DWORD  SAMPLESTARTDELAY = 2000;		//打开模拟电源到与F060通信的时间。
const int    SAMPLELENGTH = 8192;			//D任务采集波形的最大长度,动态申请内存的长度。
const char   NORCOMMDELAY = 10;				//例行通信的间隔时间 TIMER 循环多少次执行一次例行通信 20 *100ms

const int BEEP_TIME = 10;					//set buzzer的时间
const int MAX_LENGTH = 1024;				//读取波形数据时,与FO60之间每次通信接受的数据长度,则传输长度为:MAX_LENGTH*2+13
const BOOL VIBRATE_OPEN = TRUE;				//TRUE-开放测振功能 (专业点检仪) ,FALSE-关闭测振功能(日常点检仪)。
const bool TEST_PROGRAM = TRUE;			//TRUE- 测试程序,一些用来测试的功能有效,比如按键更新应用程序等。FALSE-正式程序,一些测试功能则无效。

const COLORREF MAIN_UP_COLOR = RGB(209,225,252);
const COLORREF MAIN_MIDDLE_COLOR = RGB(232,240,253);


#define  DELAYTIME  20						//与F410通信发送与接收之间的延时
#define  TASKDDELAYTIME 200					//传输波形数据时,发送命令到读数据之间的延时时间。
#define  TASKCDELAYTIME 200					//测温时,发送测温命令到可以测温之间的延时时间。

//自定义消息响应值
#define   WM_POPUP_BEFMEADLG      WM_USER   +   0x10 
#define   WM_POPUP_BROWSEDLG      WM_USER   +   0x11 
#define   WM_POPUP_TEMPORARYDLG   WM_USER   +   0x12 
#define   WM_POPUP_SETTINGDLG     WM_USER   +   0x13 
#define   WM_POPUP_LOGINDLG		  WM_USER   +   0x14        //点检员选择
#define   WM_POPUP_LOGINDLG2	  WM_USER   +   0x15		//点检日期选择
#define   WM_POPUP_LOGINDLG3	  WM_USER   +   0x25		//本机分析
#define   WM_POPUP_MEASUREDLG	  WM_USER   +   0x16
#define   WM_POPUP_SysInfDLG	  WM_USER   +   0x17
#define   WM_POPUP_ANALYSISDLG	  WM_USER   +   0x18
#define   WM_POPUP_HINTDLG	      WM_USER   +   0x19
#define   WM_POPUP_CHINESE	      WM_USER   +   0x20
#define   WM_POPUP_Poise	      WM_USER   +   0x21

typedef struct STemp
{
	char XH[4];			//序号
	char BH[20];		//标号
    char RWLX[2];		//任务类型
	char MEASVALUE[6];  //温度
	char MAXVALUE[6];   //最大温度
	char MINVALUE[6];   //最小温度
	char AVERVALUE[6];  //平均温度
	char XHLX[2];		//信号类型 
	char BXLX[2];		//波形类型 1-时域波形,2-频谱
	char DW[6];			//单位: 1-mm/s,2-mm,3-mm/s2
	char XXPL[4];		//下限频率
	char SXPL[6];		//上线频率
	char BXCD[6];		//波形长度
	char JCLX[2];		//加窗类型:1-矩形窗,2-汉宁窗
	char OHFS[2];		//耦合方式:1-直流 2-交流
	char PJLX[2];		//平均类型: 1-线性,2-峰值保持
	char PJCS[2];		//平均次数
	char SSWJ[8];		//1-Temp1.dat ,2-Temp2.dat ,3-Temp3.dat....一个文件存20条波形数据 目前未用
	char SJQSWZ[9];		//数据起始位置
	char DJTIME[14];	//点检时间
    char JHRYZNO[3];	//计划人员组编码
	char ZHXS[10];		//D任务转换系数
	char FFVALUE[10];	//D转换结果
}Temp;

struct SUser{
	char DJY[10];		//点检员
	char KJMRINF[2];	//开机默认信息
};

struct SPlan{	
    char DJJH[40];		//点检计划
	char JHBH[18];		//计划编号
    char KJMRINF[2];	//开机默认信息
	char YJCD[10];		//已检测点
	char CDZS[10];		//测点总数	
	char DJY[10];		//点检员
	char JHZXQSRQ[10];  //计划执行起始日期
	char JHZXZZRQ[10];  //计划执行终止日期
	char JHZXZD[4];     //计划执行制度
	char RWYZH[2];		//任务已转换?--是否已生成PlanTask.dat 文件
};
struct SDeviceLog{		//DeviceLog.dat
	char JHBH[18];		//计划编号
	char ZZCODE[10];	//组织代码
	char ZZDESCRIBE[40];//组织描述
	char SBCODE[18];	//设备代码
	char SBMS[40];		//设备描述
	char SBRWQSWZ[10];	//任务起始位置
	char CDZS[10];		//测点总数
	char RWZS[10];		//任务总数	
	char DJY[10];		//点检员
	char JHQSRQ[10];	//计划执行起始日期
	char JHZZRQ[10];	//计划执行终止日期
	char JHXXZD[4];		//计划执行制度
	char YJCD[10];		//已检测点
	char YJRW[10];		//已检任务
	char DRRW[10];		//当日任务
	char DRYJ[10];		//当日已检
	char RZGXRQ[10];	//日志更新时间
};
struct SPlanTask{       //每个任务信息一行 plantask.dat
	char JHBH[18];		//计划编号
	char ZZCODE[10];	//组织代码
	char ZZDESCRIBE[40];//组织描述
	char SBCODE[18];	//设备代码
	char SBMS[40];		//设备描述
	char CDMC[20];		//测点名称
	char CDBH[15];		//测点编号
	char CDTYPE[4];		//测点类型
	char DZNKCODE[25];	//电子钮扣编号
	char ZYLX[20];		//专业类型
	char SKDJ[4];		//受控等级
	char CLDYZS[2];		//测量定义ZONG数
	char CLDYMS[40];	//测量定义描述
	char XHLX[2];		//信号类型   //信号类型 0:电压、1:加速度、2:速度、3:位移
	char BXLX[2];		//波形类型   //1--时域波形 2--频谱
	char CLUNIT[6];		//测量单位	
	char SXPL[6];		//上限频率
	char XXPL[4];		//下限频率
	char BXCD[6];		//波形长度
	char JCLX[2];		//加窗类型 1-矩形,2-汉宁
	char PJCS[2];		//平均次数
	char PJFS[10];		//平均方式
	char CLDYBH[10];	//测量定义编号 //----------cdb---------------change
	char DTLCSZGS[2];	//动态量参数组个数
	char DTCSMS[60];	//参数组
	char GCMZ[8];		//观察码组
	char GCMZMS[20];	//观察码组描述
	char GCMZVALUE[40]; //观察码组值
	char GCMZZHY[200];	//观察码组值含义
	char GCMZBJDJ[20];	//观察码组报警等级
	char KDBZMIN[22];	//标准最小值
	char KDBZMAX[22];	//标准最大值
	char KDBZREF[22];	//标准参考值
	char DWLX[20];		//单位类型
	char KDBZUNIT[6];	//工程单位
	char BJLX[4];		//报警类型
	char GYLCSZ[10];	//工艺量参数组
	char RWZXQSRQ[10];  //任务执行起始日期
	char RWZXZZRQ[10];  //任务执行终止日期
	char RWZXZD[4];     //任务执行制度
	char DXDJRESULT[2];//定性点检结果
	char DLDJRESULT[15];//定量点检结果	
	char DJTIME[14];	//点检日期和时间
	char ZHXS[10];		//D任务转换系数 
	char DJDATE[10];	//点检日期
	char DRDJCS[4];		//当日点检次数
};

struct STodayTask{      //每个任务信息一行 plantask.dat
	char JHBH[18];		//计划编号
	char ZZCODE[10];	//组织代码
	char ZZDESCRIBE[40];//组织描述
	char SBCODE[18];	//设备代码
	char SBMS[40];		//设备描述
	char CDMC[20];		//测点名称
	char CDBH[15];		//测点编号
	char CDTYPE[4];		//测点类型
	char DZNKCODE[25];	//电子纽扣编号
	char ZYLX[20];		//专业类型
	char SKDJ[4];		//受控等级
	char CLDYZS[2];		//测量定义ZONG数
	char CLDYMS[40];	//测量定义描述
	char XHLX[2];		//信号类型   //信号类型 0:电压、1:加速度、2:速度、3:位移
	char BXLX[2];		//波形类型   //1--时域波形 2--频谱
	char CLUNIT[6];		//测量单位	
	char SXPL[6];		//上限频率
	char XXPL[4];		//下限频率
	char BXCD[6];		//波形长度
	char JCLX[2];		//加窗类型 1-矩形,2-汉宁
	char PJCS[2];		//平均次数
	char PJFS[10];		//平均方式
	char CLDYBH[10];	//测量定义描述 //--------------------------change
	char DTLCSZGS[2];	//动态量参数组个数
	char DTCSMS[60];	//参数组
	
	
	char GCMZ[8];		//观察码组
	char GCMZMS[20];	//观察码组描述
	char GCMZVALUE[40]; //观察码组值
	char GCMZZHY[200];	//观察码组值含义
	char GCMZBJDJ[20];	//观察码组报警等级
	
	char KDBZMIN[22];	//标准最小值
	char KDBZMAX[22];	//标准最大值
	char KDBZREF[22];	//标准参考值
	char DWLX[20];		//单位类型
	char KDBZUNIT[6];	//工程单位
	char BJLX[4];		//报警类型
	char GYLCSZ[10];	//工艺量参数组
	
	char RWZXQSRQ[10];  //任务执行起始日期
	char RWZXZZRQ[10];  //任务执行终止日期
	char RWZXZD[4];     //任务执行制度

	char DXDJRESULT[2];	//定性点检结果
	char DLDJRESULT[15];//定量点检结果	
	char DJTIME[14];	//点检日期和时间
	char ZHXS[10];		//D任务转换系数 
	char DJDATE[10];	//点检日期
	char DRDJCS[4];		//当日点检次数
};

struct SDeviceData      //每个任务信息一行
{
	char JHBH[18];		//计划编号
	char SBCODE[18];	//设备代码
	char SBMS[40];		//设备描述

	char CDMC[20];		//测点名称
	char CDBH[15];		//测点编号
	char CDTYPE[4];		//测点类型	
	char CLDYZS[2];		//测量定义ZONG数
	char CLDYMS[40];	//测量定义描述
	char CLDYBH[10];	//测量定义编号 //--------------------------new
	char DLDJRESULT[15];//定量点检结果
	char DXDJRESULT[2];	//定性点检结果	
	char DJTIME[16];	//点检日期和时间 

	char GCMZVALUE[40]; //观察码组值
	char GCMZZHY[200];	//观察码组值含义

	char WDMIN[8];		//温度最小值
	char WDMAX[8];		//温度最大值
	char KDBZMIN[22];	//开动标准最低值
	char KDBZMAX[22];	//开动标准最高值
	char KDBZUNIT[6];	//开动标准单位	

	char SJCD[6];		//数据长度,波形数据参数
	char SJSZ[8];		//数据首址,波形数据参数
	char ZHXS[10];		//D任务转换系数
	char XHLX[2];		//信号类型
	char BXLX[2];		//波形类型
	char CLUNIT[6];		//测量单位	
	char SXPL[6];		//上限频率
	char XXPL[4];		//下限频率
	char BXCD[6];		//波形长度
	char JCLX[2];		//加窗类型 1-矩形,2-汉宁
	char PJCS[2];		//平均次数
	char PJFS[2];		//平均方式
};


static COLORREF ColorTable[17] = {  
		RGB( 30,  30, 130),		// BKClor
		RGB(  0,   0,   0),		// Black
		RGB(255, 255, 255),		// White
		RGB(128,   0,   0),		// Maroon
		RGB(  0, 128,   0),		// Green
		RGB(128, 128,   0),		// Olive
		RGB(  0,   0, 128),		// Navy
		RGB(128,   0, 128),		// Purple
		RGB(  0, 128, 128),		// Teal
		RGB(192, 192, 192),		// Silver
		RGB(128, 128, 128),		// Gray
		RGB(255,   0,   0),		// Red
		RGB(  0, 255,   0),		// Lime
		RGB(255, 255,   0),		// Yellow
		RGB(  0,   0, 255),		// Blue
		RGB(255,   0, 255),		// Fuschia
		RGB(  0, 255, 255) };	// Aqua

enum Color { 
		BkColor,	
		Black,  White, Maroon,  Green,
		Olive,  Navy,  Purple,  Teal,
		Silver, Gray,  Red,     Lime,
		Yellow, Blue,  Fuschia, Aqua };
		//FFT变换
typedef struct SDataIndexVal
{
	float RMSValue;//有效值
	float PPValue;//峰峰值
	float KurValue;//峭度指标
}DataIndexVal;

//
void ConvToIntFFT(const short *inWaveData,int DataLength,short *outWaveData,float *yMax,float *yMin);
//
void INTFFTCalc(short *ReArray,short *ImArray,int DataLength,short *temArray);
//
void CalcIndexValue(const float *waveData,int dataLength,DataIndexVal *tDataIndex);
//
int  BitRev(int index,int bitNum);
//
int  CheckTmp(int meaTmp,int regulateTmp,int pos);
//
CString StringTrim(CString strInput,int strWide);
//
int CheckTodayTask(CString currentDate);
//
CString ManageFileName(CString oldName);
//
void GetbackTaskFile(CString user);
//
BOOL DeleteOneFileLine(LPCTSTR fileName,int size,int line,BOOL bDelete);
//	
BOOL DeleteFileLines(LPCTSTR fileName,int beginLine,int deletNum,int size,BOOL bDelete);
//
void BackupTaskFile();
//测振
void MeasureVib();
BOOL DirectoryCheck(CString strPath,BOOL bCreate);
#endif

⌨️ 快捷键说明

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