NetSDK Programming Manual
NetSDK Programming Manual
2009-01-10
Foreword
1 49
Thank you for using our VANGUARD devices. We are going to provide best
service for you. This manual may contain spelling grammar and punctuation
errors.We will update this manual regularly.
2 49
Modification History
Date
Content
2008.10.22
Create
2009.02.12
2009.02.18
2009.09.26
H264_DVR_StopDVRRecord
H264_DVR_GetDVRWorkState H264_DVR_ClickKey
3 49
H264_DVR_SetSystemDateTime
Catalogue
1.
GENERAL INTRODUCTION.................................................................................5
1.1 INTRODUCTION.......................................................................................................5
1.2 APPLICABILITY........................................................................................................5
DESIG OF PRINCIPIA.....................................................................................................6
1.3 PROGRAMMING DESCRIPTION...............................................................................6
1.4 API CALLING REFERENCE.....................................................................................7
2 DATA STRUCTURE DESCRIPTION.........................................................................9
2.1 CLIENT DATA STRUCTURE DESCRIPTION.............................................................9
2.1.1 Structure of device information.................................................................12
2.1.2 Date Information.........................................................................................12
2.1.3 Record File Information.............................................................................12
2.1.4 Structure of Configuration.........................................................................16
2.1.5 Network keyboard define...........................................................................28
3 API DEFINITION........................................................................................................31
3.1 SDK INITIALIZATION............................................................................................31
3.2 GET ALARM STATUS..............................................................................................32
3.3 DEVICE REGISTRATION........................................................................................34
3.4 REAL-TIME MONITOR...........................................................................................35
3.5 PLAYBACK AND DOWNLOAD...................................................................................37
3.6 PLAYBACK CONTROL..............................................................................................40
3.7 PTZ CONTROL......................................................................................................40
3.8 SYSTEM CONFIGURATION......................................................................................41
3.9 LOG MANAGEMENT..................................................................................................42
3.10 REMOTE CONTROL............................................................................................43
3.11 UPGRADE...............................................................................................................43
3.11 AUDIO TALK.......................................................................................................45
3.12 RECORD MODE...................................................................................................47
3.13 SET SYSTEM TIME..............................................................................................47
3.14 GET DEVICE STATUS...........................................................................................48
3.15 NET KEYBOARD..................................................................................................48
4 49
1. General Introduction
1.1 Introduction
This SDK is for VANGUARD DVR,network video server and etc. The text
describes functions and interfaces as well as relations among them.It also
provide detailed demonstration.
This package includes two parts: operation and equipment management
Operation
state listening, real-time monitor, real-time preview, character
overlay, audio control, record playback and download, data storage,
PTZ control, alarm deployment, voice dialogue, log management, user
management, action on alarm, transparent com port and etc.
Device management
remote upgrade, remote restart/shutdown, equipment parameters setup
such as general setting, alarm, record, serial port, image, log, user
management, device timing, motion detection, network and etc.
The development package includes the following files
Network
library
Assitante
library
NetSDK
NetSDK.lib
NetSDK.dll
H264Play.dll
DllDeinterlace.dll
hi_h264dec_w.dll
Head file
Lib file
Interface library
Decode assistant library
Decode assistant library
Decode assistant library
1.2 Applicability
SDK performance has relationship woth device running status and client-end PC
capability. Basically, it can support 1024 users to register at the same time, 1024ch network preview and playback at the same time. Support 1024-ch alarm upload
at the same time .And 100-ch video display
Desig of principia
1.3 Programming Description
Initialization and clean up
1 First calling H264_DVR_Init() to initialize SDK when Application exit, calling
H264_DVR_Cleanup()to release all occupied resource.
2 Most API shall call after H264_DVR_Init(), before H264_DVR_Cleanup() But
H264_DVR_GetLastError can be called anywhere.
Login in and login out
Befor access device, you shall call H264_DVR_Login() login first, also you
can call H264_DVR_LoginEx() to assign your client type logined. If login succeeded,
will return a global handle, the handle is a session channel, you can use it to operate
device. Call H264_DVR_Logout() to close this session.
Callback Fuction
Callback function have a parameter: dwUser, it is elf-define parameter, you can
define your owner data.
6 49
A. Initialization
SDK Initialization
H264_DVR_Init ()
H264_DVR_SetDVRMessCallBack ()
C. Login in
Login in
H264_DVR_Login ()
H264_DVR_LoginEx ()
H264_DVR_SetupAlarmChan
()
H264_DVR_GetDevConfig ()
H264_DVR_SetDevConfig ()
H264_DVR_FindDVRLog ()
H264_DVR_PTZControl ()
H264_DVR_PTZControlEx ()
E. Real-time preview
Open and close monitor channel H264_DVR_RealPlay ()
H264_DVR_StopRealPlay
()
F. Playback/Download
Record searching
Playback control
H264_DVR_FindFile ()
H264_DVR_PlayBackByName()
7 49
H264_DVR_PlayBackControl()
H264_DVR_StopPlayBac
k()
Download
H264_DVR_GetFileByName
()
H264_DVR_GetDownloadPos()
H264_DVR_StopGetFile ()
G. Remote control
Upgrade
H264_DVR_Upgrade()
H264_DVR_GetUpgradeState()
H264_DVR_CloseUpgradeHandle()
H264_DVR_ControlDVR
Reboot /Clear log
H. Login out
Cancel subscribe for alarm message
Disconnect
H264_DVR_CloseAlarmChan ()
H264_DVR_Logout ()
H264_DVR_Cleanup ()
8 49
EXTPTZ_AUXIOPEN,
EXTPTZ_OPERATION_MENU,
EXTPTZ_REVERSECOMM,
EXTPTZ_OPERATION_RESET,
EXTPTZ_TOTAL,
//AUX OPEN
//OPERATION MENU
//REVER CAMERAL
///< PTZ RESET
};
H264_DVR_OPEN_CHANNEL_ERROR
= -11200, //open channel fail
H264_DVR_CLOSE_CHANNEL_ERROR = -11201, //close channel fail
H264_DVR_SUB_CONNECT_ERROR
= -11202, //open media connet fail
H264_DVR_SUB_CONNECT_SEND_ERROR = -11203, //media connet send data
fail
/// error code of user management
H264_DVR_NOPOWER
= -11300, //no power
H264_DVR_PASSWORD_NOT_VALID
= -11301, // password not valid
H264_DVR_LOGIN_USER_NOEXIST
= -11302, // user not exist
H264_DVR_USER_LOCKED
= -11303, // user is locked
H264_DVR_USER_IN_BLACKLIST
= -11304, // user is in backlist
H264_DVR_USER_HAS_USED
= -11305, // user have logined
H264_DVR_USER_NOT_LOGIN
= -11305, // no login
H264_DVR_CONNECT_DEVICE_ERROR
= -11306, // maybe device no exist
enum SDK_EventCodeTypes
{
SDK_EVENT_CODE_INIT = 0,
SDK_EVENT_CODE_LOCAL_ALARM = 1, //
SDK_EVENT_CODE_NET_ALARM,
//
SDK_EVENT_CODE_MANUAL_ALARM,
//
SDK_EVENT_CODE_VIDEO_MOTION,
//
SDK_EVENT_CODE_VIDEO_LOSS,
//
SDK_EVENT_CODE_VIDEO_BLIND,
//
SDK_EVENT_CODE_VIDEO_TITLE,
SDK_EVENT_CODE_VIDEO_SPLIT,
SDK_EVENT_CODE_VIDEO_TOUR,
SDK_EVENT_CODE_STORAGE_NOT_EXIST,
SDK_EVENT_CODE_STORAGE_FAILURE,
SDK_EVENT_CODE_LOW_SPACE,
SDK_EVENT_CODE_NET_ABORT,
SDK_EVENT_CODE_COMM,
SDK_EVENT_CODE_STORAGE_READ_ERROR,
SDK_EVENT_CODE_STORAGE_WRITE_ERROR,
SDK_EVENT_CODE_NET_IPCONFLICT,
SDK_EVENT_CODE_ALARM_EMERGENCY,
SDK_EVENT_CODE_DEC_CONNECT,
SDK_EVENT_CODE_NR,
};
//alarm information
typedef struct SDK_ALARM_INFO
{
int nChannel;
int iEvent;
local alarm
network alarm
manual alarm
motion detect
loss detect
blind detect
{
int nChannelN0;
//channel NO, start with 0
int nFileType;
//record type
H264_DVR_TIME startTime;
//start time
H264_DVR_TIME endTime; //end time
char szCard[32];
//card number
}H264_DVR_FINDINFO;
struct SDK_COMMATTRI
{
int iDataBits;
// data bit: [5,8]
int iStopBits;
// stop bit: [0,2]
int iParity; // parity: 0: None 1: odd 2even 3: mark 4: space
int iBaudRate;
// baudrate: 115200,57600,38400,9600,4800,2400 and
so on
};
// serial configure
struct SDK_CONFIG_COMM_X
{
char iProtocolName[32]; // Protocol:Console
int iPortNo;
// Port No.
SDK_COMMATTRI aCommAttri;
// attribute of serial
};
struct SDK_STR_CONFIG_PTZ
{
char sProtocolName[NET_MAX_PTZ_PROTOCOL_LENGTH]; // Protocol
int ideviceNo;
// PTZ device NO.
int iNumberInMatrixs;
// NO. in matrixs
int iPortNo;
// serial port NO.: [1, 4]
SDK_COMMATTRI dstComm;
// attribute of serial
};
//all channel of PTZ protocol
struct SDK_STR_PTZCONFIG_ALL
{
SDK_STR_CONFIG_PTZ ptzAll[NET_MAX_CHANNUM];
};
Right List
typedef struct _OPR_RIGHT
{
string
name;
}OPR_RIGHT;
typedef struct _USER_INFO
{
int
rigthNum;
string
rights[NET_MAX_RIGTH_NUM];
string
strGroupname;
string
strmemo;
string
strname;
string
strpassWord;
bool
reserved;
//is reserved user
bool
shareable;
//is shareable
}USER_INFO;
typedef struct _USER_GROUP_INFO
{
int
rigthNum;
string
memo;
string
name;
string
rights[NET_MAX_RIGTH_NUM]; //right list
}USER_GROUP_INFO;
//all of user and group information structure
typedef struct _USER_MANAGE_INFO
{
int
OPR_RIGHT
int
USER_GROUP_INFO
int
USER_INFO
}USER_MANAGE_INFO;
rigthNum;
rightList[NET_MAX_RIGTH_NUM];
groupNum;
groupList[NET_MAX_GROUP_NUM];
userNum;
userList[NET_MAX_USER_NUM];
//modify user
typedef struct _CONF_MODIFYUSER
{
std::string sUserName;
USER_INFO User;
}CONF_MODIFYUSER;
//modify group
typedef struct _CONF_MODIFYGROUP
{
std::string sGroupName;
USER_GROUP_INFO Group;
}CONF_MODIFYGROUP;
Log Information
SDK_SYSTEM_TIME stEndTime;
};
//return of Log search
struct SDK_LogList
{
int iNumLog;
struct LogItem
{
char sType[24]; ///< log type
char sUser[32]; ///< Operator of log
char sData[68]; ///< log data
SDK_SYSTEM_TIME stLogTime; ///< the time of log happened
} Logs[NET_MAX_RETURNED_LOGLIST];
};
struct SDK_STORAGEDISK
{
int
iPhysicalNo;
int
iPartNumber;
SDK_DriverInformation diPartitions[SDK_MAX_DRIVER_PER_DISK];
};
struct SDK_StorageDeviceInformationAll
{
int iDiskNumber;
SDK_STORAGEDISK vStorageDeviceInfoAll[SDK_MAX_DISK_PER_MACHINE];
};
Real-Time Monitor
typedef struct{
int nChannel; //Channel NO.
int nStream; //0: main stream1: extra stream
int nMode;
//0TCP, 1UDP
}H264_DVR_CLIENTINFO,*LPH264_DVR_CLIENTINFO;
//User Managerment
E_SDK_CONFIG_USER,
E_SDK_CONFIG_ADD_USER,
E_SDK_CONFIG_MODIFY_USER,
E_SDK_CONFIG_DELETE_USER,
E_SDK_CONFIG_ADD_GROUP,
E_SDK_CONFIG_MODIFY_GROUP,
E_SDK_COFIG_DELETE_GROUP,
E_SDK_CONFIG_MODIFY_PSW,
//device ability
E_SDK_CONFIG_ABILITY_SYSFUNC = 9,//support network services
SDK_SystemFunctio
E_SDK_CONFIG_ABILTY_ENCODE,
E_SDK_CONFIG_ABILITY_PTZPRO,
SDK_PTZPROTOCOLFUNC
E_SDK_COMFIG_ABILITY_COMMPRO,
SDK_COMMFUNC
E_SDK_CONFIG_ABILITY_TALK,
//Device configuration
E_SDK_CONFIG_SYSINFO = 17,
E_SDK_CONFIG_SYSNORMAL,
E_SDK_CONFIG_SYSENCODE,
E_SDK_CONFIG_SYSNET,
E_SDK_CONFIG_PTZ,
E_SDK_CONFIG_COMM,
E_SDK_CONFIG_RECORD,
E_SDK_CONFIG_MOTION,
E_SDK_CONFIG_SHELTER,
E_SDK_CONFIG_VIDEO_LOSS,
E_SDK_CONFIG_ALARM_IN,
E_SDK_CONFIG_ALARM_OUT,
E_SDK_CONFIG_DISK_MANAGER
E_SDK_CONFIG_OUT_MODE,
E_SDK_CONFIG_AUTO,
E_SDK_CONFIG_DEFAULT,
E_SDK_CONFIG_DISK_INFO,
E_SDK_CONFIG_LOG_INFO,
E_SDK_CONFIG_NET_IPFILTER,
//set default
//disk info
SDK_StorageDeviceInformationAll
//get log
SDK_LogList
//network servicesblack/white list
SDK_NetIPFilterConfig
E_SDK_CONFIG_NET_DHCP,
E_SDK_CONFIG_NET_DDNS,
//network servicesDHCP
//network servicesDDNS
SDK_NetDDNSConfigALL
E_SDK_CONFIG_NET_EMAIL,
//network servicesEMAIL
SDK_NetEmailConfig
E_SDK_CONFIG_NET_MULTICAST, //network services:Multicast
SDK_NetMultiCastConfig
E_SDK_CONFIG_NET_NTP,
//network services NTP
E_SDK_CONFIG_NET_PPPOE,
//network services: PPPOE
E_SDK_CONFIG_NET_DNS,
//network services: DNS
E_SDK_CONFIG_NET_FTPSERVER, //network services: FTP
SDK_FtpServerConfig
E_SDK_CONFIG_SYS_TIME, //system time
E_SDK_CONFIG_CLEAR_LOG,
E_SDK_REBOOT_DEV,
//clear log
//reboot device
E_SDK_CONFIG_ABILITY_LANG,
//languages support
E_SDK_CONFIG_VIDEO_FORMAT,
//Video format
E_SDK_CONFIG_COMBINEENCODE,
//combine-encode
E_SDK_CONFIG_EXPORT,
//config export
E_SDK_CONFIG_IMPORT,
//config import
E_SDK_LOG_EXPORT,
//log export
E_SDK_CONFIG_COMBINEENCODEMODE,
//mode of combine-encode
E_SDK_WORK_STATE,
//work status
}SDK_CONFIG_TYPE;
/// type of DDNS support
struct SDK_DDNSServiceFunction
{
int
nTypeNum;
char vDDNSType[NET_MAX_DDNS_TYPE][64];
};
/// blind detect support
struct SDK_BlindDetectFunction
{
int iBlindCoverNum;
};
/// motion detect
SDK_NetNTPConfig
SDK_NetPPPoEConfig
SDK_NetDNSConfig
struct SDK_MotionDetectFunction
{
int iGridRow;
///< enable
int iStreamType;
bool bHaveAudio;
};
/// encode power
struct CONFIG_EncodeAbility
{
int iMaxEncodePower;
SDK_EncodeInfo vEncodeInfo[SDK_CHL_FUNCTION_NUM];
};
bool vAlarmFunction[SDK_ALARM_FUNCTION_TYPE_NR];
bool vNetServerFunction[SDK_NET_SERVER_TYPES_NR];
bool vPreviewFunction[SDK_PREVIEW_TYPES_NR];
int iAutoRebootHour;
int iAutoDeleteFilesDays;
};
//Disk info
struct SDK_STORAGEDISK
{
int
iPhysicalNo;
// Physical No.
int
iPartNumber;
// Partition numbers
SDK_DriverInformation diPartitions[SDK_MAX_DRIVER_PER_DISK];
};
struct SDK_StorageDeviceInformationAll
{
int iDiskNumber;
SDK_STORAGEDISK vStorageDeviceInfoAll[SDK_MAX_DISK_PER_MACHINE];
};
// Type of PTZ link
enum PtzLinkTypes
{
PTZ_LINK_NONE,
// NONE
PTZ_LINK_PRESET,
// GOTO PRESET
PTZ_LINK_TOUR,
// TOUR
PTZ_LINK_PATTERN
// PATTERN
};
// PTZ Link Config
struct SDK_PtzLinkConfig
{
int iType;
int iValue;
};
// handler of event
struct SDK_EventHandler
{
unsigned int
dwRecord;
unsigned int
iRecordLatch;
unsigned int
dwTour;
unsigned int
dwSnapShot;
unsigned int
dwAlarmOut;
unsigned int
dwMatrix;
int
iEventLatch;
// interval of event(unit:sec.)
int
iAOLatch;
SDK_PtzLinkConfig PtzLink[NET_MAX_CHANNUM];
SDK_CONFIG_WORKSHEET schedule;
// weeksheet of record
bool
bRecordEn;
bool
bTourEn;
bool
bSnapEn;
bool
bAlarmOutEn;
bool
bPtzEn;
bool
bTip;
bool
bMail;
bool
bMessage;
bool
bBeep;
bool
bVoice;
bool
bFTP;
bool
bMatrixEn;
// no used
bool
bLog;
bool
bMessagetoNet;
// no used
};
///< Blind detect
struct SDK_BLINDDETECTCONFIG
{
bool bEnable;
///< enable
int iLevel;
///< sensitivity16
SDK_EventHandler hEvent;
};
/// All channel of blind detect configuration
struct SDK_BLINDDETECTCONFIG_ALL
{
SDK_BLINDDETECTCONFIG vBlindDetectAll[NET_MAX_CHANNUM];
};
///< Alarm in
struct SDK_ALARM_INPUTCONFIG
{
bool bEnable;
///< enable
int
iSensorType;
SDK_EventHandler hEvent;
};
//< enable
int iLevel;
//< sensitivity[1,6]
};
/// All channel of video motion configuration
struct SDK_MOTIONCONFIG_ALL
{
SDK_MOTIONCONFIG vMotionDetectAll[NET_MAX_CHANNUM];
};
///< video loss detect
struct SDK_VIDEOLOSSCONFIG
{
bool bEnable;
///< enable
SDK_EventHandler hEvent;
};
/// All channel of video loss configuration
struct SDK_VIDEOLOSSCONFIG_ALL
{
SDK_VIDEOLOSSCONFIG vGenericEventConfig[NET_MAX_CHANNUM];
};
/// record mode type
enum SDK_RecordModeTypes
{
SDK_RECORD_MODE_CLOSED,
///< Closed
SDK_RECORD_MODE_MANUAL,
SDK_RECORD_MODE_CONFIG,
SDK_RECORD_MODE_NR,
};
bool bRedundancy;
bool bSnapShot;
///< no used
int iPacketLength;
int iRecordMode;
SDK_CONFIG_WORKSHEET wcWorkSheet;
///< worksheet
to worksheet
};
// All channel of record configuration
struct SDK_RECORDCONFIG_ALL
{
SDK_RECORDCONFIG vRecordConfigAll[NET_MAX_CHANNUM];
};
// General Configuration
typedef struct _SDK_CONFIG_NORMAL
{
NEW_NET_TIME sysTime;
int iLocalNo;
int iOverWrite;
int iSnapInterval;
///< no used
char sMachineName[64];
int iVideoStartOutPut;
///< no used
int iAutoLogout;
int iVideoFormat;
int iLanguage;
int iTimeFormat;
int iDSTRule;
int iWorkDay;
DSTPoint dDSTStart;
DSTPoint dDSTEnd;
}SDK_CONFIG_NORMAL;
// encode configuration
struct SDK_CONFIG_ENCODE
{
SDK_MEDIA_FORMAT dstMainFmt[SDK_ENCODE_TYPE_NUM];
//
main stream
SDK_MEDIA_FORMAT dstExtraFmt[SDK_EXTRATYPES];
//
Extra stream
SDK_MEDIA_FORMAT dstSnapFmt[SDK_ENCODE_TYPE_NUM];
//
Snapshot
};
// all of channel encode configuration
struct
SDK_EncodeConfigAll
{
SDK_CONFIG_ENCODE vEncodeConfigAll[NET_MAX_CHANNUM];
};
// combine-encode
struct
SDK_CombineEncodeConfigAll
{
SDK_CONFIG_ENCODE vEncodeConfigAll[NET_MAX_COMBINE_NUM];
};
// newwork configuration
struct SDK_CONFIG_NET_COMMON
{
char HostName[NET_NAME_PASSWORD_LEN]; ///< hostname
CONFIG_IPAddress HostIP;
///< IP
CONFIG_IPAddress Submask;
///< Netmask
CONFIG_IPAddress Gateway;
///< NetGateway
int HttpPort;
int TCPPort;
int SSLPort;
///< no used
int UDPPort;
///< no used
int MaxConn;
int MonMode;
///< no used
int TransferPlan;
first
bool bUseHSDownLoad;
};
// PTZ configuration
struct SDK_STR_CONFIG_PTZ
{
char sProtocolName[NET_MAX_PTZ_PROTOCOL_LENGTH];
int ideviceNo;
int iNumberInMatrixs;
int iPortNo;
SDK_COMMATTRI dstComm;
};
// all channel of PTZ configuration
struct SDK_STR_PTZCONFIG_ALL
{
SDK_STR_CONFIG_PTZ ptzAll[NET_MAX_CHANNUM];
};
// 232 configuration
struct SDK_CONFIG_COMM_X
{
char iProtocolName[32]; // Protocol name:Console
int iPortNo;
// Port No.
SDK_COMMATTRI aCommAttri;
// comm attribute
};
// all channel of 232 configuration
struct SDK_CommConfigAll
{
SDK_CONFIG_COMM_X vCommConfig[SDK_COM_TYPES];
};
///< IP Fliter
struct SDK_NetIPFilterConfig
{
bool Enable;
///< enable
CONFIG_IPAddress BannedList[NET_MAX_FILTERIP_NUM];
CONFIG_IPAddress TrustList[NET_MAX_FILTERIP_NUM];
};
///< multicast
struct SDK_NetMultiCastConfig
{
bool Enable;
///< enable
SDK_RemoteServerConfig Server;
};
///< pppoe
struct SDK_NetPPPoEConfig
{
bool Enable;
///< enable
SDK_RemoteServerConfig Server;
CONFIG_IPAddress addr;
};
///< DDNS
struct SDK_NetDDNSConfig
{
bool Enable;
///< enable
};
///< DDNS
struct SDK_NetDDNSConfigALL
{
SDK_NetDDNSConfig ddnsConfig[5];
};
///< FTP
struct SDK_FtpServerConfig {
///< enable
bool Enable;
///< FTP server
SDK_RemoteServerConfig Server;
///< spare server IP
CONFIG_IPAddress SpareIP;
///< path name in FTP server
char RemotePathName[NET_MAX_PATH_LENGTH];
///< max file lenght
int
FileMaxLen;
UpLoadPeriod[NET_N_MIN_TSECT];
};
///< NTP
struct SDK_NetNTPConfig
{
///< enable
bool Enable;
NET_MAX_EMAIL_TITLE_LEN 64
#define
NET_MAX_EMAIL_RECIEVERS
#define
NET_EMAIL_ADDR_LEN
32
///< EMAIL
struct SDK_NetEmailConfig
{
///< enalbe
bool Enable;
///< smtp server
SDK_RemoteServerConfig Server;
///< is need SSL ?
bool bUseSSL;
///< sender address
char SendAddr[NET_EMAIL_ADDR_LEN];
///< receiver
char Recievers[NET_MAX_EMAIL_RECIEVERS][NET_EMAIL_ADDR_LEN];
///< email title
char Title[NET_MAX_EMAIL_TITLE_LEN];
///< time section
SDK_TIMESECTION Schedule[NET_N_MIN_TSECT];
};
///< DNS
struct SDK_NetDNSConfig
{
CONFIG_IPAddress
PrimaryDNS;
CONFIG_IPAddress
SecondaryDNS;
};
///< bitrate(unit:kbps)
int iSampleRate;
int iSampleBit;
int iEncodeType;
};
/// alarm status
struct SDK_DVR_ALARMSTATE
{
int iVideoMotion; ///< motion detect status, bit mask for channel,bit0 means channel 1,and so
on,1: alarming 0: normal
int iVideoBlind; ///< blind detect status, bit mask for channel,bit0 means channel 1,and so on,1:
alarming 0: normal
int iVideoLoss;
///< loss detect status, bit mask for channel,bit0 means channel 1,and so
///< alarm out status, bit mask for channel,bit0 means channel 1,and so on,1:
alarming 0: normal
};
// channel status
struct SDK_DVR_CHANNELSTATE
{
bool bRecord; ///< is recording
int iBitrate; ///< bitrate
};
// device work status
struct SDK_DVR_WORKSTATE
{
SDK_DVR_CHANNELSTATE vChnState[NET_MAX_CHANNUM];
SDK_DVR_ALARMSTATE vAlarmState;
};
2.1.5
SDK_NET_KEY_16, SDK_NET_KEY_10PLUS,
SDK_NET_KEY_UP = 20,
// UP
SDK_NET_KEY_DOWN,
// DOWN
SDK_NET_KEY_LEFT,
// LEFT
SDK_NET_KEY_RIGHT,
// RIGHT
SDK_NET_KEY_SHIFT,
SDK_NET_KEY_PGUP,
// PAGE UP
SDK_NET_KEY_PGDN,
// PAGE DOWN
SDK_NET_KEY_RET,
// ENTER
SDK_NET_KEY_ESC,
// ESC
SDK_NET_KEY_FUNC,
// FUNC
SDK_NET_KEY_PLAY,
// PLAY/PAUSE
SDK_NET_KEY_BACK,
// BACK
SDK_NET_KEY_STOP,
// STOP
SDK_NET_KEY_FAST,
// FAST
SDK_NET_KEY_SLOW,
// SLOW
SDK_NET_KEY_NEXT,
// NEXT FILE
SDK_NET_KEY_PREV,
// PREV FILE
SDK_NET_KEY_REC = 40,
SDK_NET_KEY_SEARCH,
SDK_NET_KEY_INFO,
SDK_NET_KEY_ALARM,
SDK_NET_KEY_ADDR,
SDK_NET_KEY_BACKUP,
SDK_NET_KEY_SPLIT,
SDK_NET_KEY_SPLIT1,
// SLPIT MODE 1
SDK_NET_KEY_SPLIT4,
// SLPIT MODE 4
SDK_NET_KEY_SPLIT8,
// SLPIT MODE 8
SDK_NET_KEY_SPLIT9,
// SLPIT MODE 9
SDK_NET_KEY_SPLIT16,
// SLPIT MODE 16
SDK_NET_KEY_SHUT,
// SHUTDOWN
SDK_NET_KEY_MENU,
// MENU
SDK_NET_KEY_PTZ = 60,
SDK_NET_KEY_TELE,
// ZOOM -
SDK_NET_KEY_WIDE,
// ZOOM +
SDK_NET_KEY_IRIS_SMALL,
// APERTURE -
SDK_NET_KEY_IRIS_LARGE,
// APERTURE +
SDK_NET_KEY_FOCUS_NEAR,
// FOCUS -
SDK_NET_KEY_FOCUS_FAR,
// FOCUS +
SDK_NET_KEY_BRUSH,
// BRUSH
SDK_NET_KEY_LIGHT,
// LIGHT
SDK_NET_KEY_SPRESET,
SDK_NET_KEY_GPRESET,
SDK_NET_KEY_DPRESET,
SDK_NET_KEY_PATTERN,
// PATTERN
SDK_NET_KEY_AUTOSCAN,
// AUTO-SCAN ON/OFF
SDK_NET_KEY_AUTOTOUR,
// AUTO-TOUR ON/OFF
SDK_NET_KEY_AUTOPAN,
// AUTO-PAN ON/OFF
};
/// keyboard status
enum SDK_NetKeyBoardState
{
SDK_NET_KEYBOARD_KEYDOWN,
// key down
SDK_NET_KEYBOARD_KEYUP,
// key up
};
struct SDK_NetKeyBoardData
{
};
int iValue;
int iState;
3 API Definition
3.1 SDK Initialization
H264_DVR_API long H264_DVR_GetLastError();;
1.
API description: It is to return function failure code. when you failed to call the following
interface, you can call this fucntion to get error code.
Parameter: none
Return: Please see refer to error code
Reference API
typedef
void
(__stdcall
*fDisConnect)(long
lLoginID,
char
*pchDVRIP, long nDVRPort, unsigned long dwUser);
2. H264_DVR_API
long
H264_DVR_Init(fDisConnect
cbDisConnect,
unsigned long dwUser);
[in]dwUser
User data
pchDVRIP
Device IP
nDVRPort
Port
dwUser
User data, just the same with the above user data you have input.
API description Clean up SDK and release occupied resource, calling after all SDK
function.
Parameternone
Returnnone
Reference APIH264_DVR_Init
API descriptionSet device message callback fuction to get device current state. Callback
order does not matter here. SDK default setting is not to callback.You need to call alarm
message subscription interface H264_DVR_SetupAlarmChan().It applies to current defined
alarm status.Device state is callbacked every second.
Parameter
cbAlarmcallback
Message callback function.It is to callback device status
(such as alarm status). When it is 0, system disables
callback.
[in] lUser
user self-defined data
lLoginID
Return value of H264_DVR_Login
pBuf
Refer to see SDK_AlarmInfo
dwBufLen
pBuf length. Unit is byte.
dwUser
User self-defined data
ReturnSucceeded: TRUE, Fail: FALSE
Reference APIH264_DVR_SetupAlarmChanH264_DVR_CloseAlarmChan
4.
Parameter
Message
is
[in]lLoginID
Return value of H264_DVR_Login
SDK
Parameter
[in] sDVRIP
device IP
[in] wDVRPort
device port
[in] sUserName
user name
[in] sPassword
password
[out] lpDeviceInfo
device property. it is a output parameter.
[out] error
(when the function returned successfully, the parameter
is null.Please refer to error code.
Return Return o if failed. Return device ID if succeeded.
Using
this
value(device
handle)all
operations
after
successfuly log in can corresponding to the device.
Reference APIH264_DVR_Logout
7.
Parameter
[in] sDVRIP
device IP
[in] wDVRPort
device port
[in] sUserName
user name
[in] sPassword
password
34 49
SDK
[out] lpDeviceInfo
device property. it is a output parameter.
[in] nType
the type as follows:
enum LoginType
{
LOGIN_TYPE_GUI,
///< Local GUI
LOGIN_TYPE_CONSOLE,
///< Console
LOGIN_TYPE_WEB,
///< WEB
LOGIN_TYPE_SNS,
///< SNS
LOGIN_TYPE_MOBIL,
///< Mobile terminal
LOGIN_TYPE_NETKEYBOARD, ///< Netkeyboard
LOGIN_TYPE_SERVER,
///< Center servers
LOGIN_TYPE_AUTOSEARCH, ///< IP search tool
LOGIN_TYPE_UPGRADE,
///< Upgrade tool
LOGIN_TYPE_MEGAEYE,
///< Megaeye
LOGIN_TYPE_NR,
};
[out] error
(when the function returned successfully, the parameter
is null.Please refer to error code.
successfully
H264_DVR_API
long
H264_DVR_RealPlay(long
LPH264_DVR_CLIENTINFO lpClientInfo);
35 49
lLoginID,
SDK
Reference
API
H264_DVR_StopRealPlayH264_DVR_SetRealDataCallBack
10.
Parameter
[in]lRealHandle
Return value of H264_DVR_RealPlay
cbRealData
It is a callback function to output the current realtime data from the device.
[in]dwUser
User data
36 49
SDK
H264_DVR_API
long
H264_DVR_FindFile(long
lLoginID,
H264_DVR_FINDINFO* lpFindInfo, H264_DVR_FILE_DATA *lpFileData,
int lMaxCount, int *findcount, int waittime = 2000);
file
information.It
is
structure array.
[in]lMaxCount
The length of lpFileData Unit: BYTE The value shall
between 100~200*sizeof(H264_DVR_FILE_DATA)
[out]filecount
Returned file amount; It is an output max parameter. You
can only search the video files before buffer is full
[in]waittime
Waitting time
37 49
SDK
H264_DVR_API
long
H264_DVR_PlayBackByName(long
lLoginID,
H264_DVR_FILE_DATA
*sPlayBackFile,
fDownLoadPosCallBack
cbDownLoadPos, fRealDataCallBack fDownLoadDataCallBack, long
dwDataUser);
Parameter
[in]lLoginID
Return value of H264_DVR_Login
[in] sPlayBackFile
Recorded file information return by H264_DVR_FindFile
[in] cbDownLoadPos
Progress call-back function
[in] fDownLoadDataCallBack
Video data call-back function
[in]dwUserData
User self-defined data
CallBack function
lPlayHandle
Return value of H264_DVR_PlayBackByName
dwTotalSize
Current total play size, unit is KB.
dwDownLoadSize
Played size unit is KB. When value is -1, it means
cureent playback is over.
dwUser
User data, just the same with user data in the above.
Return Return network playbackID if succeeded, return 0 if
failed.
Reference API
H264_DVR_Login,H264_DVR_FindFile,H264_DVR_StopPlayBack,
H264_DVR_PlayBackControl
14.
38 49
SDK
[in]lPlayHandle
Playback
handle,
Such
as
the
H264_DVR_PlayBackByName
ReturnSucceeded: TRUE, Fail: FALSE
Reference APIH264_DVR_PlayBackByName
15.
return
value
of
H264_DVR_API
long
H264_DVR_GetFileByName(long
lLoginID,H264_DVR_FILE_DATA
*sPlayBackFile,char
*sSavedFileName, fDownLoadPosCallBack cbDownLoadPos = NULL,
long dwDataUser = NULL );
recorded
files
via
the
searched
information
Parameter
[in]lLoginID
The return value of H264_DVR_Login
[in] sPlayBackFile
Recorded file information pointer.
[in]sSavedFileName
The name of file to save(full path).
[in]cbDownLoadPos
Download
process
calls
user
self-defined
data.For
download process callback fucntion, please refer to
H264_DVR_GetDownloadPos
[in]dwUserData
Download process calls user self-defined data.
CallBack function
lPlayHandle
Return value of H264_DVR_PlayBackByName
dwTotalSize
Current total play size, unit is KB.
dwDownLoadSize
Played size unit is KB. When value is -1, it means
cureent playback is over.
dwUser
User data, just the same with user data in the above.
ReturnReturn download ID if succeeded. Return 0 if failed.
Reference APIH264_DVR_StopGetFileH264_DVR_GetDownloadPos
16.
39 49
SDK
Parameter
[in]lFileHandle
The return value of H264_DVR_GetFileByName
ReturnSucceeded: TRUE, Fail: FALSE
Reference APIH264_DVR_GetFileByNameH264_DVR_GetDownloadPos
17.
Parameter
[in]lFileHandle
The return value of H264_DVR_GetFileByName
Returnposition(value between 0 to 100)
Reference APIH264_DVR_GetFileByNameH264_DVR_StopGetFile
lPlayHandle,
H264_DVR_API
bool
H264_DVR_PTZControl(long
lLoginID,int
nChannelNo, long lPTZCommand, bool bStop = false, long lSpeed
= 4)
Parameter:
40 49
SDK
[in]lLoginID
Return value of H264_DVR_Login
[in] nChannelNo
Channel NO. start with 0
[out] lPTZCommand
Commands, see refer to PTZ_ControlType
[in] bStop
Whether stop or not. It applies to PTZ direction andlens
operation. When you operate other functions, input this
parameter as FALSE.
[out] lSpeed
Step/Speed. The value ranges from 1 to 8. 8 has the
highest control capability(4 by default). dwStep is the preset
value when you use preset function.
Reference APIH264_DVR_LoginH264_DVR_RealPlay
H264_DVR_API
long
H264_DVR_GetDevConfig(long
lLoginID,
unsigned long dwCommand, int nChannelNO, char * lpOutBuffer,
unsigned
long
dwOutBufferSize,
unsigned
long*
lpBytesReturned,int waittime = 1000);
41 49
SDK
Reference APIH264_DVR_SetDevConfig
21.
H264_DVR_API
long
H264_DVR_SetDevConfig(long
lLoginID,
unsigned long dwCommand, int nChannelNO, char * lpInBuffer,
unsigned long dwInBufferSize, int waittime = 1000);
Reference APIH264_DVR_GetDevConfig
H264_DVR_API
bool
H264_DVR_FindDVRLog(long
SDK_LogSearchCondition *pFindParam, SDK_LogList
long lBufSize, int waittime = 2000);
42 49
lLoginID,
*pRetBuffer,
SDK
[in] pFindParam
Search condition,
[in] pRetBuffer
The return of
SDK_LogList
[in] lBufSize
The return length
[in] waittime
Waiting time
ReturnSucceeded: TRUE,
information,
Please
refer
to
of log information
Fail: FALSE
Reference APINone
3.11 Upgrade
24.
43 49
SDK
[in] sFileName
The name of upgrade file
[in] nType
The type of upgrade file
enum UpgradeTypes
{
UPGRADE_TYPES_SYSTEM, ///< System
UPGRADE_TYPES_NR,
};
CallBack function
fUpgradeCallBack
Callback of upgrade progress, lUpgradechannel
upgrade handle, return by H264_DVR_Upgrade
nTotalSize
Upgrade file lenght,(Unit: BYTE)
nSendSize
data length have been upgraded,(unit: BYTE)
[in]dwUser
User self-define data
is
the
long
H264_DVR_CloseUpgradeHandle(long
Parameter
[in] lUpgradeHandle
The return value of H264_DVR_Upgrade
Return1: Succeeded 2: Upgrading, 3: FALSE
Reference API: H264_DVR_UpgradeH264_DVR_CloseUpgradeHand
44 49
SDK
27.
Parameter
[in] szBuf
Buffer to receive structure SDK_CONFIG_NET_COMMON, return the a structure
as long as it search a device.
[in] nBufLen
szBuf buffer length
[in] pRetLen
Return the structure total length of SDK_CONFIG_NET_COMMON
[in] nSearchTime
Waiting time
28.
dwDataUser);
Parameter
[in] lLoginID
The return value of H264_DVR_Login
[in] pVcb
Self-defined data callback interface.
[in] dwDataUser
45 49
SDK
29.
Parameter
[in] lVoiceHandle
Return value of H264_DVR_StartVoiceCom_MR
[in] pSendBuf
The audio data to be sent out.
[in] lBufSize
Audio data length to be sent out.(Unit:byte)
30.
H264_DVR_StopVoiceCom
H264_DVR_SetTalkMode
Parameter
[in] lVoiceHandle
The return value of H264_DVR_StartVoiceCom_MR
31.
H264_DVR_API
bool
H264_DVR_VoiceComSendData
H264_DVR_SetTalkMode
(long
pTalkMode);
46 49
H264_DVR_SetTalkMode
lLoginID,
SDK_AudioInFormatConfig*
SDK
Parameter
0- [in] lLoginID
The return value of H264_DVR_Login
1- [in] pTalkMode
Mode of audio talk ,see refer to SDK_AudioInFormatConfig
H264_DVR_VoiceComSendData
H264_DVR_StopVoiceCom
H264_DVR_API
bool
H264_DVR_StartDVRRecord(long
lLoginID,
int
nChannelNo
lRecordType);
Parameter
lLoginID
Parameter
[in] lLoginID
The return value of H264_DVR_Login
[in] nChannelNo
Channel No., -1: all of channel
47 49
,long
SDK
Parameter
[in] lLoginID
The return value of H264_DVR_Login
[in] pSysTime
System time, see refer to SDK_SYSTEM_TIME
H264_DVR_API
bool
H264_DVR_GetDVRWorkState(long
lLoginID,
SDK_DVR_WORKSTATE
*pWorkState);
Parameter
[in] lLoginID
The return value of H264_DVR_Login
0- [in] pWorkState
Structure of work staus, see refer to SDK_DVR_WORKSTATE
48 49
SDK
Parameter
[in] lLoginID
The return value of H264_DVR_Login
0- [in] pKeyBoardData
Key value, see refer to SDK_NetKeyBoardData
49 49