抓拍机基线接口及C程序
1. IO触发配置
#define MAX_INTERVAL_NUM 4 //最大时间间隔个数
#define NET_DVR_GET_IOINCFG 1070 //获取抓拍机IO输入参数
#define NET_DVR_SET_IOINCFG 1071 //设置抓拍机IO输入参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号为对应IO输入口号
IO触发方式配置
typedef struct tagNET_DVR_IO_INCFG
{
DWORD dwSize;
BYTE byIoInStatus;//输入的IO口状态,0-下降沿,1-上升沿,2-上升沿和下降沿,3-高电平,4-低电平
BYTE byRes[3];//保留字节
}NET_DVR_IO_INCFG, *LPNET_DVR_IO_INCFG;
单IO触发抓拍功能配置
#define NET_DVR_GET_SNAPCFG 1082//获取单IO触发抓拍功能配置
#define NET_DVR_SET_SNAPCFG 1083//设置单IO触发抓拍功能配置
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号对应为单IO触发抓拍功能组号
typedef struct tagNET_DVR_SNAPCFG
{
DWORD dwSize;
BYTE byRelatedDriveWay;//触发IO关联的车道号,取值范围[0,9]
BYTE bySnapTimes; //线圈抓拍次数,0-不抓拍,非0-连拍次数,目前最大5次
WORD wSnapWaitTime; //抓拍等待时间,单位ms,取值范围[0,60000]
WORD wIntervalTime[MAX_INTERVAL_NUM];//连拍间隔时间,ms,取值范围[0,60000]
BYTE byRes2[24];//保留字节
}NET_DVR_SNAPCFG, *LPNET_DVR_SNAPCFG;
2. 闪光灯配置
#define NET_DVR_GET_IOOUTCFG 1072 //获取抓拍机IO输出参数
#define NET_DVR_SET_IOOUTCFG 1073 //设置抓拍机IO输出参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号为对应IO输出口号
闪光灯配置
typedef struct tagNET_DVR_IO_OUTCFG
{
DWORD dwSize;
BYTE byDefaultStatus;//IO默认状态:0-低电平,1-高电平
BYTE byIoOutStatus;//IO起效时状态:0-低电平,1-高电平,2-脉冲
WORD wAheadTime;//输出IO 提前时间,[0,300],单位us
DWORD dwTimePluse;//脉冲间隔时间,单位us
DWORD dwTimeDelay;//IO有效持续时间,单位us
BYTE byFreqMulti; //倍频,数值范围[1,15]
BYTE byDutyRate; //占空比,[0,40%]
BYTE byRes[2];
}NET_DVR_IO_OUTCFG, *LPNET_DVR_IO_OUTCFG;
闪光灯配置功能,按每个IO独立配置
#define NET_DVR_GET_FLASHCFG 1074 //获取IO闪光灯输出参数
#define NET_DVR_SET_FLASHCFG 1075 //设置IO闪光灯输出参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号为对应IO输出口号
typedef struct tagNET_DVR_FLASH_OUTCFG
{
DWORD dwSize;
BYTE byMode;//闪光灯闪烁模式,0-不闪,1-闪,2-关联闪,3-轮闪
BYTE byRelatedIoIn;//闪光灯关联的输入IO号(关联闪时此参数有效,暂时保留)
BYTE byRecognizedLane; /*关联的IO号,按位表示,bit0表示IO1是否关联,0-不关联,1-关联*/
BYTE byDetectBrightness;/*自动检测亮度使能闪光灯0-不检测;1-检测*/
BYTE byBrightnessThreld;/*使能闪光灯亮度阈值,范围[0-100],高于阈值闪*/
BYTE byStartHour; //开始时间-小时,取值范围0-23
BYTE byStartMinute; //开始时间-分,取值范围0-59
BYTE byEndHour; //结束时间-小时,取值范围0-23
BYTE byEndMinute; //结束时间-分,取值范围0-59
BYTE byFlashLightEnable; //设置闪光灯时间使能:0-关;1-开
BYTE byRes[2];
}NET_DVR_FLASH_OUTCFG, *LPNET_DVR_FLASH_OUTCFG;
3. 红绿灯功能
#define MAX_INTERVAL_NUM 4 //最大时间间隔个数
#define NET_DVR_GET_LIGHTSNAPCFG 1076 //获取抓拍机红绿灯参数
#define NET_DVR_SET_LIGHTSNAPCFG 1077 //设置抓拍机红绿灯参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号为对应红绿灯组号
typedef struct tagNET_DVR_LIGHTSNAPCFG
{
DWORD dwSize;
BYTE byLightIoIn;//红绿灯的IO号,从1开始
BYTE byTrigIoIn;//触发的IO号,从1开始
BYTE byRelatedDriveWay;//触发IO关联的车道号,取值范围[0,9]
BYTE byTrafficLight; //0-高电平红灯,低电平绿灯;1-高电平绿灯,低电平红灯
BYTE bySnapTimes1; //红灯抓拍次数1,0-不抓拍,非0-连拍次数,最大5次
BYTE bySnapTimes2; //绿灯抓拍次数2,0-不抓拍,非0-连拍次数,最大5次
BYTE byRes1[2];
WORD wIntervalTime1[MAX_INTERVAL_NUM];//红灯连拍间隔时间,ms,取值范围[67,60000]
WORD wIntervalTime2[MAX_INTERVAL_NUM];//绿灯连拍间隔时间,ms,取值范围[67,60000]
BYTE byRecord;//闯红灯周期录像标志,0-不录像,1-录像
BYTE bySessionTimeout;//闯红灯周期录像超时时间(秒),取值范围[0,100]
BYTE byPreRecordTime;//闯红灯录像片段预录时间(秒),取值范围[0,100]
BYTE byVideoDelay;//闯红灯录像片段延时时间(秒),取值范围[0,100]
BYTE byRes2[32];//保留字节
}NET_DVR_LIGHTSNAPCFG, *LPNET_DVR_LIGHTSNAPCFG;
4. 测速功能(2个IO输入一组)
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,对应组号
#define MAX_INTERVAL_NUM 4 //最大时间间隔个数
#define NET_DVR_GET_MEASURESPEEDCFG 1078 //获取抓拍机测速参数
#define NET_DVR_SET_MEASURESPEEDCFG 1079 //设置抓拍机测速参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,通道号为对应测速组号
typedef struct tagNET_DVR_MEASURESPEEDCFG
{
DWORD dwSize;
BYTE byTrigIo1; //测速第1线圈,从1开始
BYTE byTrigIo2; //测速第2线圈,从1开始
BYTE byRelatedDriveWay;//触发IO关联的车道号,取值范围[0,9]
BYTE byTestSpeedTimeOut;//测速模式超时时间,单位s,取值范围[0,255]
DWORD dwDistance;//线圈距离,cm,取值范围[0,20000]
BYTE byCapSpeed;//测速模式起拍速度,单位km/h,取值范围[0,255]
BYTE bySpeedLimit;//限速值,单位km/h,取值范围[0,255]
BYTE bySnapTimes1; //线圈1抓拍次数,0-不抓拍,非0-连拍次数,最大5次
BYTE bySnapTimes2; //线圈2抓拍次数,0-不抓拍,非0-连拍次数,最大5次
WORD wIntervalTime1[MAX_INTERVAL_NUM];//线圈1连拍间隔时间,ms,取值范围[67,20000]
WORD wIntervalTime2[MAX_INTERVAL_NUM];//线圈2连拍间隔时间,ms,取值范围[67,20000]
BYTE byRes[32];//保留字节
}NET_DVR_MEASURESPEEDCFG, *LPNET_DVR_MEASURESPEEDCFG;
5. 视频参数配置
#define NET_DVR_GET_CCDPARAMCFG 1067 //IPC获取CCD参数配置
#define NET_DVR_SET_CCDPARAMCFG 1068 //IPC设置CCD参数配置
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,不需要通道号
视频参数配置
typedef struct tagNET_DVR_VIDEOEFFECT
{
BYTE byBrightnessLevel; /*0-100*/
BYTE byContrastLevel; /*0-100*/
BYTE bySharpnessLevel; /*0-100*/
BYTE bySaturationLevel; /*0-100*/
BYTE byHueLevel; /*0-100,(保留)*/
BYTE byRes[3];
}NET_DVR_VIDEOEFFECT, *LPNET_DVR_VIDEOEFFECT;
增益配置
typedef struct tagNET_DVR_GAIN
{
BYTE byGainLevel; /*增益:0-100*/
BYTE byGainUserSet; /*用户自定义增益;0-100,对于抓拍机,是CCD模式下的抓拍增益*/
BYTE byRes[2];
DWORD dwMaxGainValue;/*最大增益值,单位dB*/
}NET_DVR_GAIN, *LPNET_DVR_GAIN;
白平衡配置
typedef struct tagNET_DVR_WHITEBALANCE
{
BYTE byWhiteBalanceMode; /*0手动白平衡; 1自动白平衡1(范围小); 2 自动白平衡2(范围宽,2200K-15000K);3自动控制3*/
BYTE byWhiteBalanceModeRGain; /*手动白平衡时有效,手动白平衡 R增益*/
BYTE byWhiteBalanceModeBGain; /*手动白平衡时有效,手动白平衡 B增益*/
BYTE byRes[5];
}NET_DVR_WHITEBALANCE, *LPNET_DVR_WHITEBALANCE;
曝光控制
typedef struct tagNET_DVR_EXPOSURE
{
BYTE byExposureMode; /*0 手动曝光 1自动曝光*/
BYTE byRes[3];
DWORD dwVideoExposureSet; /*自定义视频曝光时间*/
DWORD dwExposureUserSet; /* 自定义曝光时间,在抓拍机上应用时,CCD模式时是抓拍快门速度*/
DWORD dwRes;
} NET_DVR_EXPOSURE, *LPNET_DVR_EXPOSURE;
宽动态配置
typedef struct tagNET_DVR_WDR
{
BYTE byWDREnabled; /*宽动态:0 dsibale 1 enable 2 auto*/
BYTE byWDRLevel1; /*0-F*/
BYTE byWDRLevel2; /*0-F*/
BYTE byWDRContrastLevel; /*0-100*/
BYTE byRes[16];
} NET_DVR_WDR, *LPNET_DVR_WDR;
日夜转换功能配置
typedef struct tagNET_DVR_DAYNIGHT
{
BYTE byDayNightFilterType; /*日夜切换:0 day,1 night,2 auto */
BYTE bySwitchScheduleEnabled; /*0 dsibale 1 enable,(保留)*/
//模式1(保留)
BYTE byBeginTime; /*0-100*/
BYTE byEndTime; /*0-100*/
//模式2
BYTE byDayToNightFilterLevel; //0-7
BYTE byNightToDayFilterLevel; //0-7
BYTE byDayNightFilterTime;//(60秒)
BYTE byRes[5];
} NET_DVR_DAYNIGHT, *LPNET_DVR_DAYNIGHT;
Gamma校正
typedef struct tagNET_DVR_GAMMACORRECT
{
BYTE byGammaCorrectionEnabled; /*0 dsibale 1 enable*/
BYTE byGammaCorrectionLevel; /*0-100*/
BYTE byRes[6];
} NET_DVR_GAMMACORRECT, *LPNET_DVR_GAMMACORRECT;
背光补偿配置
typedef struct tagNET_DVR_BACKLIGHT
{
BYTE byBacklightMode; /*背光补偿:0 OFF 1 UP、2 DOWN、3 LEFT、4 RIGHT、5 MIDDLE、6 USERSET*/
BYTE byBacklightLevel; /*0x0-0xF*/
BYTE byRes1[2];
DWORD dwPositionX1; //(X坐标1)
DWORD dwPositionY1; //(Y坐标1)
DWORD dwPositionX2; //(X坐标2)
DWORD dwPositionY2; //(Y坐标2)
BYTE byRes2[4];
} NET_DVR_BACKLIGHT, *LPNET_DVR_BACKLIGHT;
数字降噪功能
typedef struct tag NET_DVR_NOISEREMOVE
{
BYTE byDigitalNoiseRemoveEnable; /*0-不启用,1-普通模式数字降噪,2-专家模式数字降噪*/
BYTE byDigitalNoiseRemoveLevel; /*普通模式数字降噪级别:0x0-0xF*/
BYTE bySpectralLevel; /*专家模式下空域强度:0-100*/
BYTE byTemporalLevel; /*专家模式下时域强度:0-100*/
BYTE byRes[4];
} NET_DVR_NOISEREMOVE, *LPNET_DVR_NOISEREMOVE;
//CMOS模式下前端镜头配置
typedef struct tagNET_DVR_CMOSMODCFG
{
BYTE byCaptureMod; //抓拍模式:0-抓拍模式1;1-抓拍模式2
BYTE byBrightnessGate;//亮度阈值
BYTE byCaptureGain1; //抓拍增益1,0-100
BYTE byCaptureGain2; //抓拍增益2,0-100
DWORD dwCaptureShutterSpeed1;//抓拍快门速度1
DWORD dwCaptureShutterSpeed2;//抓拍快门速度2
BYTE byRes[4];
}NET_DVR_CMOSMODECFG, *LPNET_DVR_CMOSMODECFG;
//2009-9-23 IPC CCD参数配置
typedef struct tagNET_DVR_CAMERAPARAMCFG
{
DWORD dwSize;
NET_DVR_VIDEOEFFECT struVideoEffect;/*亮度、对比度、饱和度、锐度、色调*/
NET_DVR_GAIN struGain;/*自动增益*/
NET_DVR_WHITEBALANCE struWhiteBalance;/*白平衡*/
NET_DVR_EXPOSURE struExposure; /*曝光控制*/
NET_DVR_GAMMACORRECT struGammaCorrect;/*Gamma校正*/
NET_DVR_WDR struWdr;/*宽动态*/
NET_DVR_DAYNIGHT struDayNight;/*日夜转换*/
NET_DVR_BACKLIGHT struBackLight;/*背光补偿*/
NET_DVR_NOISEREMOVE struNoiseRemove;/*数字降噪*/
BYTE byPowerLineFrequencyMode; /*0-50HZ; 1-60HZ*/
BYTE byIrisMode; /*0 自动光圈 1手动光圈*/
BYTE byMirror ; /* 镜像:0 off,1- leftright,2- updown,3-center */
BYTE byDigitalZoom; /*数字缩放:0 dsibale 1 enable*/
BYTE byDeadPixelDetect; /*坏点检测,0 dsibale 1 enable*/
BYTE byBlackPwl;/*黑电平补偿 , 0-255*/
BYTE byEptzGate;// EPTZ开关变量: 0不启用电子云台1启用电子云台
BYTE byLocalOutputGate; //本地输出开关变量
//0-本地输出关闭1-本地BNC输出打开 2-HDMI输出关闭
//20-HDMI_720P50输出开
//21-HDMI_720P60输出开
//22-HDMI_1080I60输出开
//23-HDMI_1080I50输出开
//24-HDMI_1080P24输出开
//25-HDMI_1080P25输出开
//26-HDMI_1080P30输出开
//27-HDMI_1080P50输出开
//28-HDMI_1080P60输出开
BYTE byCoderOutputMode;//编码器fpga输出模式直通3像素搬家
BYTE byRes1[4];
BYTE byDynamicContrastEN; //动态对比度增强 0-不增强,1-增强
BYTE byDynamicContrast; //动态对比度 0-100
BYTE byJPEGQuality; //JPEG图像质量 0-100
NET_DVR_CMOSMODECFG struCmosModeCfg;//CMOS模式下前端参数配置,镜头模式从能力集获取
BYTE byRes2[4];
}NET_DVR_CAMERAPARAMCFG, *LPNET_DVR_CAMERAPARAMCFG;
6. 报警上传结构
使用NET_DVR_SetDVRMessageCallBack_V30接口设置回调后,用NET_DVR_SetupAlarmChan_V30接口对设备进行布防,报警信息通过回调函数获取
#define MAX_LICENSE_LEN 16 //车牌号最大长度
//车牌颜色
typedef enum _VCA_PLATE_COLOR_
{
VCA_BLUE_PLATE = 0, //蓝色车牌
VCA_YELLOW_PLATE, //黄色车牌
VCA_WHITE_PLATE, //白色车牌
VCA_BLACK_PLATE //黑色车牌
}VCA_PLATE_COLOR;
//车牌类型
typedef enum _VCA_PLATE_TYPE_
{
VCA_STANDARD92_PLATE = 0, //标准民用车与军车
VCA_STANDARD02_PLATE, //02式民用车牌
VCA_WJPOLICE_PLATE, //武警车
VCA_JINGCHE_PLATE, //警车
STANDARD92_BACK_PLATE, //民用车双行尾牌
VCA_SHIGUAN_PLATE, //使馆车牌
VCA_NONGYONG_PLATE, //农用车
VCA_MOTO_PLATE //摩托车
}VCA_PLATE_TYPE;
/*归一化,数值为当前画面的百分比大小*1000, 精度为小数点后三位*/
typedef struct tagNET_DVR_VCA_RECT_
{
float fX; /* 边界框左上角点的X轴坐标,取值范围[0.001,1] */
float fY; /* 边界框左上角点的Y轴坐标,取值范围[0.001,1] */
float fWidth; /* 边界框的宽度,取值范围[0.001,1] */
float fHeight; /* 边界框的高度,取值范围[0.001,1] */
}NET_VCA_RECT, *LPNET_DVR_VCA_RECT;
//车牌识别结果子结构
typedef struct tagNET_DVR_PLATE_INFO_
{
BYTE byPlateType; //车牌类型
BYTE byColor; //车牌颜色
BYTE byBright; //车牌亮度
BYTE byLicenseLen; //车牌字符个数
BYTE byEntireBelieve; //整个车牌的置信度,0-100
BYTE byRes[35]; //保留
NET_VCA_RECT struPlateRect; //车牌位置
char sLicense[MAX_LICENSE_LEN]; //车牌号码
BYTE byBelieve[MAX_LICENSE_LEN]; //各个识别字符的置信度,如检测到车牌"浙A12345", 置信度为,20,30,40,50,60,70,则表示"浙"字正确的可能性只有%,"A"字的正确的可能性是%
}NET_DVR_PLATE_INFO, *LPNET_DVR_PLATE_INFO;
//车辆信息
typedef struct tagNET_DVR_VEHICLE_INFO_
{
DWORD dwIndex; //车辆序号
BYTE byVehicleType; //车辆类型,0 表示其它车型,1 表示小型车,2 表示大型车
BYTE byColorDepth; //车身颜色深浅,0-深色,1-浅色
BYTE byColor; //车身颜色,0-其他色,1-白色,2-银色,3-灰色,4-黑色,5-红色,6-深蓝,7-蓝色,8-黄色,9-绿色,10-棕色,11-粉色;12-紫色;
BYTE byRes1; //保留
WORD wSpeed; //车辆速度,单位km/h
WORD wLength; //车身长度
BYTE byIllegalType; //0-正常;1-低速2-超速3-逆行;4-闯红灯
BYTE byRes[35]; //保留
}NET_DVR_VEHICLE_INFO, *LPNET_DVR_VEHICLE_INFO;
//车牌检测结果
typedef struct tagNET_DVR_PLATE_RESULT_
{
DWORD dwSize; //结构长度
BYTE byResultType; //0-通过视频识别,1-通过图像进行识别
BYTE byChanIndex; //通道号
BYTE byRes1[2]; //保留
DWORD dwRelativeTime; //相对时间点(保留)
BYTE byAbsTime[32]; //绝对时间点,yyyymmddhhmmssxxx,e.g.20090810235959999(毫秒)
DWORD dwPicLen; //图片长度
DWORD dwPicPlateLen; //车牌小图片长度
DWORD dwVideoLen; //录像内容长度
BYTE byTrafficLight; //0-非红绿灯抓拍,1-绿灯时抓拍;2-红灯时抓拍
BYTE byPicNum; //连拍的图片序号
BYTE byDriveChan; //触发车道号
BYTE byRes2[33]; //保留
NET_DVR_PLATE_INFO struPlateInfo; //车牌信息结构
NET_DVR_VEHICLE_INFO struVehicleInfo; //车辆信息
BYTE *pBuffer1; // 用于保存获取到的图像或者视频,如果不想获得图片或视频信息,传NULL
BYTE *pBuffer2; // 当识别结果为图像识别结果时,指向车牌图片的指针
}NET_DVR_PLATE_RESULT, *LPNET_DVR_PLATE_RESULT;
//后面紧跟图片数据和录像数据,只传一种,图片数据为场景图片+车牌小图片
视频长度为0xffffffff时,表示视频内容异常,此时只上传报警信息,后面无视频内容,指向视频内容的指针为NULL
//车牌报警NET_DVR_PLATE_RESULT
#define COMM_UPLOAD_ PLATE_RESULT 0x2800 //上传车牌信息
7. 手动触发抓拍
//抓拍触发请求结构(保留)
typedef struct tagNET_DVR_MANUALSNAP
{
BYTE byRes[24]; //保留
}NET_DVR_MANUALSNAP, *LPNET_DVR_MANUALSNAP;
BOOL NET_DVR_ManualSnap(LONG lUserID, LPNET_DVR_MANUALSNAP lpInter, LPNET_DVR_PLATE_RESULT lpOuter);
功能:设置手动触发抓拍
参数说明:
输入:
lUserID: NET_DVR_Login()的返回值
lpInter: NET_DVR_MANUALSNAP结构指针
输出:
lpOuter:指向NET_DVR_PLATE_RESULT结构的指针
返回值:
TRUE表示成功,FALSE表示失败
8. 图像叠加信息配置
#define NET_DVR_GET_IMAGEOVERLAYCFG 1080//获取抓拍机图像叠加信息参数
#define NET_DVR_SET_IMAGEOVERLAYCFG 1081//设置抓拍机图像叠加信息参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置
typedef struct tagNET_DVR_IMAGEOVERLAYCFG
{
DWORD dwSize;
BYTE byOverlayInfo;//叠加使能开关,0-不叠加,1-叠加
BYTE byOverlayMonitorInfo;//是否叠加监测点信息,0-不叠加,1-叠加
BYTE byOverlayTime;//是否叠加时间,0-不叠加,1-叠加
BYTE byOverlaySpeed;//是否叠加速度,0-不叠加,1-叠加
BYTE byOverlaySpeeding;//是否叠加超速比例,0-不叠加,1-叠加
BYTE byOverlayLimitFlag;//是否叠加限速标志,0-不叠加,1-叠加
BYTE byOverlayPlate;//是否叠加车牌,0-不叠加,1-叠加
BYTE byOverlayColor;//是否叠加车身颜色,0-不叠加,1-叠加
BYTE byOverlayLength;//是否叠加车长,0-不叠加,1-叠加
BYTE byOverlayType;//是否叠加车型,0-不叠加,1-叠加
BYTE byOverlayColorDepth;//是否叠加车身颜色深浅,保留
BYTE byOverlayDriveChan;//是否叠加车道,0-不叠加,1-叠加
BYTE byOverlayMilliSec; //叠加毫秒信息 0-不叠加,1-叠加
BYTE byOverlayIllegalInfo; //叠加违章信息 0-不叠加,1-叠加
BYTE byOverlayRedOnTime; //叠加红灯已亮时间 0-不叠加,1-叠加
BYTE byRes1[5]; //保留
BYTE byMonitorInfo1[32]; //监测点信息1
BYTE byMonitorInfo2[44]; //检测点信息2
BYTE byRes2[52]; //保留
}NET_DVR_IMAGEOVERLAYCFG, *LPNET_DVR_IMAGEOVERLAYCFG;
9. 能力集接口
typedef struct tagNET_DVR_SNAP_ABILITY
{
DWORD dwSize;
BYTE byIoInNum;//IO输入口数
BYTE byIoOutNum;//IO输出口数
BYTE bySingleSnapNum;//单IO触发组数
BYTE byLightModeArrayNum;//红绿灯模式组数
BYTE byMeasureModeArrayNum;//测速模式组数
BYTE byPlateEnable; //车牌识别能力,0-没有,1-有
BYTE byLensMode;//前端镜头模式,0-CCD,1-CMOS
BYTE byRes[29];
} NET_DVR_SNAP_ABILITY, *L PNET_DVR_SNAP_ABILITY;
#define SNAPCAMERA_ABILITY 0x300 //抓拍机能力集
BOOL NET_DVR_GetDeviceAbility(LONG lUserID, DWORD dwAbilityType, char* szInBuf, DWORD dwInLength, char* szOutBuf, DWORD dwOutLength);
函数描述: 获取设备能力描述信息
输入参数:
lUserID: NET_DVR_Login()的返回值
dwAbilityType: 能力类型,具体见宏定义,不同的类型对应的输入和输出缓冲区的内容不一样
pInBuf: 输入缓冲区指针(按照设备规定的能力参数的描述方式组合,可以是XML文本字符串指针或结构体指针形式)
dwInLength: 输入缓冲区的长度
dwOutLength: 用于接收数据的输出缓冲区的长度
输出参数:
pOutBuf:输出缓冲区指针
返回值:
TRUE表示成功,FALSE表示失败
10. 虚拟线圈配置
#define MAX_VL_NUM 5 //最大虚拟线圈个数
#define NET_DVR_GET_VTPPARAM 1084 //获取虚拟线圈参数
#define NET_DVR_SET_VTPPARAM 1085 //设置虚拟线圈参数
typedef struct tagNET_DVR_TRIGCOORDINATE
{
WORD wTopLeftX; /*线圈左上角横坐标(2个字节),默认为160*/
WORD wTopLeftY; /*线圈左上角纵坐标(2个字节),默认为210*/
WORD wWdith; /*线圈宽度(2个字节),默认为1000*/
WORD wHeight; /*线圈高度(2个字节),默认为45*/
} NET_DVR_TRIGCOORDINATE, *LPNET_DVR_TRIGCOORDINATE;
typedef enum _PROVINCE_CITY_IDX_
{
ANHUI_PROVINCE = 0, //安徽
AOMEN_PROVINCE = 1, //澳门
BEIJING_PROVINCE = 2, //北京
CHONGQING_PROVINCE = 3, //重庆
FUJIAN_PROVINCE = 4, //福建
GANSU_PROVINCE = 5, //甘肃
GUANGDONG_PROVINCE = 6, //广东
GUANGXI_PROVINCE = 7, //广西
GUIZHOU_PROVINCE = 8, //贵州
HAINAN_PROVINCE = 9, //海南
HEBEI_PROVINCE = 10, //河北
HENAN_PROVINCE = 11, //河南
HEILONGJIANG_PROVINCE = 12, //黑龙江
HUBEI_PROVINCE = 13, //湖北
HUNAN_PROVINCE = 14, //湖南
JILIN_PROVINCE = 15, //吉林
JIANGSU_PROVINCE = 16, //江苏
JIANGXI_PROVINCE = 17, //江西
LIAONING_PROVINCE = 18, //辽宁
NEIMENGGU_PROVINCE = 19, //内蒙古
NINGXIA_PROVINCE = 20, //宁夏
QINGHAI_PROVINCE = 21, //青海
SHANDONG_PROVINCE = 22, //山东
SHANXI_JIN_PROVINCE = 23, //山西
SHANXI_SHAN_PROVINCE = 24, //陕西
SHANGHAI_PROVINCE = 25, //上海
SICHUAN_PROVINCE = 26, //四川
TAIWAN_PROVINCE = 27, //台湾
TIANJIN_PROVINCE = 28, //天津
XIZANG_PROVINCE = 29, //西藏
XIANGGANG_PROVINCE = 30, //香港
XINJIANG_PROVINCE = 31, //新疆
YUNNAN_PROVINCE = 32, //云南
ZHEJIANG_PROVINCE = 33 //浙江
}PROVINCE_CITY_IDX;
typedef struct tagNET_DVR_GEOGLOCATION
{
int iRes[2]; /*保留*/
DWORD dwCity; /*城市,详见PROVINCE_CITY_IDX */
}NET_DVR_GEOGLOCATION, *LPNET_DVR_GEOGLOCATION;
//场景模式
typedef enum _SCENE_MODE_
{
UNKOWN_SCENE_MODE = 0, //未知场景模式
HIGHWAY_SCENE_MODE = 1, //高速场景模式
SUBURBAN_SCENE_MODE = 2, //郊区场景模式(保留)
URBAN_SCENE_MODE = 3, //市区场景模式
TUNNEL_SCENE_MODE = 4 //隧道场景模式(保留)
}SCENE_MODE;
typedef struct tagNET_DVR_VTPARAM
{
DWORD dwSize;
BYTE byEnable;//使能位,是否使用虚拟线圈,0-不使用,1-使用
BYTE byIsDisplay;//是否显示虚拟线圈
BYTE byLoopPos; //晚间触发线圈的偏向:0-正向,1-负向(保留)
BYTE bySnapGain; /*抓拍增益*/
DWORD dwSnapShutter; /*抓拍快门速度*/
NET_DVR_TRIGCOORDINATE struTrigCoordinate;
NET_DVR_TRIGCOORDINATE struRes[MAX_VL_NUM];
BYTE byTotalLaneNum;/*视频触发的车道数1*/
BYTE byPolarLenType; /*偏振镜类型,:不加偏振镜;1:加施耐德偏振镜。*/
BYTE byDayAuxLightMode; /*白天辅助照明模式,:无辅助照明;1:LED灯照明; 2:闪光灯照明。0*/
BYTE byLoopToCalRoadBright; /*用以计算路面亮度的车道(虚拟线圈)*/
BYTE byRoadGrayLowTh; /*路面亮度低阈值初始化值,默认值为1*/
BYTE byRoadGrayHighTh; /*路面亮度高阈值初始化值,默认值为140*/
WORD wLoopPosBias; /*晚间触发线圈位移,默认值为30*/
DWORD dwHfrShtterInitValue; /*连续图像曝光时间的初始值,单位us,默认值为2000*/
DWORD dwSnapShtterInitValue; /*抓拍图像曝光时间的初始值,默认值为500*/
DWORD dwHfrShtterMaxValue; /*连续图像曝光时间的最大值,默认值为20000*/
DWORD dwSnapShtterMaxValue; /*抓拍图像曝光时间的最大值,默认值为1500*/
DWORD dwHfrShtterNightValue; /*晚间连续图像曝光时间的设置值,默认值为3000*/
DWORD dwSnapShtterNightMinValue; /*晚间抓拍图像曝光时间的最小值,默认值为3000*/
DWORD dwSnapShtterNightMaxValue; /*晚间抓拍图像曝光时间的最大值,默认值为5000*/
DWORD dwInitAfe; /*增益的初始值,默认值为200*/
DWORD dwMaxAfe; /*增益的最大值,默认值为400*/
WORD wResolutionX;/* 设备当前分辨率宽*/
WORD wResolutionY;/* 设备当前分辨率高*/
DWORD dwGainNightValue; /*晚间增益,默认值70*/
DWORD dwSceneMode; /*场景模式, 详见SCENE_MODE */
DWORD dwRecordMode; /*录像标志:0-不录像,1-录像*/
NET_DVR_GEOGLOCATION struGeogLocation; /*地址位置*/
BYTE byTrigFlag[MAX_VL_NUM]; /*触发标志,0-车头触发;1-车尾触发;2-车头/车尾都触发*/
BYTE byTrigSensitive[MAX_VL_NUM]; /*触发灵敏度,1-100*/
BYTE byRes2[62]; /*保留*/
}NET_DVR_VTPARAM, *LPNET_DVR_VTPARAM;
11. 专用功能配置
#define NET_DVR_GET_SNAPENABLECFG 1086 //获取抓拍机使能参数
#define NET_DVR_SET_SNAPENABLECFG 1087 //设置抓拍机使能参数
typedef struct tagNET_DVR_ SNAPENABLECFG
{
DWORD dwSize;
BYTE byPlateEnable;//是否支持车牌识别,0-不支持,1-支持
BYTE byRes1[2];/*(保留)*/
BYTE byFrameFlip; //图像是否翻转 0-不翻转,1-翻转
WORD wFlipAngle; //图像翻转角度 0,90,180,270
WORD wLightPhase; //相位,取值范围[0, 360]
BYTE byLightSyncPower; //是否与信号灯电源同步,0-不同步;1-同步
BYTE byFrequency; //信号频率
BYTE byUploadSDEnable; //是否自动上传SD图片,0-否;1-是
BYTE byRes2[61]; //保留
}NET_DVR_SNAPENABLECFG, *LPNET_DVR_SNAPENABLECFG;
12. FTP上传参数配置
#define NET_DVR_GET_FTPCFG 134 //获取抓图的FTP参数
#define NET_DVR_SET_FTPCFG 135 //设置抓图的FTP参数
/* ftp 上传参数*/
typedef struct
{
DWORD dwSize;
DWORD dwEnableFTP; /*是否启动ftp上传功能*/
char sFTPIP[16]; /*ftp 服务器*/
DWORD dwFTPPort; /*ftp端口*/
BYTE sUserName[NAME_LEN]; /*用户名*/
BYTE sPassword[PASSWD_LEN]; /*密码*/
//BYTE reservedData[32];
DWORD dwDirLevel; /*0 = 不使用目录结构,直接保存在根目录,1 = 使用1级目录,2=使用2级目录*/
WORD wTopDirMode; /* 一级目录,0x1 = 使用设备名,0x2 = 使用设备号,0x3 = 使用设备ip地址,0x4=使用监测点,0x5=使用时间(年月)*/
WORD wSubDirMode; /* 二级目录,0x1 = 使用通道名,0x2 = 使用通道号,,0x3=使用时间(年月日),0x4=使用车道号*/
BYTE byRes[24];
}NET_DVR_FTPCFG, *LPNET_DVR_FTPCFG;
13. JPEG参数配置
#define NET_DVR_GET_JPEGCFG_V30 1090 //获取JPEG参数
#define NET_DVR_SET_JPEGCFG_V30 1091 //设置JPEG参数
/*可用来命名图片的相关元素 */
#define PICNAME_ITEM_DEV_NAME 1 /*设备名*/
#define PICNAME_ITEM_DEV_NO 2 /*设备号*/
#define PICNAME_ITEM_DEV_IP 3 /*设备IP*/
#define PICNAME_ITEM_CHAN_NAME 4 /*通道名*/
#define PICNAME_ITEM_CHAN_NO 5 /*通道号*/
#define PICNAME_ITEM_TIME 6 /*时间*/
#define PICNAME_ITEM_CARDNO 7 /*卡号*/
#define PICNAME_ITEM_PLATE_NO 8 /*车牌号码*/
#define PICNAME_ITEM_PLATE_COLOR 9 /*车牌颜色*/
#define PICNAME_ITEM_CAR_CHAN 10 /*车道号*/
#define PICNAME_ITEM_CAR_SPEED 11 /*车辆速度*/
#define PICNAME_ITEM_CARCHAN 12 /*监测点*/
#define PICNAME_MAXITEM 15
//图片命名
typedef struct
{
BYTE byItemOrder[PICNAME_MAXITEM]; /*桉数组定义文件命名的规则,每个元素取值见上传的相关元素的定义*/
BYTE byDelimiter; /*分隔符,“_”“-”“+”“=”“.”,一般为'_'*/
}NET_DVR_PICTURE_NAME, *LPNET_DVR_PICTURE_NAME;
//图片质量
typedef struct
{
/*注意:当图像压缩分辨率为VGA时,支持0=CIF, 1=QCIF, 2=D1抓图,
当分辨率为3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA, 7=XVGA, 8=HD900p
仅支持当前分辨率的抓图*/
WORD wPicSize; /* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA, 7=XVGA, 8=HD900p */
WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */
}NET_DVR_JPEGPARA, *LPNET_DVR_JPEGPARA;
/* 串口抓图设置*/
typedef struct
{
BYTE byStrFlag; /*串口数据开始符*/
BYTE byEndFlag; /*结束符*/
WORD wCardIdx; /*卡号相对起始位*/
DWORD dwCardLen; /*卡号长度*/
DWORD dwTriggerPicChans; /*所触发的通道号,按位,从第1位开始计,即0x2表示第一通道*/
}NET_DVR_SERIAL_CATCHPIC_PARA, *LPNET_DVR_SERIAL_CATCHPIC_PARA;
//设备抓图参数配置
typedef struct
{
DWORD dwSize;
NET_DVR_JPEGPARA struJpegPara[MAX_CHANNUM_V30]; /*每个通道的图像参数*/
WORD wBurstMode; /*抓图方式,按位设置.0x1=报警输入触发,0x2=移动侦测触发 0x4=232触发,0x8=485触发,0x10=网络触发*/
WORD wUploadInterval; /*图片上传间隔(秒)[0,65535]*/
NET_DVR_PICTURE_NAME struPicNameRule; /* 图片命名规则 */
BYTE bySaveToHD; /*是否保存到硬盘*/
BYTE byRes1;
WORD wCatchInterval; /*抓图间隔(毫秒)[0,65535]*/
BYTE byRes2[12];
NET_DVR_SERIAL_CATCHPIC_PARA struRs232Cfg;
NET_DVR_SERIAL_CATCHPIC_PARA struRs485Cfg;
DWORD dwTriggerPicTimes[MAX_CHANNUM_V30]; /* 每个通道一次触发拍照次数 */
DWORD dwAlarmInPicChanTriggered[MAX_ALARMIN_V30]; /*报警触发抓拍通道,按位设置,从第1位开始*/
}NET_DVR_JPEGCFG_V30, *LPNET_DVR_JPEGCFG_V30;
14. 手动触发连拍
/*************************************************
Func: NET_DVR_ContinuousShoot
Description: 手动触发连拍
Input: lUserID NET_DVR_Login_V30或NET_DVR_Login返回值;
lpInter NET_DVR_SNAPCFG结构指针
Output: 无
Return: TRUE表示成功,FALSE表示失败
*************************************************/
NET_DVR_API BOOL NET_DVR_ContinuousShoot(LONG lUserID, LP NET_DVR_SNAPCFG);
#define MAX_INTERVAL_NUM 4 //最大时间间隔个数
typedef struct tagNET_DVR_SNAPCFG
{
DWORD dwSize;
BYTE byRelatedDriveWay;//触发IO关联的车道号,取值范围[0,9]
BYTE bySnapTimes; //线圈抓拍次数,0-不抓拍,非0-连拍次数,目前最大5次
WORD wSnapWaitTime; //抓拍等待时间,单位ms,取值范围[0,60000]
WORD wIntervalTime[MAX_INTERVAL_NUM];//连拍间隔时间,ms,取值范围[67,60000]
BYTE byRes2[24];//保留字节
}NET_DVR_SNAPCFG, *LPNET_DVR_SNAPCFG;
该模式下的图片接收是在布防中获得。
15. 车牌识别参数配置
#define MAX_LANERECT_NUM 5 //最大车道识别区域数
#define MAX_CHJC_NUM 3 //最大车辆省份简称字符个数
typedef struNET_DVR_SPRCFG
{
DWORD dwSize;
BYTE byDefaultCHN[MAX_CHJC_NUM]; //设备运行省份的汉字简写
BYTE byPlateOSD; //0:不叠加车牌彩色图,1:叠加车牌彩色图
BYTE bySendJPEG1; //0:不传送JPEG图1,1:传送JPEG图1
BYTE bySendJPEG2; //0:不传送JPEG图2,1:传送JPEG图2
WORD wDesignedPlateWidth; //车牌设计宽度*/
BYTE byTotalLaneNum; //识别的车道数*/
BYTE byRes1; //保留*/
WORD wRecognizedLane; /*识别的车道号,按位表示,bit0表示车道1是否识别,0-不识别,1-识别*/
NET_VCA_RECT struLaneRect[MAX_LANERECT_NUM]; //车道识别区域
DWORD dwRecogMode; //识别的类型,
bit0-背向识别:0-正向车牌识别,1-背向识别(尾牌识别) ;
bit1-大车牌识别或小车牌识别:0-小车牌识别,1-大车牌识别 ;
bit2-车身颜色识别:0-不采用车身颜色识别,在背向识别或小车牌识别时禁止启用,
1-车身颜色识别;
bit3-农用车识别:0-不采用农用车识别,1-农用车识别;
bit4-模糊识别:0-不采用模糊识别,1-模糊识别;
bit5-帧定位或场定位:0-帧定位,1-场定位;
bit6-帧识别或场识别:0-帧识别,1-场识别;
bit7-晚上或白天:0-白天,1-晚上 */
BYTE byRes2[72]; //保留
}NET_DVR_SPRCFG, *LPNET_DVR_SPRCFG;
typedef struct tagNET_VCA_RECT
{
float fX; //边界框左上角点的X轴坐标, 0.001~1
float fY; //边界框左上角点的Y轴坐标, 0.001~1
float fWidth; //边界框的宽度, 0.001~1
float fHeight; //边界框的高度, 0.001~1
}NET_VCA_RECT, *LPNET_VCA_RECT;
命令号:
#define NET_DVR_GET_SPRCFG 1092 //获取车牌识别参数
#define NET_DVR_SET_SPRCFG 1093 //设置车牌识别参数
接口:
NET_DVR_GetDVRConfig和NET_DVR_SetDVRConfig
16. 远程格式化设备SD卡
接口:NET_DVR_FormatDisk、NET_DVR_GetFormatProgress和NET_DVR_CloseFormatHandle
/*************************************************
函数名: NET_DVR_FormatDisk
函数描述: 远程格式化SD卡
输入参数: lUserID: NET_DVR_Login()的返回值
lDiskNumber: 要格式化的SD号,从开始,如果是0xff,则表示格式化所有SD(不包括只读SD)
输出参数:
返回值: -1表示失败,其他值为NET_DVR_GetFormatProgress等函数的参数
*************************************************/
LONG NET_DVR_FormatDisk(LONG lUserID,LONG lDiskNumber);
/*************************************************
函数名: NET_DVR_GetFormatProgress
函数描述: 获取远程格式化SD的进度
输入参数: lFormatHandle: NET_DVR_FormatDisk()的返回值
pCurrentFormatDisk: 指向保存当前正在格式化的SD号的指针,SD号从开始,-1为初始状态
pCurrentDiskPos: 指向保存当前正在格式化的SD的进度的指针,进度是到100
pFormatStatic: 指向保存SD格式化状态的指针,1表示SD全部格式化完成, 0表示正在格式化, 2表示异常
输出参数:
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_GetFormatProgress(LONG lFormatHandle, LONG *pCurrentFormatDisk,LONG *pCurrentDiskPos,LONG *pFormatStatic);
/*************************************************
函数名: NET_DVR_CloseFormatHandle
函数描述: 关闭NET_DVR_FormatDisk接口所创建的句柄,释放资源
输入参数: lFormatHandle: NET_DVR_FormatDisk()的返回值
输出参数:
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_CloseFormatHandle(LONG lFormatHandle);
17. 串口参数
接口:NET_DVR_GetDVRConfig和NET_DVR_SetDVRConfig
命令号:
#define NET_DVR_GET_DECODERCFG 110 //获取解码器参数
#define NET_DVR_SET_DECODERCFG 111 //设置解码器参数
/*************************************************
函数名: NET_DVR_GetDVRConfig
函数描述: 获取DVR的参数
输入参数: nUserID: NET_DVR_Login()的返回值
nCommand: 配置命令
lChannel: 通道号
lpInBuffer: 缓冲区指针
nInBufferSize: 缓冲区长度
输出参数: 无
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_GetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
/*************************************************
函数名: NET_DVR_SetDVRConfig
函数描述: 设置DVR的参数
输入参数: nUserID: NET_DVR_Login()的返回值
nCommand: 配置命令
lChannel: 通道号
lpInBuffer: 缓冲区指针
nInBufferSize: 缓冲区长度
输出参数: 无
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize);
结构体:
#define NAME_LEN 32 //用户名长度
#define MAX_PRESET 128 /* 8000设备支持的云台预置点数 */
#define MAX_TRACK 128 /* 8000设备支持的云台轨迹数(实际支持前16条) */
#define MAX_CRUISE 128 /* 8000设备支持的云台巡航数(实际支持前16条) */
typedef struct
{
DWORD dwSize;
DWORD dwBaudRate; //波特率(bps),-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
BYTE byDataBit; // 数据有几位 0-5位,1-6位,2-7位,3-8位;
BYTE byStopBit; // 停止位 0-1位,1-2位;
BYTE byParity; // 校验 0-无校验,1-奇校验,2-偶校验;
BYTE byFlowcontrol; // 0-无,1-软流控,2-硬流控
WORD wDecoderType; //(抓拍机应用中保留)解码器类型
WORD wDecoderAddress; /*(抓拍机应用中保留)解码器地址:0 - 255*/
BYTE bySetPreset[MAX_PRESET]; /* (抓拍机应用中保留)预置点是否设置,0-没有设置,1-设置*/
BYTE bySetCruise[MAX_CRUISE]; /* (抓拍机应用中保留)巡航是否设置: 0-没有设置,1-设置 */
BYTE bySetTrack[MAX_TRACK]; /* (抓拍机应用中保留)轨迹是否设置,0-没有设置,1-设置*/
}NET_DVR_DECODERCFG, *LPNET_DVR_DECODERCFG;
18. 校时参数配置
接口:NET_DVR_GetDVRConfig和NET_DVR_SetDVRConfig
命令号:
#define NET_DVR_GET_NTPCFG 224 //获取网络应用参数 NTP
#define NET_DVR_SET_NTPCFG 225 //设置网络应用参数 NTP
/*************************************************
函数名: NET_DVR_GetDVRConfig
函数描述: 获取DVR的参数
输入参数: nUserID: NET_DVR_Login()的返回值
nCommand: 配置命令
lChannel: 通道号
lpInBuffer: 缓冲区指针
nInBufferSize: 缓冲区长度
输出参数: 无
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_GetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
/*************************************************
函数名: NET_DVR_SetDVRConfig
函数描述: 设置DVR的参数
输入参数: nUserID: NET_DVR_Login()的返回值
nCommand: 配置命令
lChannel: 通道号
lpInBuffer: 缓冲区指针
nInBufferSize: 缓冲区长度
输出参数: 无
返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
*************************************************/
BOOL NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize);
结构体:
//ntp
typedef struct
{
BYTE sNTPServer[64]; /* Domain Name or IP addr of NTP server */
WORD wInterval; /* adjust time interval(hours) */
BYTE byEnableNTP; /* enable NPT client 0-no,1-yes*/
signed char cTimeDifferenceH; /* 与国际标准时间的 小时偏移-12 ... +13 */
signed char cTimeDifferenceM;/* 与国际标准时间的 分钟偏移0, 30, 45*/
BYTE res1;
WORD wNtpPort; /* ntp server port 9000新增 设备默认为123*/
BYTE res2[8];
}NET_DVR_NTPPARA, *LPNET_DVR_NTPPARA;
19. 车牌亮度补偿配置
#define NET_DVR_GET_PLCCFG 1094 //获取车牌亮度补偿参数
#define NET_DVR_SET_PLCCFG 1095 //设置车牌亮度补偿参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置,不需要通道号
视频参数配置
typedef struct tagNET_DVR_PLCCFG
{
DWORD dwSize;
BYTE byPlcEnable; //是否启用车牌亮度补偿(默认启用):0-关闭,1-启用
BYTE byPlateExpectedBright; //车牌的预期亮度(默认值50), 范围[0, 100]
BYTE byRes1[2]; //保留
BYTE byTradeoffFlash; //是否考虑闪光灯的影响: 0 - 否; 1 - 是(默认);
//使用闪光灯补光时, 如果考虑减弱闪光灯的亮度增强效应, 则需要设为1;否则为
BYTE byCorrectFactor; //纠正系数, 范围[0, 100], 默认值50 (在tradeoff_flash切换时,恢复默认值)
WORD wLoopStatsEn; //触发线圈是否参与车牌亮度统计,按位表示,0-不统计,1-统计
BYTE byRes[20];
}NET_DVR_PLCCFG, *LPNET_DVR_PLCCFG;
20. 获取设备状态
#define NET_DVR_GET_DEVICESTATECFG 1096 //获取设备当前状态参数
使用函数NET_DVR_GetDVRConfig()获取,不需要通道号
#define MAX_LINK 6 //最大连接数
#define MAX_FORTIFY_NUM 10 //最大布防个数
#define MAX_DRIVECHAN_NUM 16 //最大车道数
#define MAX_COIL_NUM 3 //最大线圈个数
typedef struct
{
char sIpV4[16]; /* IPv4地址 */
BYTE byIPv6[128]; /* 保留 */
}NET_DVR_IPADDR, *LPNET_DVR_IPADDR;
typedef struct tagNET_DVR_DEVICESTATECFG
{
DWORD dwSize;
WORD wPreviewNum; //预览连接个数
WORD wFortifyLinkNum; //布防连接个数
NET_DVR_IPADDR struPreviewIP[MAX_LINK]; //预览的用户IP地址
NET_DVR_IPADDR struFortifyIP[MAX_FORTIFY_NUM]; //布防连接的用户IP地址
DWORD dwVideoFrameRate; //帧率:0-全部; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20; 14-15; 15-18; 16-22;
BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5(保留),16-VGA(640*480), 17-UXGA(1600*1200), 18-SVGA (800*600),19-HD720p(1280*720),20-XVGA, 21-HD900p, 22-SXGAp(1360*1024),27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
BYTE bySnapResolution; //抓拍分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5(保留),16-VGA(640*480), 17-UXGA(1600*1200), 18-SVGA (800*600),19-HD720p(1280*720),20-XVGA, 21-HD900p, 22-SXGAp(1360*1024), 27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
BYTE byStreamType; //传输类型:0-主码流;1-子码流
BYTE byTriggerType; //触发模式:0-视频触发;1-普通触发
DWORD dwSDVolume; //SD卡容量
DWORD dwSDFreeSpace; //SD卡剩余空间
BYTE byDetectorState[MAX_DRIVECHAN_NUM][MAX_COIL_NUM]; //车道的线圈状态:0-未使用;1-正常;2-异常
BYTE byDetectorLinkState; //车检器连接状态:0-未连接;1-已连接
BYTE byRes2[127]; //保留
}NET_DVR_DEVICESTATECFG, *LPNET_DVR_DEVICESTATECFG;
21. 卡口电警参数配置
#define NET_DVR_GET_POSTEPOLICECFG 1088 //获取卡口电警参数
#define NET_DVR_SET_ POSTEPOLICECFG 1089 //设置卡口电警参数
使用函数NET_DVR_GetDVRConfig()和NET_DVR_SetDVRConfig()配置
typedef struct tagNET_DVR_POSTEPOLICECFG
{
DWORD dwSize;
DWORD dwDistance;//线圈距离,单位cm,取值范围[0,20000]
DWORD dwLightChan[6]; //信号灯通道号
BYTE byCapSpeed;//起拍速度,单位km/h,取值范围[0,255]
BYTE bySpeedLimit;//限速值,单位km/h,取值范围[0,255]
BYTE byTrafficDirection;//车流方向,0-由东向西,1-由西向东,2-由南向北,3-由北向南
BYTE byRes[129];//保留字节
}NET_DVR_POSTEPOLICECFG, *LPNET_DVR_POSTEPOLICECFG;