📄 zrsmsdk.h
字号:
#ifndef __ZRSMSDK_H
#define __ZRSMSDK_H
/************************************************************************
主设备属性段的名称定义
************************************************************************/
#define DEVICE_MANFT "DEVICE_MANFT" //厂商代号
#define DEVICE_TYPE "DEVICE_TYPE" //设备类型
#define DEVICE_MODE "DEVICE_MODE" //设备型号
#define DEVICE_HARDVER "DEVICE_HARDVER" //设备硬件版本号
#define DEVICE_SOFTVER "DEVICE_SOFTVER" //设备软件版本号
#define DEVICE_SNCODE "DEVICE_SNCODE" //设备SN
#define DEVICE_NAME "DEVICE_NAME" //设备名称
#define DEVICE_PASS "DEVICE_PASS" //设备密码
#define DEVICE_ID "DEVICE_ID" //设备ID
#define DEVICE_MODBUS_OP "DEVICE_MODBUS_OP" //串口modbus协议rtu ascii
#define DEVICE_BAUD "DEVICE_BAUD" //通讯波特率
#define DEVICE_DATA_B "DEVICE_DATA_B" //通讯数据位
#define DEVICE_STOP_B "DEVICE_STOP_B" //通讯停止位
#define DEVICE_PARITY "DEVICE_PARITY" //通讯校验位
#define DEVICE_CHECK_ENABLE "DEVICE_CHECK_ENABLE" //CUSTOM-ASCII模式下“校验和”使能
#define DEVICE_REBOOT_COUNT "DEVICE_REBOOT_COUNT" //设备复位次数
// 特殊配置项,仅部分模块支持,如RSM-4017
#define CFG_AI_FORMAT "CFG_AI_FORMAT" //CUSTOM-ASCII模式下AI单位
/************************************************************************
子设备数据采集段的名称定义
有后缀"d"的表示有多个,为:0...n个
如:IO_DOUT_0,IO_DOUT_1分别表示数字输出通道0数据,和通道1数据
没有后缀的表示单个,
如:IO_AOUT_SYNC表示同步输出控制数据
************************************************************************/
#define IO_AI_d "IO_AI_" //模拟输入数据_d
#define IO_AO_d "IO_AO_" //模拟输出数据_d
#define IO_AO_VOLTAGE_d "IO_AO_VOLTAGE_" //模拟输出电压
#define IO_AO_ELECTRIC_d "IO_AO_ELECTRIC_" //模拟输出电流
#define IO_DI_d "IO_DI_" //数字输入数据_d
#define IO_DO_d "IO_DO_" //数字输出数据_d
#define IO_COUNT_d "IO_COUNT_" //计数器当前值_d
#define IO_DI_COUNT_d "IO_DI_COUNT_" //数字输入计数数据_d
/************************************************************************
设备配置信息属性段的名称定义
有后缀"_d"的表示有多个,为:0...n个
如:CFG_DOUT_MODE_0,IO_DOUT_MODE_1分别表示数字输出通道0和1的输出类型
没有后缀的表示单个,
如:IO_AOUT_SYNC表示同步输出控制数据
************************************************************************/
#define CFG_AI_TYPE_d "CFG_AI_TYPE_" //模拟输出类型_d
#define CFG_AI_MAX_d "CFG_AI_MAX_" //报警上限_d
#define CFG_AI_MIN_d "CFG_AI_MIN_" //报警下限_d
#define CFG_AI_ENABLE_d "CFG_AI_ENABLE_" //模拟输入是否工作
#define CFG_AI_MAX_EX_ON_d "CFG_AI_MAX_EX_ON_" //模拟输入超上限是否工作
#define CFG_AI_MIN_EX_ON_d "CFG_AI_MIN_EX_ON_" //模拟输入超上限是否工作
#define CFG_AO_SLOPE_d "CFG_AO_SLOPE_" //模拟输出通道输出斜率
#define CFG_AO_OUT_MODE_d "CFG_AO_OUT_MODE_" //模拟输出通道输出类型
#define CFG_AO_OUT_ENABLE_d "CFG_AO_OUT_ENABLE_" //模拟输出通道控制
#define CFG_AO_INIT_SAFE_VAL_d "CFG_AO_INIT_SAFE_VAL_" //模拟输出通道安全启动值
#define CFG_AO_MATCH_OUT_VAL_d "CFG_AO_MATCH_OUT_" //模拟输出通道紧急输出值
#define CFG_AO_SYN_OUT_VAL_d "CFG_AO_SYN_OUT_VAL_" //模拟输出通道同步输出值
#define CFG_AO_SYN_ENABLE_d "CFG_AO_SYN_ENABLE_" //模拟输出通道同步使能
#define CFG_AO_4MA_ADJUST_d "CFG_AO_4MA_ADJUST_" //模拟输出通道4mA校正参数
#define CFG_AO_20MA_ADJUST_d "CFG_AO_20MA_ADJUST_" //模拟输出通道20mA校正参数
#define CFG_AO_SEQUENCE_CTL "CFG_AO_SEQUENCE_CTL" //模拟输出通道顺序输出使能控制
#define CFG_AO_SEQUENCE_TIMES "CFG_AO_SEQUENCE_TIMES" //模拟输出通道顺序输出循环次数
#define CFG_AO_OUT_DELAY_d "CFG_AO_OUT_DELAY_" //模拟输出通道输出间隔延时
#define CFG_AO_OUT_START_VAL_d "CFG_AO_OUT_START_VAL_" //模拟输出通道顺序输出通道起始输出值
#define CFG_AO_OUT_END_VAL_d "CFG_AO_OUT_END_VAL_" //模拟输出通道顺序输出通道停止输出值
#define CFG_AO_CHNL_SEQUENCE_d "CFG_AO_CHNL_SEQUENCE_" //模拟输出通道顺序
#define CFG_AO_OUT_ROTATE_d "CFG_AO_OUT_ROTATE_" //模拟输出通道循环翻转使能
#define CFG_AO_SYN_OUT_ENABLE "CFG_AO_SYN_OUT_ENABLE" //模拟输出通道同步输出使能
#define CFG_DO_SCAN "CFG_DO_SCAN" //数字输出的时间间隔
#define CFG_DO_MODE_d "CFG_DO_MODE_" //数字输出工作模式(关闭或打开)_d
#define CFG_DO_DEFAULT_d "CFG_DO_DEFAULT_" //数字输出安全值_d
#define CFG_DO_SHIELD_d "CFG_DO_SHIELD_" //数字输出屏蔽_d
#define CFG_DO_SHIELD_PARA_d "CFG_DO_SHIELD_PARA_" //数字输出屏蔽参数_d
#define CFG_DO_EX_HIGLOW_d "CFG_DO_EX_HIGLOW_" //当输入超限时,输出为高电平或是为低电平
#define CFG_DO_TRIG_OUT_d "CFG_DO_TRIG_OUT_LEVEL_"// DO端口触发输出电平
#define CFG_DI_TRIG_ENABLE "CFG_DI_TRIG_ENABLE" //DI同步触发使能
#define CFG_DI_IN_MODE_d "CFG_DI_MODE_" //数字输入类型
#define CFG_DI_SYN_MATCH_VAL_d "CFG_DI_TRIG_MATCH_" //DI端口触发匹配电平
#define CFG_DI_EVENT_CTL_d "CFG_DI_EVENT_CTL_" //数字输入事件控制_d
#define CFG_DI_EVENT_COUNT_d "CFG_DI_EVENT_COUNT_" //数字输入计数_d
//发送广播搜索命令
long __stdcall ZR_EthSearchAll();
//往指定的IP地址发送搜索命令
long __stdcall ZR_EthSearchByIP(char* szIP);
//接收设备对搜索命令的响应
long __stdcall ZR_EthGetSearchDev( char *szIP,
char *pszMAC,
int *pnFrimVer,
int *pnDevType,
int *pnDveMode,
int *pnIPMode,
int *pnCmdPort);
//指定ID进行搜索
long __stdcall ZR_RSSearchByID( int iID,
int iRtuAscii,
char *szCom,
int iBautRate,
int iByteSize ,
int iParity,
int iStopBits,
int iDtrCtl ,
int iRtsCtl,
int iCtsCtl,
int iDsrCtl,
int iResponse );
//接收对搜索命令的响应
long __stdcall ZR_RSGetSearch( BYTE *pnID,
int *pnManuFact,
int *pnDevType,
int *pnDevMode,
int *pnHardVer,
int *pnSoftVer,
BYTE *pSn);
//设置要操作的设备
HANDLE __stdcall ZR_EthSetOperateDev( char *szIp,
char *szMACaddr,
int nType,
int nMode);
//设置要操作的设备
HANDLE __stdcall ZR_RSSetOperateDev( int iID,
int nType,
int nMode,
int iRtuAscii,
char *szCom,
int iBautRate,
int iByteSize,
int iParity,
int iStopBits,
int iDtrCtl,
int iRtsCtl,
int iCtsCtl,
int iDsrCtl,
int iResponse);
void __stdcall ZR_UnOperateDev(HANDLE hDev);
long __stdcall ZR_LoginDev(HANDLE hDev, char* szPwd);
long __stdcall ZR_RebootDev(HANDLE hDev);
//读取主设备配置信息
long __stdcall ZR_ReadDevProperty(HANDLE hDev);
//获取主设备配置信息
long __stdcall ZR_GetDevProperty( HANDLE hDev,
char *szPropertyName,
char *szPropertyData);
//清空修改的配置,在配置前调用
long __stdcall ZR_ResetDevProperty(HANDLE hDev);
//设置主模块的某个属性值
long __stdcall ZR_ModifyDevProperty( HANDLE hDev,
char *szPropertyName,
char *szPropertyData);
//提交修改
long __stdcall ZR_SubmitDevProperty(HANDLE hDev, char *szPWD);
//读取子模块采集到的数据
long __stdcall ZR_ReadDevData( HANDLE hDev );
//获取子模块的具体某个属性
long __stdcall ZR_GetDevData( HANDLE hDev,
char *szDataName,
char *szDataData);
//重设置子模块要修改的属性,用于修改前
long __stdcall ZR_ResetDevData(HANDLE hDev);
//修改子模块的采集数据,输出模块
long __stdcall ZR_ModifyDevData( HANDLE hDev,
char *szDataName,
char *szDataData);
//提交更改
long __stdcall ZR_SubmitDevData(HANDLE hMain);
//下面四个函数在读取中会把返回的协议头去掉
//返回值有所不同
//协议式的,0表示成功,否则为错误码
long __stdcall ZR_ReadPropByAddr(HANDLE hDev, WORD wAddr, WORD wLen, BYTE* pBuf, DWORD *pReadedLen);
long __stdcall ZR_WritePropByAddr(HANDLE hDev, WORD wAddr, WORD wLen, BYTE* pBuf);
long __stdcall ZR_ReadDataByAddr(HANDLE hDev, WORD wAddr, WORD wLen, BYTE* pBuf, DWORD *pReadedLen);
long __stdcall ZR_WriteDataByAddr(HANDLE hDev, WORD wAddr, WORD wLen, BYTE* pBuf);
//下面这组函数没有把协议的头去掉
//返回值有所不同
//返回的是读或写的字节计数
long __stdcall ZR_SendCmd(HANDLE hDev, BYTE* pBuf, WORD wLen, int iAddCheck=0);
long __stdcall ZR_ReadBuf(HANDLE hDev, BYTE* pBuf, WORD wLen);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -