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