📄 devdef.h
字号:
// Devdef.h
/// 无属性页设备驱动模版
/// 对于数据类型的定义,有所更改,在此作特作声明如下:
/// 以前对于为操作和数据类型用两个属性来表达,现在统一改成
/// 用一个属性(数据类型)来表达。但这个值小于80时表示位,
/// 当这个值大于等于80时表达数据类型,
/// 此时类型值和类型的对应关系如下:
/// 80:无符号8位二进制数。
/// 81:有符号8位二进制数。
/// 82:8位BCD码。
/// 83:无符号16位二进制数。
/// 84:有符号16位二进制数。
/// 85:16位BCD码。
/// 86:无符号32位二进制数。
/// 87:有符号32位二进制数。
/// 88:32位BCD码。
/// 89:32位浮点数。
/// 100:ASCII表示的浮点数。
#include "afxtempl.h"
/// DEV驱动程序中用到的属性常量定义
/// 帮助ID
const DWORD DEV_DWORD_HELPID = 2102072502;
/// 帮助文件名
const CString DEV_STR_HELPFILENAME = _T("SWA2000");
/// 设备名称,即组态搜索设备时显示的名称
const CString DEV_STR_NAME = _T("南京3C");
/// 模拟环境调用的驱动名
const CString DEV_STR_DLLNAMEMU = _T("SWA2000U.drv");
/// CE运行环境调用的驱动名
const CString DEV_STR_DLLNAMECE = _T("SWA2000E.drv");
/// 固定字符串,串口通讯设备的固有通道
const CString DEV_STR_COMMUNICATEFLAG = _T("通讯状态");
/// 固定字符串,MCGS的写通道命令
const CString DEV_STR_MCGSWRITE = _T("MCGS_WRITE");
/// MCGS的写设备命令,建议用相同的命令头
const CString DEV_STR_WRITE = _T("WRITE");
/// MCGS的读设备命令,建议用相同的命令头
const CString DEV_STR_READ = _T("READ");
/// MCGS的设置设备命令,建议用相同的命令头
const CString DEV_STR_SETINI = _T("SETINI");
///附加功能设备命令
const CString DEV_STR_SETHIDDENPRO = _T("SetHiddenPro");
const CString DEV_STR_GETHIDDENPRO = _T("GetHiddenPro");
/// MCGS的发送历史数据设备命令,建议用相同的命令头
const CString DEV_STR_SENDMEASDATA = _T("SENDMEASDATA");
/// MCGS的执行9012设备命令,建议用相同的命令头
const CString DEV_STR_EXERTN = _T("EXERTN");
/// 十六进制属性值的引导字符
const CString DEV_STR_PROPERTYHEAD0X = _T("0X");
const CString DEV_STR_BITFORMAT = _T("%.1x");
/// 保存设备信息用的自定义结构,设备编写者在设备初始化中分配,
/// 在设备退出时释放,并负责把MCGS_DATA中的对应指针复位为NULL
struct DEV_DATA
{
/// 设备属性数组,每一个元素对应基本属性页中的一个属性
/// 如果是数值型的属性,则这里保存的是属性的值,如果是
/// 具有下拉框的属性则这里保存的是被选中的下拉框索引。
CArray<int, int> nArProperty;
///访问密码
CString strPW;
///设备标识
CString strMN;
CString strST;
///上次上传实时数据时间
DWORD dwTime;
///实时数据上传间隔 , 单位秒,登陆时间间隔
int nRtdInterval;
///上次发送失败分钟数据
CString strError;
DWORD dwErrorTime;
bool bError;
int nTimes;
//////////驱动日志功能所用/////////////////////////////
BOOL bLog;//日志功能标志,1为开启,0为默认不开启
DWORD dwLogN;//写日志行数
CString strLog;//日志字符串
};
/// 基本属性常量定义开始
/// 基本属性页中自定义属性的数量数量。
/// 如果更改基本属性数量请修改这个常量的值。
const DWORD DEV_DWORD_PROPERTYNUM = 2;
/// 基本属性索引枚举,可用他代替数值索引访问属性数组。
/// 如果更改基本属性请修改这个结构,枚举值必须从0开始依次递增。
/// 总数量应与属性数量相等。
enum DEV_ENUM_PROPERTYNAME
{
DEV_PRO_DELAYTIME = 0,
DEV_PRO_NUM = 1,
};
/// 基本属性初始值数组,元素数量与属性数量相同,
/// 如过某个属性有下拉列表则其初值为0。
/// 如果更改基本属性请修改这个结构,总数量应与属性数量相等。
const DWORD DEV_DWORD_PROPERTYINITVALUE[] =
{
200,
3,
};
/// 基本属性名称数组,元素数量与属性数量相同。
/// 如果更改基本属性请修改这个结构,总数量应与属性数量相等。
const CString DEV_STR_PROPERTYNAME[] =
{
{_T("通讯等待时间")},
{_T("监测因子量")},
};
/// 属性下拉列表中元素数量数组,元素数量与属性数量相同,
/// 其值是对应属性的下拉列表所具有下拉项的数量。
/// 值为0表示该属性没有下拉列表
/// 如果更改基本属性请修改这个结构,总数量应与属性数量相等。
const DWORD DEV_DWORD_PROPERTYLISTNUM[] =
{
0,
0,
};
/// 属性下拉列表中元素数组,元素数量与属性下拉列表中元素数量数组中所有值的和相同,
/// 这里的值将被按照顺序添加到属性的下拉列表中
const CString DEV_STR_PROPERTLIST[] =
{
{_T("0 - 不求校验")},
{_T("1 - 求校验")},
};
/// 基本属性常量定义结束
/// 协议字符串数据类型枚举,用于发送接受协议,以及字符串的函数参数传递过程。
enum DEV_PROTOCOLTYPE
{
DEV_PROTOCOL_ASII = 0,
DEV_PROTOCOL_HEX = 1,
};
/// 通讯读操作的返回方式枚举。
enum DEV_COMMSTOPTYPE
{
DEV_COMM_WAITFORCHAR = 0,
DEV_COMM_WAITFORLEN = 1,
DEV_COMM_SLEEP = 2,
DEV_COMM_WAITFORCORL = 3,
};
/// 读写标志枚举
enum DEV_RWFLAG
{
DEV_RWFLAG_READ = 0,
DEV_RWFLAG_WRITE = 1,
DEV_RWFLAG_RW = 2,
};
/// 校验方向枚举
enum DEV_CHECKDIR
{
DEV_CHECK_OUT = 0,
DEV_CHECK_IN = 1,
};
// 驱动程序中用到的常量定义
/////
const CString DEV_STR_SECTION = _T("[PARASET]");
///密码
const CString DEV_STR_ITEMPW = _T("PassWord");
///实时上传时间间隔
const CString DEV_STR_ITEMRT = _T("LogTime");
///设备号
const CString DEV_STR_ITEMMN = _T("MN");
///组对象
const CString DEV_STR_ITEMOBJ = _T("ObjName");
///默认实时数据上传间隔, 单位秒
const LONG DEV_LONG_RTDINTERVAL = 30;
const CString DEV_STR_PW = _T("PW=123456");
const CString DEV_STR_ST = _T("ST=32");
const DWORD DEV_DWORD_BITS = 7;
const DWORD DEV_DWORD_FIXCHLNUM = 3;
const CString DEV_STR_FIXCHLNAME[] =
{
{_T("实时数据上传次数")},
{_T("实时数据上传日期")},
{_T("实时数据上传时间")},
};
const LONG DEV_LONG_FIXCHLTYPE[] =
{
2,
3,
3,
};
///测试因子的代码、实时值、状态
const CString DEV_STR_TESTCHLNAMEFORMAT[] =
{
{_T("测量因子%.2X代码")},
{_T("测量因子%.2XRtd")}
};
const LONG DEV_LONG_TESTCHLTYPE[] =
{
3,
2,
};
const CString DEV_STR_ORDER[] =
{
{_T("")},
{_T("#")},
{_T("$")},
{_T("6")},
{_T("?")},
};
//////////////////////////////////////////////////////////////////////////
//校验算法 半查表索引
const DWORD DEV_DWORD_CRCHALFTABLE[] =
{
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
};//X16+X12+X5+1 余式半表[CRC16-ITU]标准
const CString DEV_STR_HEADFORMAT = _T("##%.4d");
const CString DEV_STR_HEAD = _T("##");
///设备号长度
const LONG DEV_LONG_MNLENGTH = 14;
///数据帧最小长度
const LONG DEV_LONG_MINLEN = 10;
///提取现场时间
const CString DEV_STR_CN1011 = _T("CN=1011");
///设置现场时间
const CString DEV_STR_CN1012 = _T("CN=1012");
///远程操作下端设备
const CString DEV_STR_CN3012 = _T("CN=3012");
///设置设备采样时间周期
const CString DEV_STR_CN3014 = _T("CN=3014");
///读历史数据
const CString DEV_STR_CN3016 = _T("CN=3016");
///提取实时数据间隔
const CString DEV_STR_CN1061 = _T("CN=1061");
///设置心跳\实时数据间隔
const CString DEV_STR_CN1062 = _T("CN=1062");
///设置访问密码
const CString DEV_STR_CN1072 = _T("CN=1072");
///取实时历史数据
const CString DEV_STR_CN2011 = _T("CN=2011");
///取分钟数据
const CString DEV_STR_CN2051 = _T("CN=2051");
///取小时数据
const CString DEV_STR_CN2061 = _T("CN=2061");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -