895 lines
24 KiB
C
895 lines
24 KiB
C
#ifndef _TABLET_CTRL_PROTOCOL_DEF_H
|
||
#define _TABLET_CTRL_PROTOCOL_DEF_H
|
||
|
||
#define CTRL_GD10_CODE 0x55aa55aa
|
||
#define CTRL_PLC_CODE 0xFF8899FF
|
||
#define MAX_CTRL_CONTENT 150
|
||
#define MAX_RECV_MEASURE 1500
|
||
#define MAX_SND_DATA 300
|
||
#define MAX_NAME_LEN (40) //最大任务名长度
|
||
#define MAX_TASK_NAME_LENGTH (60) //任务名长度
|
||
#define CLOUD_DEV_ID (0xFFFFFFFF) //云端设备ID
|
||
#define MAX_RECV_ELOC_SIZE 4096 //最大电极数目前用一个字节传
|
||
typedef enum EN_CONNECT_STATUS
|
||
{
|
||
EN_STATUS_CONNECT_SUCCESS = 0,
|
||
EN_STATUS_DISCONNECT,
|
||
EN_STATUS_RECONNECT_FAIL
|
||
};
|
||
enum EN_DEVICE_TYPE
|
||
{
|
||
EN_DEV_BROADCAST = 0,
|
||
EN_DEV_CLOUND,
|
||
EN_DEV_GEOMATIVE,
|
||
EN_DEV_GD10,
|
||
EN_DEV_PLC
|
||
};
|
||
|
||
enum EN_MEASU_PROC_STATUS
|
||
{
|
||
EN_MEASU_PROC_SUCCESS = 0,
|
||
EN_MEASU_PROC_DATA_ERR,
|
||
EN_MEASU_PROC_DB_ERR,
|
||
EN_MEASU_PROC_WARINNG
|
||
};
|
||
|
||
enum EN_CABLE_TYPE
|
||
{
|
||
EN_12_DOUBLE_TAP_LINES=0,
|
||
EN_24_SINGLE_TAP_LINES=1,
|
||
EN_30_SINGLE_TAP_LINES=2
|
||
};
|
||
#define EN_DEV_ONLINE 0x71
|
||
#define EN_FORCE_LOGIN 0xFE
|
||
#pragma pack(1)
|
||
|
||
typedef struct ST_CTRL_PROTO_HEADER
|
||
{
|
||
DWORD wIDCode;
|
||
WORD wTotalLen;
|
||
DWORD dwSeriNO;
|
||
UINT32 ucDstAddr;
|
||
UINT32 ucSrcAddr;
|
||
BYTE ucDstType;
|
||
BYTE ucSrcType;
|
||
BYTE ucCMD;
|
||
BYTE ucDataType;
|
||
BYTE Status_code;
|
||
BYTE ucPacketNum;
|
||
BYTE ucReverse[4]; //高字节第1个字节----测试类型:电阻率0,激电1,自电2
|
||
//高字节第2个字节----Org上传标志,0不传,1传
|
||
|
||
|
||
}STCtrlProtoHeader;
|
||
|
||
typedef struct ST_SYN_DEV_PARAM
|
||
{
|
||
UINT32 uiMachineID;
|
||
BYTE ucHWVer[2];
|
||
BYTE ucSWVer[4];
|
||
float fTemperature;
|
||
float fBatteryVol;
|
||
BYTE ucPowerFreq;
|
||
BYTE ucCableType;
|
||
int iGrThreshold;
|
||
BYTE ucBatteryAlarm;
|
||
BYTE ucStacking;
|
||
BYTE ucChannelNum;
|
||
BYTE ucDownLoadNum; //单次下发点数
|
||
}STSynDevParam;
|
||
|
||
|
||
typedef struct ST_MODIFY_DEV_PARAM
|
||
{
|
||
BYTE ucPowerFreq;
|
||
BYTE ucCableType;
|
||
int iGrThreshold;
|
||
BYTE ucBatteryAlarm;
|
||
BYTE ucStacking;
|
||
BYTE ucDownLoadNum; //单次下发点数
|
||
}STModifyDevParam;
|
||
|
||
typedef struct ST_MEASURE_TASK_PARAM_CLOUD
|
||
{
|
||
BYTE ucTestType;
|
||
BYTE ucTxPeriod;
|
||
BYTE ucSptType;
|
||
BYTE ucCableLayout;
|
||
BYTE ucStacking;
|
||
int iSAInterval;
|
||
BYTE ucArrayType;
|
||
|
||
float fXElecDistance; //X方向电极间距
|
||
float fYElecDistance; //Y方向电极间距
|
||
float fXElecStep; //X方向电极步长
|
||
float fYElecStep; //Y方向电极步长
|
||
RECT rcGridSize; //网格大小
|
||
byte byLineDirection; //测线方向0:X方向 1:Y方向
|
||
//float fElecSpace;
|
||
}STMeasuTaskParamTOCloud;
|
||
|
||
typedef struct ST_MEASURE_TASK_PARAM
|
||
{
|
||
BYTE ucTestType;
|
||
BYTE ucTxPeriod;
|
||
BYTE ucSptType;
|
||
BYTE ucCableLayout;
|
||
BYTE ucStacking;
|
||
int iSAInterval;
|
||
BYTE ucArrayType;
|
||
float fElecSpace;
|
||
BYTE ucOrgFlg;
|
||
char ucTaskID[MAX_NAME_LEN];
|
||
}STMeasuTaskParam;
|
||
|
||
|
||
typedef struct ST_SIG_SND_MEASURE_DATA
|
||
{
|
||
UINT32 dwTsn;
|
||
float fA;
|
||
float fB;
|
||
float fM;
|
||
float fN;
|
||
float fK;
|
||
BYTE ucStack;
|
||
ST_SIG_SND_MEASURE_DATA()
|
||
{
|
||
dwTsn = 0;
|
||
fA = fB = fM = fN =0;
|
||
ucStack = 0;
|
||
fK = 0;
|
||
}
|
||
}STSigSndDataInfo,*LPSTSigSndDataInfo;
|
||
|
||
typedef struct ST_MEASURE_DATA_RESULT_BASIC
|
||
{
|
||
int iID;
|
||
float fV;
|
||
float fI;
|
||
float fR0;
|
||
float fSP;
|
||
float fK;
|
||
BYTE ucAlram;
|
||
BYTE ucStack;
|
||
float fR0_LC;
|
||
|
||
}STMeasuDataResBasic, *LPSTMeasuBasicDataRes;
|
||
|
||
typedef struct ST_MEASURE_DATA_RESULT_BASICEX
|
||
{
|
||
int iID;
|
||
float fA;
|
||
float fB;
|
||
float fM;
|
||
float fN;
|
||
float fV;
|
||
float fI;
|
||
float fR0;
|
||
float fSP;
|
||
float fK;
|
||
BYTE ucAlram;
|
||
BYTE ucStack;
|
||
float fR0_LC;
|
||
|
||
}STMeasuDataResBasicEx, *LPSTMeasuBasicDataResEx;
|
||
|
||
//由于老瞿反馈底层最多只能传输500个字节,所以这里的ORG数据暂时都不传
|
||
typedef struct ST_MEASURE_DATA_RESULT_ATTACH_RES
|
||
{
|
||
float fDevi;
|
||
// float fVOrg[48];
|
||
// float fIOrg[48];
|
||
|
||
}STMeasuDataResAttachRes;
|
||
|
||
typedef struct ST_MEASURE_DATA_RESULT_ATTACH_IP
|
||
{
|
||
float fM0_LC;
|
||
WORD wHL;
|
||
float SP_P;
|
||
float SP_N;
|
||
float fD;
|
||
float fr;
|
||
BYTE ucTWCnt;
|
||
float fETA[20];
|
||
float fM0[20];
|
||
}STMeasuDataResAttachIP,*LPMeasuDataIPAttr;
|
||
|
||
typedef struct ST_MEASURE_GR_REQUSET
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN];
|
||
UINT ucStartElec;
|
||
UINT ucEndElec;
|
||
}STMeasuGRRequest;
|
||
|
||
|
||
typedef struct ST_MEASURE_GR_RESULT
|
||
{
|
||
// BYTE ucTestedElecNum;//由于在此程序中采用一次只测试一个接地电阻的原则,所以结构体可以这样定义
|
||
INT32 ucElecID;
|
||
int iP1;
|
||
BYTE ucP1Status;
|
||
int iP2;
|
||
BYTE ucP2Status;
|
||
}STMeasuSigGRResult;
|
||
|
||
typedef struct ST_OPERATION_RESULT
|
||
{
|
||
BYTE ucRes; //操作结果,成功为1,错误为0,如果此时为1的话,则ucErrCode可忽略
|
||
BYTE ucErrCode; //错误码
|
||
}STOperResult;
|
||
|
||
typedef struct ST_SIG_REMOTE_DEV_INFO
|
||
{
|
||
BYTE ucDevType; //设备类型
|
||
UINT32 uiDevID; //设备号
|
||
BYTE byDevStatus; //设备状态0--在线, 1--离线
|
||
bool operator < (const ST_SIG_REMOTE_DEV_INFO &A) const
|
||
{
|
||
if (ucDevType < A.ucDevType)
|
||
return true;
|
||
else if (ucDevType == A.ucDevType)
|
||
return (uiDevID < A.uiDevID) ? true : false;
|
||
else
|
||
return false;
|
||
}
|
||
}STSigRemoteDev;
|
||
|
||
typedef struct ST_REM_PLC_DATA_INFO
|
||
{
|
||
BYTE ucPacketIndex;
|
||
BYTE ucResult;
|
||
UINT32 uiAnaLogQua[8];
|
||
BYTE ucReseverse[4];
|
||
BYTE ucCtrlK1;
|
||
BYTE ucCtrlK2;
|
||
BYTE ucCtrlK3;
|
||
BYTE ucCtrlK4;
|
||
BYTE ucCtrlK5;
|
||
BYTE ucCtrlK6;
|
||
BYTE ucCtrlK[4];
|
||
BYTE ucCtrlReservse;
|
||
|
||
}STRemPlcDataInfo;
|
||
|
||
typedef struct ST_CABLE_INFO
|
||
{
|
||
BYTE ucDir; //电缆方向
|
||
BYTE ucID; //电缆ID
|
||
BYTE ucPowe; //电压
|
||
}STCableInfo;
|
||
|
||
typedef struct ST_REM_CABLE_CALL_INFO
|
||
{
|
||
BYTE ucTotalCount;
|
||
ST_CABLE_INFO stCableInfo[255+1];
|
||
}STRemCableCallInfo;
|
||
|
||
/*---------------测井结构体begin-----------------*/
|
||
//下发测井参数结构体
|
||
typedef struct ST_LOGGING_PARAMETER_SETTING_REQ
|
||
{
|
||
BYTE byLogTypes; //工作模式0x01(0000 0001):SP电阻率模式
|
||
//0x02(0000 0010) : 长电位电阻率模式
|
||
//0x04(0000 0100) : 短电位电阻率模式
|
||
//0x08(0000 1000) : 梯度电阻率模式
|
||
//0x08(0000 1001) : 梯度电阻率模式和SP电阻率模式
|
||
//0x0F(0000 1111) : 四种模式组合等等
|
||
BYTE byLogDirection; //测井方向 0:向上 1:向下
|
||
float fSamplingInterval; //AD采样频率
|
||
float fDepth; //深度
|
||
float fLoggingDistance; //测试距离(m)
|
||
float fPeriod; //周期
|
||
ST_LOGGING_PARAMETER_SETTING_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_PARAMETER_SETTING_REQ));
|
||
}
|
||
}STLoggingParamSettingReq;
|
||
|
||
typedef struct ST_LOGGING_PARAMETER_SETTING_RES
|
||
{
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_PARAMETER_SETTING_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_PARAMETER_SETTING_RES));
|
||
}
|
||
}STLoggingParamSettingRes;
|
||
|
||
//开始测试结构体
|
||
typedef struct ST_LOGGING_START_TEST_REQ
|
||
{
|
||
UINT32 uiTestID; //开始测试点ID
|
||
ST_LOGGING_START_TEST_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_START_TEST_REQ));
|
||
}
|
||
}STLoggingStartTestReq;
|
||
|
||
typedef struct ST_LOGGING_START_TEST_RES
|
||
{
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_START_TEST_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_START_TEST_RES));
|
||
}
|
||
}STLoggingStartTestRes;
|
||
|
||
//暂停测试结构体
|
||
typedef struct ST_LOGGING_PAUSE_TEST_REQ
|
||
{
|
||
char szTaskID[MAX_NAME_LEN];
|
||
ST_LOGGING_PAUSE_TEST_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_PAUSE_TEST_REQ));
|
||
}
|
||
}STLoggingPauseTestReq;
|
||
|
||
typedef struct ST_LOGGING_PAUSE_TEST_RES
|
||
{
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_PAUSE_TEST_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_PAUSE_TEST_RES));
|
||
}
|
||
}STLoggingPauseTestRes;
|
||
|
||
//继续测试
|
||
typedef struct ST_LOGGING_CONTINUE_TEST_REQ
|
||
{
|
||
char szTaskID[MAX_NAME_LEN]; //任务ID
|
||
UINT32 uiTestID; //继续测试开始点
|
||
ST_LOGGING_CONTINUE_TEST_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_CONTINUE_TEST_REQ));
|
||
}
|
||
}STLoggingContinueTestReq;
|
||
|
||
typedef struct ST_LOGGING_CONTINUE_TEST_RES
|
||
{
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_CONTINUE_TEST_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_CONTINUE_TEST_RES));
|
||
}
|
||
}STLoggingContinueTestRes;
|
||
|
||
//结束测试
|
||
typedef struct ST_LOGGING_END_TEST_REQ
|
||
{
|
||
char szTaskID[MAX_NAME_LEN]; //任务ID
|
||
ST_LOGGING_END_TEST_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_END_TEST_REQ));
|
||
}
|
||
}STLoggingEndTestReq;
|
||
|
||
typedef struct ST_LOGGING_END_TEST_RES
|
||
{
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_END_TEST_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_END_TEST_RES));
|
||
}
|
||
}STLoggingEndTestRes;
|
||
|
||
//数据结构体
|
||
typedef struct ST_LOGGING_DATA_PACKET_REQ
|
||
{
|
||
UINT32 uiTestID; //测试ID
|
||
float fDepth; //深度
|
||
float fSP_V; //SP 电压
|
||
float fL_V; //长电位电压
|
||
float fL_I; //长电位电流
|
||
float fL_R; //长电位电阻
|
||
float fS_V; //短电位电压
|
||
float fS_I; //短电位电流
|
||
float fS_R; //短电位电阻
|
||
float fG_V; //梯度电压
|
||
float fG_I; //梯度电流
|
||
float fG_R; //梯度电阻
|
||
ST_LOGGING_DATA_PACKET_REQ()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_DATA_PACKET_REQ));
|
||
}
|
||
}STLoggingDataPacketReq;
|
||
|
||
typedef struct ST_LOGGING_DATA_PACKET_RES
|
||
{
|
||
UINT32 uiTestID; //任务测试点ID
|
||
BYTE byStatusCode; //0:成功; 非0:错误码
|
||
ST_LOGGING_DATA_PACKET_RES()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOGGING_DATA_PACKET_RES));
|
||
}
|
||
}STLoggingDataPacketRes;
|
||
|
||
/*---------------测井结构体end-------------------*/
|
||
// typedef struct ST_TABLET_PRO_CTRL_INFO
|
||
// {
|
||
// BYTE ucCmd;
|
||
// WORD wTsn;
|
||
// WORD wLen; //控制信息所对应的数据体的长度
|
||
// char chData[MAX_CTRL_CONTENT];
|
||
// // WORD wRespLen; //响应消息所对应的数据体的长度
|
||
// int iTimeOut; //最大响应时间
|
||
// ST_TABLET_PRO_CTRL_INFO()
|
||
// {
|
||
// ucCmd = 0;
|
||
// wTsn = 0;
|
||
// wTsn = 0;
|
||
// memset(chData, 0, sizeof(chData));
|
||
// // wRespLen = 0;
|
||
// iTimeOut = 0;
|
||
// }
|
||
// }STProCtrlInfo;
|
||
|
||
|
||
|
||
|
||
// typedef struct ST_RCV_MSG_CTRL_INFO
|
||
// {
|
||
// BYTE ucCmd;
|
||
// WORD wTsn;
|
||
// ST_RCV_MSG_CTRL_INFO()
|
||
// {
|
||
// ucCmd = 0;
|
||
// wTsn = 0;
|
||
// }
|
||
//
|
||
// }STCtrlRcvMsgInfo;
|
||
|
||
enum EN_SEND_MSG_RES
|
||
{
|
||
EN_SEND_SUCCESS = -1,
|
||
EN_SEND_LINK_INTERRUPT,
|
||
EM_SEND_FAILED = 11
|
||
};
|
||
|
||
enum EN_RCV_MSG_RES
|
||
{
|
||
EN_RECV_SUCCESS = 0,
|
||
EN_RECV_LINK_INTERRUPT,
|
||
EN_RECV_TIMEOUT,
|
||
EN_RECV_DATA_DISORDER,
|
||
EN_RECV_DATA_ERROR,
|
||
EM_RECV_FAILED,
|
||
EN_CLOUND_SND_FAILED,
|
||
EN_RECV_CTRL_CMD,
|
||
EN_RECV_PLC_STATUS,
|
||
EN_REAL_TIME_TESTING_DATA, //标志接收的是实时窗口正在测试中的数据
|
||
EN_RECV_NOTIFY_DEVICE_ONLINE, //标志接收到服务器设备上线的通知
|
||
EN_RECV_NOTIFY_DEVICE_OFFLINE //标志接收到服务器设备下线的通知
|
||
};
|
||
|
||
enum EN_ERROR_MSG
|
||
{
|
||
FAILED_NO_ERROR = 0, //没有错误
|
||
FAILED_OPERATOR_GD_OFF = 3, //关机失败
|
||
FAILED_LOOP_TASK_NO_CANCEL_TEST = 4, //循环任务未取消测试
|
||
FAILED_CREATE_LOOP_DURING_THIS_PERIOD = 5 //此时段已创建其他任务
|
||
/*FAILED_NO_ERROR=0, //没有错误
|
||
FAILED_OPERATOR_GD_ON = 2, //开机失败
|
||
FAILED_OPERATOR_GD_OFF = 3, //关机失败
|
||
FAILED_NAME_CABLE_HEAD = 4, //点名电缆头失败
|
||
FAILED_TEST_GR=5, //测试接地电阻失败
|
||
FAILED_MAXIMUM_TIMES=6, //尝试次数超过最大次数
|
||
FAILED_TEST_POINT_EXCEPTION = 7, //测试点异常
|
||
FAILED_OTHER_TASK_RUNNING=8, //其他任务正在测试
|
||
FAILED_TASK_IS_RUNNING=9, //此任务正在测试
|
||
FAILED_LOOP_TASK_NO_CANCEL_TEST=10, //循环任务未取消测试
|
||
FAILED_CREATE_LOOP_DURING_THIS_PERIOD=11//此时段已创建其他任务*/
|
||
};
|
||
/*************************命令字***********************************************
|
||
命令字 功能 命令字 功能
|
||
0x0 设备登录上报和确认回复 0x5 1.contrlBox电压上报 2. GD10测量接地电阻
|
||
0x1 1.ContrlBox开关机2. Geo->GD10电缆头点名 0x6 GD10测量数据命令
|
||
0x2 1.ContrlBox设置电压上报方式2.GD10设备参数同步 0x88 暂时用来定时上报电压的回复
|
||
0x3 GD10设置设备参数 0xFE 登陆的广播包
|
||
0x4 设置任务的测试参数 0xFF 心跳
|
||
|
||
0x57 在线自动配置GeomativeID、GDID、PLCID
|
||
0x58 请求云端托管循环任务
|
||
0x59 取消云端托管循环任务
|
||
0x5A 查询PLC状态信息
|
||
0x60 取消云托管指令 0x70 Geomative请求云端下发电缆头信息
|
||
0x61 请求云托管指令 0x71 被占用#define EN_DEV_ONLINE 0x71
|
||
0x62 Geomative上传设备信息到云端 0x72 Geomative请求云端下发当前设备信息
|
||
0x63 Geomative上传任务参数信息到云端 0x73 Geomative请求云端下发任务参数信息
|
||
0x64 Geomative上传接地电阻信息到云端 0x74 Geomative请求云端下发任务接地电阻信息
|
||
0x65 Geomative上传任务测试数据到云端 0x75 Geomative请求云端下发任务测试数据信息
|
||
0x66 Geomative请求云端任务删除 0x76 Geomative请求云端下发任务列表信息
|
||
0x67 Geomative请求云端任务暂停 0x77 Geomative请求云端下发指定时间有效的循环任务
|
||
0x68 Geomative请求云端任务继续 0x78 Geomative请求云端下发循环任务//查询接口
|
||
0x79 Geomative请求云端下发PLC状态信息
|
||
0x6A Geomative上传电极坐标 0x7A Geomative请求云端下发电极坐标
|
||
0x6E 云端下发下线设备 0x71 云端下发上线设备
|
||
*******************************************************************************/
|
||
enum EN_CTRL_CMD_INFO
|
||
{
|
||
EN_CTRL_USER_LOGIN = 0x00,
|
||
EN_CTRL_ROLLCALL_CABLE = 0x01,//PLC控制开关机和设备点名用的都是1,只是目标类型不一样
|
||
EN_CTRL_SYN_DEV_PARAM = 0x02,
|
||
EN_CTRL_SET_DEV_PARAM = 0x03,
|
||
EN_CTRL_SET_TASK_PARAM = 0x04,
|
||
EN_CTRL_MEASURE_GR = 0x05,
|
||
EN_CTRL_MEASURE_DATA = 0x06,
|
||
|
||
EN_CTRL_PLC_POWER_ON_OR_OFF = 0x01,
|
||
|
||
EN_REQ_ONLINE_AUTO_CONFIG = 0x57,
|
||
EN_REQ_LOOP_TASK_TRUST = 0x58,
|
||
EN_CANCEL_LOOP_TASK_TRUST = 0x59,
|
||
EN_CANCEL_COLLOCATION = 0x60,
|
||
EN_REQ_COLLOCATION = 0x61,
|
||
EN_UPLOAD_DEV_INF = 0x62,
|
||
EN_UPLOAD_TASK_ARG = 0x63,
|
||
EN_UPLOAD_RG_INF = 0x64,
|
||
EN_UPLOAD_DATA_INF = 0x65,
|
||
EN_REQ_TASK_DEL = 0x66,
|
||
EN_REQ_TASK_PAUSE = 0x67,
|
||
EN_REQ_TASK_CONTINUE = 0x68,
|
||
EN_UPLOAD_ELECTRODE_COORDINATES_INFO = 0x6A,
|
||
EN_RECV_DEVICE_OFFLINE = 0x6E, //设备下线
|
||
EN_REQ_DOWNLOAD_CABLE_INFO = 0x70,
|
||
EN_RECV_DEVICE_ONLINE = 0x71, //设备上线
|
||
//EN_reserve = 0x71,
|
||
EN_REQ_DOWNLOAD_DEV_INFO = 0x72,
|
||
EN_REQ_DOWNLOAD_TASK_ARG = 0x73,
|
||
EN_REQ_DOWNLOAD_RG_INFO = 0x74,
|
||
EN_REQ_DOWNLOAD_DATA_INFO = 0x75,
|
||
EN_REQ_DOWNLOAD_TASK_TABLE = 0x76,
|
||
EN_REQ_DOWNLOAD_LOOP_TABLE = 0x77,
|
||
EN_REQ_DOWNLOAD_LOOP_SUB_TABLE = 0x78,
|
||
EN_REQ_QUERY_PLC_STATUS = 0x79,
|
||
EN_DOWNLOAD_ELECTRODE_COORDINATES_INFO = 0x7A,
|
||
|
||
EN_REQ_HEART_BEAT_PACKET = 0xFF
|
||
};
|
||
|
||
enum EN_LOGGING_COM_PORT_CMD
|
||
{
|
||
EN_LOGGING_CHECK_PORT_LOGIN = 0x00, //Login校验串口是否为测井串口
|
||
EN_LOGGING_DOWNLOAD_LOG_PARAM = 0xC1, //测井参数下发
|
||
EN_LOGGING_START_TEST = 0xC2, //开始测试
|
||
EN_LOGGING_PAUSE_TEST = 0xC3, //暂停测试
|
||
EN_LOGGING_CONTINUE_TEST = 0xC4, //继续测试
|
||
EN_LOGGING_END_TEST = 0xC5, //结束测试
|
||
EN_LOGGING_MEASURING_POINT_DATA = 0xC6 //测井数据
|
||
};
|
||
typedef struct ST_DELETE_TASK_REQUEST
|
||
{
|
||
char szTaskID[MAX_NAME_LEN];
|
||
ST_DELETE_TASK_REQUEST()
|
||
{
|
||
memset(this, 0, sizeof(ST_DELETE_TASK_REQUEST));
|
||
}
|
||
}STDeleteTaskRequest;
|
||
|
||
typedef struct ST_REM_TASK_ARG
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN];
|
||
char ucTDName[60];
|
||
char ucSciptName[MAX_NAME_LEN];
|
||
STMeasuTaskParamTOCloud stMeasuArg;//14
|
||
UINT32 uiStartElec;
|
||
UINT32 uiEndElec;
|
||
UINT32 uiStartLayer;
|
||
UINT32 uiEndLayer;
|
||
UINT32 uiStartTime;
|
||
UINT32 uiEndTime;
|
||
UINT32 uiTimerTime;
|
||
UINT32 uiTotalNum;
|
||
BYTE ucOrgFlg;
|
||
BYTE ucTestGRFlag; //1:测试接地电阻,0:不测试接地电阻
|
||
UINT32 uiCreateTime; //任务创建时间
|
||
UINT32 uiCurrentPoint; //当前测试到哪个点
|
||
UINT32 uiFailedReason; //任务失败原因
|
||
}STRemTaskArg;
|
||
|
||
typedef struct ST_TASK_DATA_RES
|
||
{
|
||
UINT32 dwID;
|
||
float fA;
|
||
float fB;
|
||
float fM;
|
||
float fN;
|
||
float fK;
|
||
BYTE ucStack;
|
||
float fV;
|
||
float fI;
|
||
float fR0;
|
||
float fSP;
|
||
BYTE ucAlram;
|
||
float fR0_LC;
|
||
ST_TASK_DATA_RES()
|
||
{
|
||
dwID = 0;
|
||
fA = fB = fM = fN = 0;
|
||
ucStack = 0;
|
||
fK = 0;
|
||
fV;
|
||
fI = fR0 = fSP = fK = fR0_LC = 0;
|
||
ucAlram = 0;
|
||
}
|
||
}STTaskDataRes;
|
||
|
||
typedef struct ST_SYN_TASK_DATA_RES
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN];
|
||
UINT32 dwPointNum;
|
||
STTaskDataRes *ptTaskData;
|
||
}STSynTaskDataRes;
|
||
|
||
typedef struct ST_MANUAL_TASK_ARG
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN]; //任务名 Byte * 40 20个字节
|
||
UINT32 uiStartPoint; //开始点 Uint32 默认0
|
||
UINT32 uiEndPoint; //结束点 Uint32 默认0(测完)
|
||
}STManualTaskArg;
|
||
typedef struct ST_TIMER_TASK_ARG
|
||
{
|
||
UINT32 uiCurTime;//当前时间 Uint32 相对格林威治时间的秒数
|
||
UINT32 uiTaksNum;//任务个数 Uint32
|
||
BYTE ucTimerType;//定时托管类型 Byt 0:单任务定时,默认0 1:循环任务包定时(第一个任务开始测试时间)
|
||
BYTE ucLoopNum;//循环次数 Byte 默认0, 非循环任务为0
|
||
UINT32 uiTaskInterval;//任务间间隔 Uint32 秒,默认0, 非循环任务为0
|
||
char ucTaskID[40];//任务名1 Byte * 40
|
||
}STTimerTaskArg;
|
||
typedef struct ST_TRUSTEE_TASK_TABLE
|
||
{
|
||
UINT32 uiPlcId; //PLC设备ID号
|
||
UINT32 uiGD10Id; //GD10设备号
|
||
BYTE ucTeatMode; // 默认0,0:手动1:定时
|
||
union
|
||
{
|
||
STManualTaskArg stManualTask;
|
||
STTimerTaskArg stTimerTask;
|
||
}Task;
|
||
}STTrusteeTaskTable;
|
||
|
||
enum EN_TASK_TEST_TYPE
|
||
{
|
||
EN_MANUAL_TASK = 0,
|
||
EN_TIMER_TASK,
|
||
};
|
||
enum EN_TASK_SERVER_STATUSE
|
||
{
|
||
EN_TASK_STATE_NO_TRUST = 0,
|
||
EN_TASK_STATE_TESTING,
|
||
EN_TASK_STATE_STOP_TEST=20,
|
||
EN_TASK_STATE_TEST_FAILED=30,
|
||
EN_TASK_STATE_FINISH=40
|
||
};
|
||
enum EN_TASK_LOCAL_STATUSE
|
||
{
|
||
EN_TASK_NO_UPLOAD = 0,
|
||
EN_TASK_NO_DOWNLOAD,
|
||
EN_TASK_YES_SYN
|
||
};
|
||
|
||
enum EN_TASK_TESTING_METHOD
|
||
{
|
||
EN_TASK_ALL_POINT_TEST, //全部测量
|
||
EN_TASK_FROM_CURRENT_POINT_TEST, //从当前位置开始测量
|
||
EN_TASK_CURRENT_ONE_POINT_TEST, //单点测量
|
||
EN_TASK_SUSPENDED, //暂停测量
|
||
EN_TASK_NOT_TESTTING //没有手动在实时窗口测试中
|
||
};
|
||
|
||
typedef struct ST_REM_TASK_TABLE
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN];
|
||
char ucTDName[60];
|
||
BYTE ucTaskStats;
|
||
}STRemTaskTable;
|
||
|
||
//用于保存任务管理->任务列表中任务节点数据
|
||
typedef struct ST_TASK_LIST_ITEM_DATA
|
||
{
|
||
char szTaskID[MAX_NAME_LEN]; //任务ID
|
||
char szTDName[60]; //任务名
|
||
BYTE byTestStatus; //测试状态
|
||
EN_TASK_LOCAL_STATUSE eSynStatus; //同步状态
|
||
ST_TASK_LIST_ITEM_DATA()
|
||
{
|
||
memset(this, 0, sizeof(ST_TASK_LIST_ITEM_DATA));
|
||
}
|
||
}STTaskListItem;
|
||
|
||
typedef struct ST_LOOP_TASK_TABLE
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN]; //任务名 Byte * 40 40个字节
|
||
char ucTaskName[MAX_NAME_LEN]; //循环备用任务名 Byte * 40 40个字节
|
||
BYTE ucLoopType; //0,1,2,3 -------------0:一次, 1- 按天,2-按月,3-按周
|
||
UINT32 uiStartTime; //开始测试时间
|
||
UINT32 uiEndTime; //结束测试时间
|
||
}STLoopTaskTable;
|
||
|
||
typedef struct ST_LOOP_TASK_INFO
|
||
{
|
||
char ucTaskID[MAX_NAME_LEN]; //循环任务名 Byte * 40 40个字节
|
||
char ucTaskName[60]; //循环备用任务名 Byte * 60 60个字节
|
||
UINT32 uiPlcId;
|
||
UINT32 uiGD10Id;
|
||
BYTE ucContrlType;
|
||
BYTE ucTimerType;
|
||
UINT16 uiLoopNum; //循环次数
|
||
UINT16 uiRemainLoopNum; //剩余循环次数
|
||
BYTE ucLoopType; //0,1,2,3 -------------0:一次, 1- 按天,2-按月,3-按周
|
||
BYTE ucTimerAgsNum; //循环定时参数个数
|
||
BYTE ucTimerTimeAgs; //定时时间参数
|
||
UINT32 uiStartTime; //开始测试时间
|
||
UINT32 uiEndTime; //结束测试时间
|
||
UINT32 uiStartMin; //每天或者每周相对0点开始分钟数
|
||
UINT32 uiTaskSpace; //任务间间隔
|
||
UINT32 uiSubTaskNum;//子任务数
|
||
ST_LOOP_TASK_INFO()
|
||
{
|
||
memset(this, 0, sizeof(ST_LOOP_TASK_INFO));
|
||
}
|
||
}STLoopTaskInfo;
|
||
|
||
__interface ITaskTree
|
||
{
|
||
virtual CTreeCtrl* GetTaskTreePtr() = 0;
|
||
virtual void ShowTaskTree(int iSptType, time_t tStartTime = 0, time_t tEndTime = 0) = 0;
|
||
};
|
||
|
||
enum EN_TASK_TREECTRL_TYPE
|
||
{
|
||
EN_1D_TASK_TREE = 0,
|
||
EN_2D_TASK_TREE = 1,
|
||
EN_3D_TASK_TREE = 2
|
||
};
|
||
|
||
//////////////////////////////////////测量定义开始////////////////////////
|
||
enum EN_MEASU_BTN_STATUS
|
||
{
|
||
EM_MEASU_BTN_INITI = 0,
|
||
EN_MEASU_BTN_MEASU_ALL,
|
||
EN_MEASU_BTN_MEASU_FROM_CUR,
|
||
EN_MEASU_BTN_MEASU_SIG,
|
||
EN_MEASU_BTN_COUNTINE,
|
||
EN_MEASU_BTN_SUSPEND,
|
||
EN_MEASU_BTN_MEASU_TERIMI, //测量终止代表测量完成或者测量错误时,测量停止下来
|
||
EN_MEASU_BTN_MEASU_FIN,
|
||
EN_MEASU_BTN_NOT_SELECT_TASK, //没有选中任务时按钮状态
|
||
EN_MEASU_BTN_SELECT_TASK, //选中任务时按钮状态
|
||
EN_MEASU_BTN_NOT_TESTING_TASK,
|
||
EN_MEASU_BTN_OFFLINE_DEVICE //查看离线设备,实时窗口不需要测试,只能查看
|
||
};
|
||
enum EN_MEASURE_TYPE
|
||
{
|
||
EN_MEASURE_DATA = 0,
|
||
EN_MEASURE_GR
|
||
|
||
};
|
||
|
||
typedef struct stPLCStatusInfoRequest
|
||
{
|
||
UINT32 uPLCID; //PLC ID
|
||
UINT32 uStartTime; //开始时间
|
||
UINT32 uEndTime; //结束时间
|
||
stPLCStatusInfoRequest()
|
||
{
|
||
memset(this, 0, sizeof(stPLCStatusInfoRequest));
|
||
}
|
||
}STPLCStatusInfoRequest, *PSTPLCStatusInfoRequest;
|
||
|
||
typedef struct stPLCStatusResponse
|
||
{
|
||
UINT32 uStatusTime;
|
||
float fSimulation[4]; //模拟量
|
||
float fVoltage; //电压
|
||
float fTemperature; //温度
|
||
float fSimulation7; //模拟量
|
||
float fSimulation8; //模拟量
|
||
float fReserve; //预留
|
||
BYTE bSwitch[10]; //控制变量
|
||
BYTE bReserve; //预留
|
||
stPLCStatusResponse()
|
||
{
|
||
memset(this, 0, sizeof(stPLCStatusResponse));
|
||
}
|
||
}STPLCSTATUS, *PSTPLCSTATUS;
|
||
|
||
typedef struct ST_BOREHOLE_PARAM
|
||
{
|
||
int iElecID; //第一个电极编号
|
||
int iElecNum; //电极数目
|
||
float fX; //X坐标,用于地表
|
||
float fY; //Y坐标,用于三维
|
||
float fZ; //Z坐标,用于孔
|
||
float fElecSpacing; //电极间距
|
||
ST_BOREHOLE_PARAM()
|
||
{
|
||
memset(this, 0, sizeof(ST_BOREHOLE_PARAM));
|
||
}
|
||
}STBoreHoleParam;
|
||
|
||
enum EN_COORDINATES_TYPE
|
||
{
|
||
EN_UNKNOWN_TYPE = 0,
|
||
EN_BOREHOLE_TYPE = 1, //井地
|
||
EN_SURFACE_TYPE = 2 //地表
|
||
};
|
||
|
||
typedef struct ST_BOREHOLE_POINTS
|
||
{
|
||
EN_COORDINATES_TYPE eType;
|
||
UINT32 uiID; //序号
|
||
UINT32 uiElecID; //电极编号
|
||
float fX; //X坐标
|
||
float fY; //Y坐标
|
||
float fZ; //Z坐标
|
||
}STBoreHolePoints;
|
||
|
||
struct STWellPoints
|
||
{
|
||
float fX;
|
||
float fY;
|
||
STWellPoints()
|
||
{
|
||
memset(this, 0, sizeof(STWellPoints));
|
||
}
|
||
|
||
bool operator<(const STWellPoints& t) const
|
||
{
|
||
if (fabs(fX - t.fX) > 0.000001)
|
||
{
|
||
return true;
|
||
}
|
||
|
||
if (fabs(fY - t.fY) > 0.000001)
|
||
{
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
};
|
||
|
||
typedef struct ST_DATABASE_ABMN_INFO
|
||
{
|
||
int uiAElecID; //测点A电极编号
|
||
int uiBElecID; //测点B电极编号
|
||
int uiMElecID; //测点M电极编号
|
||
int uiNElecID; //测点N电极编号
|
||
float fK; //K值
|
||
int iTrace; //迭代次数
|
||
int iLayer; //层数;
|
||
float fSptXPos;
|
||
ST_DATABASE_ABMN_INFO()
|
||
{
|
||
memset(this, 0, sizeof(ST_DATABASE_ABMN_INFO));
|
||
}
|
||
}STDatabaseABMNInfo;
|
||
|
||
enum EN_TAB_PAGE
|
||
{
|
||
EN_OPTION_GEOMETRY = 0,
|
||
EN_OPTION_BOREHOLE = 1,
|
||
EN_OPTION_SURFACE = 2,
|
||
EN_OPTION_SETTING = 3
|
||
};
|
||
|
||
#define MAX_REPEAT_SND_CNT 90000
|
||
//#define WM_GET_TASK_LIST_MSG WM_USER + 10086
|
||
//#define WM_TASK_LIST_TASK_INFO_SYN WM_USER + 10089
|
||
#define WM_TASK_LIST_TASK_DATA_SYN WM_USER + 10090
|
||
#define WM_NET_RESPONSE WM_USER + 110 //发送消息后,响应消息
|
||
#define WM_NET_RECV_REAL_TIME_DATA WM_USER + 111 //接收正在测试中实时窗口的数据
|
||
#define WM_MSG_DELETE_TASK WM_USER + 112 //删除任务界面响应
|
||
#define WM_MSG_UPDATE_TASK_LIST WM_USER + 113 //刷新任务列表
|
||
#define WM_MSG_UPDATE_REALTIME_WND_BTN_STATUS WM_USER + 114 //更新实时窗口按钮状态
|
||
#define WM_MSG_SET_CURRENT_SELECT_TASK WM_USER + 115 //通知实时窗口当前选中的任务
|
||
#define WM_MSG_SEND_CABLE_ROLLCALL WM_USER + 116 //电缆头点名消息
|
||
|
||
|
||
#define ID_TIMER_HEARTBEAT_PACKET 200 //心跳
|
||
#define ID_UPLOAD_DEVICE_MARKET_DATA 201 //联网时,上传设备市场数据到云端
|
||
#define HEARTBEAT_INTERVAL 120000 //频率,两分钟
|
||
#define UPLOAD_MARKET_DATA_INTERVAL 9000 //联网一分钟后上传设备市场数据
|
||
#define STRING_MESSAGEBOXEX_TITLE "Geomative Studio"
|
||
//////////////////////////////////////测量定义结束////////////////////////
|
||
#pragma pack()
|
||
#endif |