抓拍机基线接口及C程序

抓拍机基线接口及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; //红灯抓拍次数10-不抓拍,非0-连拍次数,最大5 

BYTE    bySnapTimes2; //绿灯抓拍次数20-不抓拍,非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. 测速功能(2IO输入一组)

使用函数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 UP2 DOWN3 LEFT4 RIGHT5 MIDDLE6 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-抓拍模式11-抓拍模式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 off1- leftright2- updown3-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;         //车辆类型,表示其它车型,表示小型车,表示大型车

     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-CCD1-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; /*白天辅助照明模式,:无辅助照明;1LED灯照明;                                                     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_V30NET_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:不传送JPEG1,1:传送JPEG1

BYTE bySendJPEG2;   //0:不传送JPEG2,1:传送JPEG2

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_GetDVRConfigNET_DVR_SetDVRConfig

 

16. 远程格式化设备SD

接口:NET_DVR_FormatDiskNET_DVR_GetFormatProgressNET_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_GetDVRConfigNET_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)50175211031504300560061200724008480099600101920011384001257600137680014115.2k;

       BYTE byDataBit;         // 数据有几位 05位,16位,27位,38;

       BYTE byStopBit;         // 停止位 01位,12;

       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_GetDVRConfigNET_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-no1-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-VGA640*480, 17-UXGA1600*1200, 18-SVGA 800*600,19-HD720p1280*720,20-XVGA,  21-HD900p, 22-SXGAp1360*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-VGA640*480, 17-UXGA1600*1200, 18-SVGA 800*600,19-HD720p1280*720,20-XVGA,  21-HD900p, 22-SXGAp1360*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;


转自:http://my.oschina.net/u/243961/blog/41597

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值