package netmanager.lib.netmanager;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.LongByReference;
import netmanager.lib.PlatUtils;
import netmanager.lib.LLONG;
import netmanager.lib.netmanager.NetDelegates.fAlarmInfoCallBack;
import netmanager.lib.netmanager.NetDelegates.fAnalyzeDataCallBack;
import netmanager.lib.netmanager.NetDelegates.fCfgModifyInfoCallBack;
import netmanager.lib.netmanager.NetDelegates.fDevBandwidthTestCallBack;
import netmanager.lib.netmanager.NetDelegates.fDevReconnectCallBack;
import netmanager.lib.netmanager.NetDelegates.fDeviceUpgradeCallBack;
import netmanager.lib.netmanager.NetDelegates.fDisConnectCallBack;
import netmanager.lib.netmanager.NetDelegates.fFaceDeleteInfoCallBack;
import netmanager.lib.netmanager.NetDelegates.fFaceFeatureExtInfoCallBack;
import netmanager.lib.netmanager.NetDelegates.fHaveLoginCallBack;
import netmanager.lib.netmanager.NetDelegates.fLoadPosCallBack;
import netmanager.lib.netmanager.NetDelegates.fLoadPosCallBackEx;
import netmanager.lib.netmanager.NetDelegates.fPlaybackDataCallBack;
import netmanager.lib.netmanager.NetDelegates.fQRCodeInfoCallBack;
import netmanager.lib.netmanager.NetDelegates.fRealAudioDataCallBack;
import netmanager.lib.netmanager.NetDelegates.fRealPlayDataCallBack;
import netmanager.lib.netmanager.NetDelegates.fRealPlayDataCallBackEx;
import netmanager.lib.netmanager.NetDelegates.fRealPlayDisConnectCallBack;
import netmanager.lib.netmanager.NetDelegates.fRegServerCallBack;
import netmanager.lib.netmanager.NetDelegates.fSearchDevicesCallBack;
import netmanager.lib.netmanager.NetDelegates.fSubDisConnectCallBack;
import netmanager.lib.netmanager.NetDelegates.fTalkBackDataCallBack;
import netmanager.lib.netmanager.NetDelegates.fTransComDataCallBack;
import netmanager.lib.netmanager.NetStructs.NetPicParamCV1;
import netmanager.lib.netmanager.NetStructs.STU_BIN_DATA;
import netmanager.lib.netmanager.NetStructs.STU_CFG_ADD_USER;
import netmanager.lib.netmanager.NetStructs.STU_CFG_DELETE_USER;
import netmanager.lib.netmanager.NetStructs.STU_CFG_MODIFY_USER;
import netmanager.lib.netmanager.NetStructs.STU_CFG_USER_GET;
import netmanager.lib.netmanager.NetStructs.STU_DEVICE_ACTIVATE_INFO;
import netmanager.lib.netmanager.NetStructs.STU_DEVICE_IP_SEARCH_INFO;
import netmanager.lib.netmanager.NetStructs.STU_DEVICE_SEARCH_CONDITION_INFO;
import netmanager.lib.netmanager.NetStructs.STU_DOOR_CFG_PERSON_MULTI_ADD_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_DOWNLOAD_FILE_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_ADD_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_ADD_IN_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_FACE_ADD_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_ADD_OUT_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_FACE_BIND_GROUP_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_BIND_GROUP_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_EXTRACT_SCHEDULE_INFO;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_ARRAY_INFO;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_CREATE_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_CREATE_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_DELETE_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_DELETE_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_DELETE_SCHEDULE_INFO;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_EDIT_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_GROUP_EDIT_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_ADD_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_ADD_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_DELETE_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_DELETE_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_GET_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_GET_IN_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_GET_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_GET_OUT_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_INFO_GET_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_INFO_GET_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_UPDATE_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_IMAGE_UPDATE_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_INFO_FIND_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_INFO_FIND_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_INFO_FIND_RESULT_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_INFO_FIND_RESULT_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_RECOGNIZE_STATIC_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_RECOGNIZE_STATIC_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_REC_REC_FIND_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_REC_REC_FIND_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_REC_REC_FIND_RESULT_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_REC_REC_FIND_RESULT_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_UNBIND_GROUP_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_FACE_UNBIND_GROUP_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_GET_4G_RSSI_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_GET_4G_RSSI_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_IN_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_IN_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_IN_MULTI_FILE_DOWNLOAD_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_IN_MULTI_FILE_DOWNLOAD_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_LOAD_PIC_BY_PAIR_INPUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_MULTI_FACE_FEATURE_ADD_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_MULTI_FACE_FEATURE_ADD_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_OUT_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_OUT_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_OUT_MULTI_FILE_DOWNLOAD_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_OUT_MULTI_FILE_DOWNLOAD_PARAM_EX;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_DELETE_BYID_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_DELETE_BYID_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_ADD_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_ADD_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_GET_BYID_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_GET_BYID_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_GET_BYTOKEN_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_GET_BYTOKEN_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_UPDATE_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_INFO_UPDATE_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_NAME_CHECK_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PERSON_NAME_CHECK_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PRE_FIND_FILES_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_PRE_FIND_FILES_OUT_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_RECORD_BY_TIME;
import netmanager.lib.netmanager.NetStructs.STU_REMOVE_FILE_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_SYS_INFO;
import netmanager.lib.netmanager.NetStructs.STU_TIME;
import netmanager.lib.netmanager.NetStructs.STU_TRANS_COM_IN_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_T_FILE;
import netmanager.lib.netmanager.NetStructs.STU_UPGRADE_PROGRESS_INFO;
import netmanager.lib.netmanager.NetStructs.STU_UPLOAD_FILE_PARAM;
import netmanager.lib.netmanager.NetStructs.STU_VIDEO_ENCODE_SET_I_FRAME_PARAM;

public interface NetLib extends Library {
//    public static String ry_net_library_name = "netmanager";
//    NetLib instance = (NetLib) Native.loadLibrary(PlatUtils.sdk_plat_getLoadLibrary(ry_net_library_name), NetLib.class);

    //////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		NET_Init
     参数：		[in] fDisconnectCB 				设备网络断线回调函数
     [in] userdata					用户数据
     返回值：		成功返回TRUE, 失败返回FALSE。
     说明：		用户在使用网络库之前，必须进行初始化
     *********************************************************************************/
    public boolean Net_Init(fDisConnectCallBack fDisconnectCB, NativeLong userdata);

    /********************************************************************************
     函数：		NET_Exit
     参数：		/
     返回值：		/
     说明：		用户确认在不使用网络库任何功能之后，需要调用退出函数清理网络库资源
     *********************************************************************************/
    public void Net_Exit();

    /********************************************************************************
     函数：		NET_Version
     参数：		/
     返回值：		网络库版本号
     说明：		获取库版本信息
     *********************************************************************************/
    public int Net_Version();

    /********************************************************************************
     函数：		NET_LastError
     参数：		/
     返回值：	网络库最近一次错误发生时产生的错误码。
     说明：		错误码可以帮助用户快速定位问题，开发过程中请注意错误码的收集
     错误码结构说明：
     *注：可通过调用接口 Net_LastErrorString 将错误码转成文字说明
     1、将错误码转16进制，DWORD类型，由两部分组成，0x(ErrorType)0000 | (ErrCode)，例如0x00090010
     2、前两个字节0009，表示错误类型（ErrorType），此例子中，表示人脸库错误码
     3、后两个字节0010，表示具体错误（ErrCode），此列子中，表示人脸图片已入库
     4、具体错误码参照 NetDefs.java
     *********************************************************************************/
    public int Net_LastError();

    /********************************************************************************
     函数：		Net_LastErrorString
     参数：		[in] dwErrCode			错误码，通过Net_LastError获得
     [out] pszErr			输出的错误码说明，建议长度预留至少128个字节, char*
     返回值：	网络库最近一次错误发生时产生的错误码说明。
     说明：		错误码可以帮助用户快速定位问题，开发过程中请注意错误码的收集
     *********************************************************************************/
    public void Net_LastErrorString(final int dwErrCode, Pointer pszErr);

    /********************************************************************************
     函数：		Net_SetLogFolder
     参数：		/
     返回值：	/
     说明：		设置日志保存目录，需自行保证目录已存在
     不调用则日志默认保存在当前目录
     调用 Net_SetLogOption 前，先调用此函数
     配合 Net_SetLogOption 选项 NET_LOG_ATTRIBUTE_WRITE 使用
     *********************************************************************************/
    public void Net_SetLogFolder(final String strLogFolder);

    /********************************************************************************
     函数：		Net_SetLogOption
     参数：		/
     返回值：	/
     说明：		设置日志选项
     *********************************************************************************/
    public void Net_SetLogOption(int nOption);

    /********************************************************************************
     函数：		Net_ReconnectOpen
     参数：		[in] lLoginID			设备登录ID
     [in] cbReconn			重连结果回调
     [in] dwUser				回调用户参数
     [in] nReconnPeriod		重连周期，单位s，默认20s重连一次，最小值10s
     [in] nReconnectTimes	重连总次数，设置为0表示无限重连
     返回值：	/
     说明：		开启断线重连，不调用默认不开启
     *注意：此接口暂不支持主动注册
     *********************************************************************************/
    public boolean Net_OpenReconnect(NativeLong lLoginID, fDevReconnectCallBack cbReconn, NativeLong dwUser, int nReconnectPeriod/* = 20*/, int nReconnectTimes/* = 25*/);

    /********************************************************************************
     函数：		NET_SetSubDisconnCallBack
     参数：		[in] fSubDisconnectCB				动态子连接断线回调函数
     [in] dwUser							用户数据
     返回值：		/
     说明：		设置动态子连接断线回调函数
     *********************************************************************************/
    public void Net_SetSubDisconnCallBack(fSubDisConnectCallBack fSubDisconnectCB, NativeLong userdata);

    /********************************************************************************
     函数：		Net_SetSubHeartbeatDetection
     参数：		[in] emType							动态子连接类型, EM_VIRTUAL_INTERFACE_TYPE
     [in] bDetect						是否检查动态子链接断线
     返回值：		/
     说明：		调用业务接口前调用此接口，设置是否开启动态子连接断线检测
     不调用，则默认开启视频拉流和图片订阅（暂只支持此两个子链接的心跳检测）
     *********************************************************************************/
    public boolean Net_SetSubHeartbeatDetection(final int emType, final int bDetect);

    /********************************************************************************
     函数：		NET_SetConnectTime
     参数：		[in] waitTime						连接等待超时时间（ms）
     [in] tryTimes						最大连接尝试次数
     返回值：		/
     说明：		设置连接设备超时时间和尝试次数
     *********************************************************************************/
    public void Net_SetConnectTime(int waitTime, int tryTimes);

    /********************************************************************************
     函数：		void Net_GetNetworkParam(STU_NET_PARAM *pNetParam)
     参数：		[in] STU_NET_PARAM* pNetParam						网络参数
     返回值：		/
     说明：		获取网络参数
     *********************************************************************************/
    public void Net_GetNetworkParam(Pointer ptrNetworkParam);

    /********************************************************************************
     函数：		NET_SetNetworkParam
     参数：		[in] STU_NET_PARAM* pNetParam						网络参数
     返回值：		/
     说明：		设置网络参数, 用户需在登入设备之前进行设置
     *********************************************************************************/
    public void Net_SetNetworkParam(Pointer ptrNetworkParam);

    /********************************************************************************
     函数：		NET_LoginDevice
     参数：		[in] ip							设备 IP 地址
     [in] port						设备登入端口
     [in] username					设备登入用户名称
     [in] password					设备登入用户密码
     [in] ptrReserved				预留位
     [out] error						登入错误码
     0 - 无错误
     1 - 创建网络连接错误
     2 - 创建设备登录句柄错误
     3 - 登录响应超时
     返回值：		成功返回设备登入句柄，失败返回  0
     说明：		登入设备
     *********************************************************************************/
    public NativeLong Net_LoginDevice(String ip, int port, String username, String password, Pointer ptrReserved, IntByReference error);

    /********************************************************************************
     函数：		Net_LoginDeviceSpec
     参数：		[in] lpszIP							设备 IP 地址
     [in] nPort							设备登入端口
     [in] lpszUserName					设备登入用户名称
     [in] lpszPassword					设备登入用户密码
     [in] nSpecType						特殊的登录方式 （如：0x10 主动注册）详情见EM_LOGIN_PROTOCAL_TYPE
     [in] pSpecParam						特殊登录时所需的参数,不需要就传NULL
     举例：主动注册时传入fRegServerCallBack返回pParam
     [in] pReserved						预留位
     [out] pnError						登入错误码
     0 - 无错误
     1 - 创建网络连接错误
     2 - 创建设备登录句柄错误
     3 - 登录响应超时
     返回值：		成功返回设备登入句柄，失败返回 0
     说明：	    登入设备
     *********************************************************************************/
    public NativeLong Net_LoginDeviceSpec(String lpszIP, int nPort, String strUserName, String strPassword,
                                          int nSpecType, String strDevSN, Pointer pReserved /*= NULL*/, IntByReference pError /*= 0*/);

    /********************************************************************************
     函数：		NET_LogoutDevice
     参数：		[in] loginID					设备登入句柄
     返回值：		成功返回 true，失败返回  false。
     说明：		登出设备
     *********************************************************************************/
    public boolean Net_LogoutDevice(NativeLong loginID);

    /********************************************************************************
     函数：		Net_AsyncLoginDevice
     参数：		[in] lpszIP							设备 IP 地址
     [in] nPort							设备登入端口
     [in] lpszUserName					设备登入用户名称
     [in] lpszPassword					设备登入用户密码
     [in] fHaveLoginCallBack				异步登录回调
     [in] dwUser							异步登录回调参数
     [in] pReserved						预留位
     返回值：		成功返回设备异步登入句柄，失败返回 0
     说明：	    异步登入设备，登出设备时依旧使用 Net_LogoutDevice
     *********************************************************************************/
    public NativeLong Net_AsyncLoginDevice(String strIP, int nPort, String strUserName,
                                           String strPassword, fHaveLoginCallBack cbLogin, NativeLong dwUser, Pointer pReserved);

    /********************************************************************************
     函数：		Net_StopAsyncLoginDevice
     参数：		[in] lLoginID						设备登入句柄
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		终止异步登录
     *********************************************************************************/
    public boolean Net_StopAsyncLoginDevice(NativeLong lLoginID);

    /********************************************************************************
     函数：		Net_GetLoginHandleStatus
     参数：		[in] lLoginID						设备登入句柄
     返回值：		登录句柄有效返回 1，登录句柄无效返回 0。
     说明：		获取登录句柄是否有效的状态
     *********************************************************************************/
    public int Net_GetLoginHandleStatus(NativeLong lLoginID);

    /********************************************************************************
     函数：		NET_GetSessionID
     参数：		[in] loginID					设备登入句柄
     返回值：		成功返回主连接ID，失败返回 0。
     说明：		获取主链接会话ID
     *********************************************************************************/
    public NativeLong Net_GetSessionID(NativeLong loginID);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //主动注册接口

    /********************************************************************************
     函数：		Net_RegStartServe
     参数：		[in] lpszIP						侦听 IP 地址
     [in] nPort						侦听端口
     [in] cbListen					侦听服务器回调函数
     [in] dwUserData					用户数据参数
     返回值：		成功返回侦听服务器句柄（>0），失败返回 0。
     说明：		主动注册功能，启动服务
     *********************************************************************************/
    public NativeLong Net_RegStartServer(
            String strIP,
            int nPort,
            fRegServerCallBack cbListen,
            NativeLong dwUserData);

    /********************************************************************************
     函数：		Net_RegStopServer
     参数：		[in] lServerHandle				侦听服务器句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		主动注册功能，停止服务
     *********************************************************************************/
    public boolean Net_RegStopServer(NativeLong lServerHandle);

    /********************************************************************************
     函数：		Net_RegAccept
     参数：		[in] lpszSerialNumber	设备序列号
     [in] lpszIP				设备 IP
     [in] nPort				设备端口号
     [in] bAccept			是否接受请求
     [in] nType				类型
     [in] pParam				类型参数
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		主动注册功能，响应设备的注册请求
     *********************************************************************************/
    public boolean Net_RegAccept(String strSerialNumber,
                                 String strIP, int nPort, int bAccept, int nType /*= -1*/, Pointer pParam /*= NULL*/);

    //////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		NET_RealPlay
     参数：		[in] loginID						设备登入句柄
     [in] channel						实时监视通道号
     [in] hWnd							实时播放窗口句柄
     [in] emType							实时流类型，默认为实时预览
     返回值：		成功返回实时播放句柄，失败返回  0。
     说明：		开始实时监视。用户调用该函数，可以直接在指定窗口播放实时视频；
     当播放的窗口为 null, 则用户需要调用播放库相关接口，实现播放控制，
     *********************************************************************************/
    public NativeLong Net_RealPlay(NativeLong loginID, int channel, Pointer hWnd, int emType);

    /********************************************************************************
     函数：		NET_StartRealPlay
     参数：		[in] loginID						设备登入句柄
     [in] channel						实时监视通道号
     [in] hWnd							实时播放窗口句柄
     [in] nStreamType					实时流类型 (EM_REALPLAY_STREAM_TYPE)
     [in] fRealDataCB					实时数据回调函数，可设为 NULL
     [in] fRealPlayDisconnCB				实时监视断开回调函数，可设为 NULL
     [in] userdata						用户数据
     [in] waitTime						实时监视超时时间（ms）
     返回值：		成功返回实时监视句柄，失败返回  0。
     说明：		开始实时播放。
     用户可以调用该函数在指定窗口播放设备指定通道的指定码流类型的视频流。
     当播放的窗口为 null, 则用户需要调用播放库相关接口，实现播放控制，
     *********************************************************************************/
    public NativeLong Net_StartRealPlay(
            NativeLong lLoginID,
            int channel,
            Pointer hWnd,
            int nStreamType,
            fRealPlayDataCallBackEx fRealDataCB,
            fRealPlayDisConnectCallBack fRealPlayDisconnCB,
            NativeLong userdata,
            int waitTime /*= 10000*/);

    /********************************************************************************
     函数：		NET_StopRealPlay
     参数：		[in] realHandle							实时监视句柄
     返回值：		成功返回 true，失败返回  false。
     说明：		停止实时播放
     *********************************************************************************/
    public boolean Net_StopRealPlay(NativeLong realHandle);

    /********************************************************************************
     函数：		Net_GetRealPlayHandleStatus
     参数：		[in] lRealHandle							实时监视句柄
     返回值：		实时监视句柄有效返回 1，实时监视句柄无效返回 0。
     说明：		获取实时监视句柄是否有效
     *********************************************************************************/
    public int Net_GetRealPlayHandleStatus(NativeLong lRealHandle);

    /********************************************************************************
     函数：		NET_SetRealDataCallBack
     参数：		[in] realHandle						实时监视句柄
     [in] cbRealData						实时监视数据回调函数
     [in] userdata						用户数据
     返回值：		成功返回 true，失败返回  false。
     说明：		设置实时监视数据回调
     *********************************************************************************/
    public boolean Net_SetRealDataCallBack(NativeLong realHandle, fRealPlayDataCallBack cbRealData, NativeLong userdata);

    /********************************************************************************
     函数：		NET_SetRealDataCallBackEx
     参数：		[in] lRealHandle					实时监视句柄
     [in] cbRealData						实时监视数据回调函数
     [in] dwUser							用户数据
     [in] dwFlag							数据类型（当前为 1）
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		设置实时监视数据回调
     *********************************************************************************/
    public boolean Net_SetRealDataCallBackEx(NativeLong lRealHandle, fRealPlayDataCallBackEx cbRealData, NativeLong dwUser, int dwFlag);

    /********************************************************************************
     函数：		Net_VideoEncodeSetIFrame
     参数：		[in] lLoginID						设备登入句柄
     [in] lpstParam						输入参数,
     [in] dwWaitTime						超时时间（ms）
     返回值：	成功返回TRUE，失败返回 FALSE。
     说明：		设置强制I帧
     *********************************************************************************/
    public boolean Net_VideoEncodeSetIFrame(NativeLong lLoginID, STU_VIDEO_ENCODE_SET_I_FRAME_PARAM.ByReference lpstParam, int dwWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_StartTalkBack(音频采样仅支持Windows)
     参数：		[in] loginID						设备登入句柄
     [in] channel						语音对讲解码通道号
     [in] nType							实时音频流类型(EM_REALAUDIO_STREAM_TYPE)，默认 REALAUDIO_STREAM_TYPE_REAL_MASTER
     [in] cbRealData						实时对讲数据回调函数
     [in] userdata						对讲数据回调用户参数
     [in] waitTime						对讲请求超时时间
     [in] volLevel						对讲音量等级
     [-2，-1， 0， 1， 2, 3, 4] 等级越高音量越大
     0 表示正常音量
     返回值：		成功返回语音对讲句柄，失败返回  0。
     说明：		开始语音对讲监视。用户调用该函数，可以开启语音对讲
     *********************************************************************************/
    public NativeLong Net_StartTalkBack(
            NativeLong lLoginID,
            int channel,
            int nType,
            fTalkBackDataCallBack cbRealData,
            NativeLong userdata,
            int waitTime /*= 5000*/,
            int nVolLevel /*= 0*/);

    /********************************************************************************
     函数：		Net_StartTalkBackEx(音频采样仅支持Windows)
     参数：		[in] lLoginID						设备登入句柄
     [in] nChannelID						语音对讲解码通道号
     [in] rType							实时音频流类型，默认 REALAUDIO_STREAM_TYPE_REAL_MASTER, EM_REALAUDIO_STREAM_TYPE
     [in] pInfo							实时对讲参数信息, STU_AUDIO_FORMAT_INFO*
     [in] dwWaitTime						对讲请求超时时间
     [in] pReserved						保留参数, void*
     返回值：		成功返回语音对讲句柄，失败返回 0。
     说明：		开始语音对讲监视Ex。用户调用该函数，可以开启语音对讲
     *********************************************************************************/
    public NativeLong Net_StartTalkBackEx(NativeLong lLoginID, int nChannelID, int rType,
                                          Pointer pInfo, int dwWaitTime /*= 5000*/, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_StopTalkBack(仅支持Windows)
     参数：		[in] talkHandle							语音对讲句柄
     返回值：		成功返回 true，失败返回 false。
     说明：		停止语音对讲
     *********************************************************************************/
    public boolean Net_StopTalkBack(NativeLong talkHandle);

    /********************************************************************************
     函数：		Net_GetTalkBackHandleStatus
     参数：		[in] lRealHandle							语音对讲句柄
     返回值：		语音对讲句柄有效返回 1，语音对讲句柄无效返回 0。
     说明：		获取语音对讲句柄是否有效
     *********************************************************************************/
    public int Net_GetTalkBackHandleStatus(NativeLong lTalkHandle);

    /********************************************************************************
     函数：		Net_SetTalkBackCallBack(仅支持Windows)
     参数：		[in] talkHandle						语音对讲句柄
     [in] cbRealData						设备端语音对讲数据回调函数
     [in] dwUser							用户数据
     返回值：		成功返回 true，失败返回  false。
     说明：		设置语音对讲数据回调
     *********************************************************************************/
    public boolean Net_SetTalkBackCallBack(NativeLong talkHandle, fTalkBackDataCallBack cbRealData, NativeLong userdata);

    /********************************************************************************
     函数：		Net_SetTalkBackVolume(仅支持Windows)
     参数：		[in] talkHandle						语音对讲句柄
     [in] volLevel						对讲音量等级
     [-2，-1， 0， 1， 2, 3, 4] 等级越高音量越大
     0 表示正常音量
     返回值：		成功返回 true，失败返回 false。
     说明：		设置语音对讲音量大小
     *********************************************************************************/
    public boolean Net_SetTalkBackVolume(NativeLong talkHandle, int volLevel);

    /********************************************************************************
     函数：		Net_CreateRealAudioChannel（仅音频对讲数据接收）
     参数：		[in] lLoginID						设备登入句柄
     [in] nChannelID						语音对讲解码通道号
     [in] rType							设备采集的音频流类型，默认 REALAUDIO_STREAM_TYPE_REAL_MASTER
     [in] pSendAudioFormat				发送给设备的音频格式
     [in] cbRealData						实时音频数据回调函数
     [in] dwUser							实时音频回调用户参数
     [in] dwWaitTime						实时音频请求超时时间
     返回值：	成功返回实时音频通道句柄，失败返回 0。
     说明：		创建实时音频通道。用户调用该函数，可以开启实时音频。配合 Net_SendRealAudioData 接口发送数据
     *********************************************************************************/
    public NativeLong Net_CreateRealAudioChannel(NativeLong lLoginID, int nChannelID,
                                                 int rType, Pointer pSendAudioFormat, fRealAudioDataCallBack cbRealData /*= NULL*/,
                                                 NativeLong dwUser /*= 0*/, int dwWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_CreateRealAudioSendChannelOnly（仅实时音频数据发送）
     参数：		[in] lLoginID						设备登入句柄
     [in] nChannelID						语音对讲解码通道号
     [in] pSendAudioFormat				发送给设备的音频格式, STU_REAL_AUDIO_FORMAT_INFO*
     [in] dwWaitTime						实时音频请求超时时间
     返回值：	成功返回实时音频通道句柄，失败返回 0。
     说明：		创建实时音频发送通道, 配合 Net_SendRealAudioData 接口向设备发送音频数据
     *********************************************************************************/
    public NativeLong Net_CreateRealAudioSendChannelOnly(NativeLong lLoginID, int nChannelID,
                                                         Pointer pSendAudioFormat, int dwWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_SendRealAudioData（发送实时音频数据）
     参数：		[in] lAudioHandle					实时音频通道句柄
     [in] pBuffer						音频数据, unsigned char*
     [in] nBufLen						音频数据长度
     [in] pReserved						保留参数, void*

     返回值：	成功返回TRUE, 失败返回FALSE。
     说明：		发送实时音频数据，配合 Net_CreateRealAudioSendChannelOnly 使用
     *********************************************************************************/
    public boolean Net_SendRealAudioData(NativeLong lAudioHandle, Pointer pBuffer, int nBufLen, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_CreateRealAudioRecvChannelOnly（仅实时音频数据接收）
     参数：		[in] lLoginID						设备登入句柄
     [in] nChannelID						语音对讲解码通道号
     [in] rType							设备采集的音频流类型，默认 REALAUDIO_STREAM_TYPE_REAL_MASTER, EM_REALAUDIO_STREAM_TYPE
     [in] cbRealData						实时音频数据回调函数
     [in] dwUser							实时音频回调用户参数
     [in] dwWaitTime						实时音频请求超时时间
     返回值：	成功返回实时音频通道句柄，失败返回 0。
     说明：		创建实时音频接收通道，接收实时音频
     *********************************************************************************/
    public NativeLong Net_CreateRealAudioRecvChannelOnly(NativeLong lLoginID, int nChannelID,
                                                         int rType, fRealAudioDataCallBack cbRealData /*= NULL*/, NativeLong dwUser /*= 0*/, int dwWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_CloseRealAudioChannel
     参数：		[in] lAudioHandle							实时音频通道句柄
     返回值：	成功返回TRUE，失败返回 FALSE。
     说明：		停止实时音频，可用于停止 Net_CreateRealAudioChannel、Net_CreateRealAudioSendChannelOnly、Net_CreateRealAudioRecvChannelOnly
     *********************************************************************************/
    public boolean Net_CloseRealAudioChannel(NativeLong lAudioHandle);

    /********************************************************************************
     函数：		Net_FlushRealAudioChannel
     参数：		[in] lAudioHandle						实时音频通道句柄
     [in] nChannelID							实时音频解码通道号
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		清除实时音频缓存
     *********************************************************************************/
    public boolean Net_FlushRealAudioChannel(NativeLong lAudioHandle, int nChannelID);

    /********************************************************************************
     函数：		NET_AdjustFluency
     参数：		[in] lRealHandle					实时监视句柄
     [in] nLevel							流畅性值（范围： 0 - 6）
     值越高流畅性越好，
     值越低实时性越好。
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		设置图像流畅性。
     实时监视视频的流畅性越好，实时性就会越低，用户需要选择合理的策略
     *********************************************************************************/
    public boolean Net_AdjustFluency(NativeLong lRealHandle, int nLevel);

    /********************************************************************************
     函数：		NET_StartSaveRealData
     参数：		[in] lRealHandle					实时监视句柄
     [in] lpszFileName				    保存数据的文件名
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		开始保存数据为文件
     *********************************************************************************/
    public boolean Net_StartSaveRealData(NativeLong lRealHandle, final String strFileName);

    /********************************************************************************
     函数：		BOOL NET_StopSaveRealData(LLONG lRealHandle)
     参数：		[in] lRealHandle						实时监视句柄
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		结束保存数据为文件
     *********************************************************************************/
    public boolean Net_StopSaveRealData(NativeLong lRealHandle);

    /********************************************************************************
     函数：		NET_SetVideoBasicEffect
     参数：		[in] lPlayHandle						视频播放句柄
     [in] nBrightness						亮度值（0-128）
     [in] nContrast							对比度值（0-128）
     [in] nHue								灰度值（0-128）
     [in] nSaturation						饱和度值（0-128）
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		设置视频图像显示属性，设置后不会生效到图像配置
     *********************************************************************************/
    public boolean Net_SetVideoBasicEffect(NativeLong lPlayHandle, int nBrightness, int nContrast, int nHue, int nSaturation);

    /********************************************************************************
     函数：		NET_GetVideoBasicEffect
     参数：		[in] lPlayHandle						视频播放句柄
     [out] nBrightness						亮度值（0-128）
     [out] nContrast							对比度值（0-128）
     [out] nHue								灰度值（0-128）
     [out] nSaturation						饱和度值（0-128）
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		获取图像属性
     *********************************************************************************/
    public boolean Net_GetVideoBasicEffect(NativeLong lPlayHandle, IntByReference nBrightness, IntByReference nContrast, IntByReference nHue, IntByReference nSaturation);

    /********************************************************************************
     函数：		NET_CapturePicture
     参数：		[in] lPlayHandle						视频播放句柄
     [in] lpszPicFileName					图片文件名称
     [in] emFormat							抓拍图片格式
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		抓图
     *********************************************************************************/
    public boolean Net_CapturePicture(NativeLong lPlayHandle, final String strPicFileName, int eFormat);

    /********************************************************************************
     函数：		NET_OpenSound（仅Windows）
     参数：		[in] playHandle						视频播放句柄
     返回值：		成功返回 true，失败返回  false。
     说明：		打开声音
     NET_OpenSound 和 NET_CloseSound 配套使用
     *********************************************************************************/
    public boolean Net_OpenSound(NativeLong playHandle);

    /********************************************************************************
     函数：		NET_SetVolume（仅Windows）
     参数：		[in] playHandle						视频播放句柄
     [in] volume							音量大小（0-0xffff）
     返回值：		成功返回 true，失败返回  false。
     说明：		打开声音后可以调节音量
     *********************************************************************************/
    public boolean Net_SetVolume(NativeLong playHandle, int volume);

    /********************************************************************************
     函数：		NET_CloseSound（仅Windows）
     参数：		/
     返回值：		成功返回 true，失败返回 false。
     说明：		关闭声音
     NET_OpenSound 和 NET_CloseSound 配套使用
     *********************************************************************************/
    public boolean Net_CloseSound();

    /////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_PreFindFile
     参数：		[in] loginID					设备登入句柄
     [in] channel					查询的通道号
     [in] nDBType					查询的数据库类型(EM_DATABASE_TYPE)， 如 0 表示人脸图片数据库
     [in] ptrTimeStart				查询的开始时间
     [in] ptrTimeEnd					查询的结束时间
     [in] events      				查询的关联事件（一般为null，数组形式的 Json 字符串）
     [in] dirs						查询的关联目录（一般为null，数组形式的 Json 字符串）
     [in] nVStreamType				视频码流类型(EM_VIDEO_STREAM_TYPE)
     [in] nOrderType					查询排序类型(EM_ORDER_TYPE)
     [in] waitTime					超时时间
     返回值：		成功返回文件查询句柄，失败返回  0。
     说明：		预查询文件
     获取到文件查询句柄后，需要调用关闭查询接口，达到闭环处理
     *********************************************************************************/
    public NativeLong Net_PreFindFile(
            NativeLong loginID,
            int channel,
            int nDBType,
            STU_TIME.ByReference ptrTimeStart,
            STU_TIME.ByReference ptrTimeEnd,
            String events /* = null*/,
            String dirs  /* = null*/,
            int nVStreamType /*= VIDEO_STREAM_ERROR*/,
            int nOrderType /*= ORDER_TYPE_DESCENT*/,
            int waitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_FindMultiFiles
     参数：		[in] loginID						设备登入句柄
     [in] findHandle						文件查找句柄（预查询文件获取）
     [out] fileCount						需要查找的文件总数
     [in] waitTime						查找超时时间
     返回值：		成功返回 true，失败返回 false。
     说明：		预查询成功后才能调用
     *********************************************************************************/
    public boolean Net_FindFileCount(
            NativeLong loginID,
            NativeLong findHandle,
            IntByReference fileCount,
            int waitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_FindOneFile
     参数：		[in] loginID						设备登入句柄
     [in] findHandle						文件查找句柄（预查询文件获取）
     [out] ptrTFile						查找到的文件（信息）
     [in] waitTime						查找超时时间
     返回值：		成功返回 1，失败返回<=0。
     说明：		预查询成功后，一次只能查找一个文件，可以不断查询直到文件查询结束
     返回值为 0 说明没有查询到，< 0 则查询错误，> 0 则查询到 1 个文件
     *********************************************************************************/
    public int Net_FindOneFile(
            NativeLong loginID,
            NativeLong findHandle,
            STU_T_FILE.ByReference ptrTFile,
            int waitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_FindMultiFiles
     参数：		[in] loginID						设备登入句柄
     [in] findHandle						文件查找句柄（预查询文件获取）
     [in] fileCount						需要查找的文件个数
     [out] ptrFileList					查找到的文件列表
     [out] nRealFileCount				实际查找到的文件个数
     [in] nWaitTime						查找超时时间（ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		预查询成功后才能调用
     *********************************************************************************/
    public boolean Net_FindMultiFiles(
            NativeLong loginID,
            NativeLong findHandle,
            int fileCount,
            Pointer ptrFileList,
            IntByReference realFileCount,
            int nWaitTime /*= 10000*/);

    /********************************************************************************
     函数：		Net_CloseFindFile

     参数：		[in] loginID						设备登入句柄
     [in] findHandle						文件查询句柄
     [in] waitTime						超时时间（ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		终止查找文件
     与 NET_PreFindFile 接口配套使用
     *********************************************************************************/
    public boolean Net_CloseFindFile(
            NativeLong loginID,
            NativeLong findHandle,
            int waitTime /*= 5000*/);

    /////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_RebootDevice
     参数：		[in] loginID					设备登入句柄
     返回值：		成功返回 true，失败返回 false。
     说明：		重启设备
     *********************************************************************************/
    public boolean Net_RebootDevice(NativeLong loginID);

    /********************************************************************************
     函数：		Net_ResetDevice
     参数：		[in] loginID					设备登入句柄
     返回值：		成功返回 true，失败返回 false。
     说明：		恢复出厂设置
     *********************************************************************************/
    public boolean Net_ResetDevice(NativeLong loginID);

    /////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_SetDeviceCfg
     参数：		[in] lLoginID					设备登录句柄
     [out] pSysInfo					设备系统信息, STU_SYS_INFO 类型
     [in] nWaitTime					响应超时时间（单位 ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		获取设备系统信息
     *********************************************************************************/
    public boolean Net_GetSysInfo(NativeLong loginID, STU_SYS_INFO.ByReference pSysInfo, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_GetSpecifiedSysInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] nType						指定设备系统信息类型
     0 - 系统所有信息 对应 STU_SYS_INFO 结构体
     1 - 系统设备信息 对应 STU_SYS_DEVICE_INFO 结构体
     2 - 系统软件版本信息 对应 STU_SYS_SOFTWARE_VERSION 结构体
     3 - 系统硬件版本信息 对应 STU_SYS_HARDWARE_VERSION 结构体
     4 - 系统处理器信息 对应 STU_SYS_PROCESSOR_INFO 结构体
     5 - 系统内存信息 对应 STU_SYS_MEMORY_INFO 结构体
     [out] pSysInfo					指定的设备系统信息
     [in] nSysInfoSize				指定的设备系统信息大小
     [in] nWaitTime					响应超时时间（单位 ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取指定的设备系统信息
     *********************************************************************************/
    public boolean Net_GetSpecifiedSysInfo(NativeLong lLoginID, int nType, Pointer pSysInfo, int nSysInfoSize, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_GetSerialNumber
     参数：		[in] loginID					设备登入句柄
     [out] ptrSn						设备序列号字符串
     [in] nSize						序列号字符数组大小
     [in] nWaitTime					超时时间 (ms)
     返回值：		成功返回 true，失败返回 false。
     说明：		获取设备序列号
     *********************************************************************************/
    public boolean Net_GetSerialNumber(NativeLong loginID, Pointer ptrSn, int nSize, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_GetDeviceTime
     参数：		[in] lLoginID					设备登入句柄
     [out] pDeviceTime				设备时间，STU_TIME 类型
     [in] nWaitTime					超时时间 (ms)
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取设备当前时间
     *********************************************************************************/
    public boolean Net_GetDeviceTime(NativeLong loginID, STU_TIME.ByReference pDeviceTime, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_SetDeviceTime
     参数：		[in] lLoginID					设备登入句柄
     [in] pDeviceTime				需同步的设备时间, STU_TIME 类型
     [in] nWaitTime					超时时间 (ms)
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		同步设备时间
     *********************************************************************************/
    public boolean Net_SetDeviceTime(NativeLong loginID, STU_TIME.ByReference pDeviceTime, int nWaitTime /*= 1500*/);

    /********************************************************************************
     函数：		Net_GetDeviceCaps
     参数：		[in] loginID					设备登录句柄
     [in] nType						设备能力命令类型(EM_DEVICE_CAPS_TYPE)
     [in] channel					设备通道号(从 0 开始, 0 表示通道 1；-1 表示不使用通道)
     [out] ptrOutBuffer				能力输出信息（对应命令类型的结构体）
     [in] outBufferSize				能力输出信息大小
     [in] nWaitTime					响应超时时间（ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		查询能力信息
     *********************************************************************************/
    public boolean Net_GetDeviceCaps(
            NativeLong loginID,
            int nType,
            int channel,
            Pointer ptrOutBuffer,
            int outBufferSize,
            int waitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_GetDeviceCfg
     参数：		[in] loginID					设备登录句柄
     [in] command					设备配置命令类型
     [in] channel					设备通道号(从 0 开始, 0 表示通道 1；-1 表示不使用通道)
     [out] ptrOutBuffer				配置输出信息（对应命令类型的结构体）
     [in] outBufferSize				配置输出信息大小
     [in] waitTime					响应超时时间（单位 ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		查询配置信息
     *********************************************************************************/
    public boolean Net_GetDeviceCfg(
            NativeLong lLoginID,
            int command,
            int channel,
            Pointer ptrOutBuffer,
            int outBufferSize,
            IntByReference returnSize,
            int waitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_SetDeviceCfg
     参数：		[in] lLoginID					设备登录句柄
     [in] command					设备配置命令类型
     [in] channel					设备通道号(从 0 开始, 0 表示通道 1；-1 表示不使用通道)
     [in] ptrInBuffer					配置输入信息（对应命令类型的结构体）
     [in] inBufferSize				配置输入信息大小
     [in] waitTime					响应超时时间（ms）
     返回值：		成功返回 true，失败返回 false。
     说明：		设置配置信息
     *********************************************************************************/
    public boolean Net_SetDeviceCfg(
            NativeLong loginID,
            int command,
            int channel,
            Pointer ptrInBuffer,
            int inBufferSize,
            int waitTime /*= 6000*/);

    /////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_ManualSnap
     参数：		[in] lLoginID				设备登入句柄
     [in] nChannelID				订阅通道号
     [in] pReserved				保留参数
     [in] nWaitTime				超时时间(ms)
     返回值：		成功返回TRUE，失败返回值FALSE。
     说明：		触发手动抓拍事件，需要先调用Net_RealLoadPicture订阅事件
     *********************************************************************************/
    public boolean Net_ManualSnap(
            NativeLong lLoginID,
            int nChannelID,
            Pointer pReserved /*= NULL*/,
            int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_ManualSnapEx
     参数：		[in] lLoginID				设备登入句柄
     [in] nChannelID				订阅通道号
     [in] pstInParam				输入参数
     [in] pReserved				保留参数
     [in] nWaitTime				超时时间(ms)
     返回值：		成功返回TRUE，失败返回值FALSE。
     说明：		触发手动抓拍事件Ex，需要先调用Net_RealLoadPicture订阅事件
     *********************************************************************************/
    public boolean Net_ManualSnapEx(
            NativeLong lLoginID,
            int nChannelID,
            Pointer pstInParam,
            Pointer pReserved /*= NULL*/,
            int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_RealLoadPicture
     参数：		[in] LoginID				设备登入句柄
     [in] channel				订阅通道号
     [in] eventType				智能事件类型, EM_EVENT_SP_TYPE
     [in] dataType				需设置的返回的数据类型
     -1 - 不返回数据；0-只返回智能信息；1-返回智能信息和图片数据
     [in] cbAnalyzeData			智能分析数据回调函数
     [in] userdata				用户数据
     [in] ptrRserved				预留位
     返回值：		成功返回智能数据实时订阅句柄，失败返回值<=0。
     说明：		单通道单事件订阅（支持所有事件订阅）
     用户可以多次调用 Net_RealLoadPicture 来订阅不同通道的不同事件，注意维护订阅句柄并主动释放
     实时上传智能分析数据，用户可以根据订阅的事件类型，获取设备的指定智能分析数据
     客户端直接对接设备时调用, 与 Net_StopLoadPicture 配合使用，闭环处理。
     *********************************************************************************/
    public NativeLong Net_RealLoadPicture(
            NativeLong loginID,
            int channel,
            int eventType,
            int dataType,
            fAnalyzeDataCallBack cbAnalyzerData,
            NativeLong userdata,
            Pointer ptrRserved);

    /********************************************************************************
     函数：		Net_RealLoadMultiTypePicture
     参数：		[in] lLoginID				设备登入句柄
     [in] nChannelIDArr			订阅通道号数组
     [in] nChannelNum			订阅通道号数目（必须与通道号数组元素个数一致）
     [in] dwEventTypeArr			智能事件类型数组
     [in] nEventTypeNum			智能事件类型数目（必须与智能事件类型数组元素个数一致）
     [in] nDataType				需设置的返回的数据类型
     -1 - 不返回数据；0-只返回智能信息；1-返回智能信息和图片数据
     [in] cbAnalyzeData			智能分析数据回调函数
     [in] dwUser				    用户数据
     [in] pReserved				预留位
     返回值：		成功返回智能数据实时订阅句柄，失败返回值 0。
     说明：		多通道多事件订阅
     如果需要订阅所有事件建议使用 Net_RealLoadPicture，事件类型选择 EVENT_SP_ALL
     实时上传智能分析数据，用户可以根据订阅的事件类型，获取设备的指定智能分析数据
     客户端直接对接设备时调用, 与 Net_StopLoadPicture 配合使用，闭环处理。
     *********************************************************************************/
    public NativeLong Net_RealLoadMultiTypePicture(
            NativeLong lLoginID,
            int[] nChannelIDArr,
            int nChannelNum,
            int[] dwEventTypeArr,
            int nEventTypeNum,
            int nDataType,
            fAnalyzeDataCallBack cbAnalyzeData,
            NativeLong dwUser,
            Pointer pReserved);

    /********************************************************************************
     函数：		Net_LoadOfflinePicture
     参数：		[in] LoginID				设备登入句柄
     [in] channel				订阅通道号
     [in] eventType				智能事件类型
     [in] dataType				需设置的返回的数据类型
     -1 - 不返回数据；0-只返回智能信息；1-返回智能信息和图片数据
     [in] cbAnalyzeData			智能分析数据回调函数
     [in] userdata				用户数据
     [in] ptrRserved				预留位
     返回值：		成功返回智能数据实时订阅句柄，失败返回值<=0。
     说明：		单通道单事件订阅（支持所有事件订阅）
     用户可以多次调用 Net_LoadOfflinePicture 来订阅不同通道的不同事件，注意维护订阅句柄并主动释放
     实时上传智能分析数据，用户可以根据订阅的事件类型，获取设备的指定智能分析数据
     客户端直接对接设备时调用, 与 Net_StopLoadPicture 配合使用，闭环处理。
     *********************************************************************************/
    public NativeLong Net_LoadOfflinePicture(
            NativeLong loginID,
            int channel,
            int eventType,
            int dataType,
            fAnalyzeDataCallBack cbAnalyzerData,
            NativeLong userdata,
            Pointer ptrRserved);

    /********************************************************************************
     函数：		Net_StopLoadPicture
     参数：		[in] loadHandle			智能数据订阅句柄
     返回值：		成功返回 true，失败返回  false。
     说明：		停止上传智能分析数据(智能信息&图片数据)
     与 Net_RealLoadPicture/Net_LoadOfflinePicture 配合使用，闭环处理。
     *********************************************************************************/
    public boolean Net_StopLoadPicture(NativeLong loadHandle);

    /********************************************************************************
     函数：		Net_GetLoadPictureHandleStatus
     参数：		[in] lLoadHandle			智能数据订阅句柄
     返回值：		如果智能数据订阅句柄有效则返回 1, 无效返回 0.
     说明：		获取智能数据订阅句柄是否有效,
     支持 Net_RealLoadPicture/Net_RealLoadMultiTypePicture/Net_LoadOfflinePicture 返回的句柄状态查询
     *********************************************************************************/
    public int Net_GetLoadPictureHandleStatus(NativeLong lLoadHandle);

    /********************************************************************************
     函数：		Net_LoadPictureByPair
     参数：		[in] lLoginID				设备登入句柄
     [in] nChannelID				订阅通道号
     [in] lpstParam				订阅接口入参结构体
     [in] pReserved				预留位, void*
     返回值：	成功返回智能数据实时订阅句柄，失败返回值 0。
     说明：		事件订阅，图片按 背景图+抠图为一组 成对上报（不适用如面板机这类只上抠图的设备）
     用户可以多次调用 Net_LoadPictureByPair 来订阅不同通道的不同事件，注意维护订阅句柄并主动释放
     回调上传智能分析数据，用户可以根据订阅的事件类型，获取设备的指定智能分析数据
     客户端直接对接设备时调用, 与 Net_StopLoadPictureByPair 配合使用，闭环处理。
     *********************************************************************************/
    public NativeLong Net_LoadPictureByPair(
            NativeLong lLoginID,
            int nChannelID,
            STU_LOAD_PIC_BY_PAIR_INPUT_PARAM.ByReference lpstParam,
            Pointer pReserved);

    /********************************************************************************
     函数：		Net_StopLoadPictureByPair
     参数：		[in] lLoadHandle			智能数据订阅句柄
     返回值：	成功返回TRUE，失败返回 FALSE。
     说明：		停止上传智能分析数据(智能信息&图片数据)
     与 Net_LoadPictureByPair 配合使用，闭环处理。
     *********************************************************************************/
    public boolean Net_StopLoadPictureByPair(NativeLong lLoadHandle);

    /////////////////////////////////////////////////////////////////////////////////////////////
    // 人脸抓拍机人脸图和背景图抓拍上图接口

    /********************************************************************************
     函数：		Net_StartRecvNetPicStreamByCloud
     参数：		[in] lLoginID					设备登录句柄
     [in] ptrRefNetPicParam			图片订阅参数
     [in] nParamSize					图片订阅参数大小
     [out] lRecvHandle				图片流接收句柄
     [in] bLoadSingle				是否单张上图， false-多张上图， true-单张上图
     如果是单张上图， ptrNetPicParam 的 fNetPicStreamCallBackCV1 回调中
     图片数据始终只有一张背景图或人脸抠图
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		开始实时上传智能分析数据（包括图片）,仅订阅人脸检测背景图和人脸抠图
     *********************************************************************************/
    public boolean Net_StartRecvNetPicStreamByCloud(
            NativeLong lLoginID,
            NetPicParamCV1.ByReference ptrRefNetPicParam,
            int nParamSize,
            LongByReference lRecvHandle,
            boolean bLoadSingle /*= 0*/);

    /********************************************************************************
     函数：		Net_StopRecvNetPicStreamByCloud
     参数：		[in] lRecvHandle				图片流接收句柄
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		停止实时订阅图片，与 Net_StartRecvNetPicStreamByCloud 配合使用，闭环处理。
     *********************************************************************************/
    public boolean Net_StopRecvNetPicStreamByCloud(NativeLong lRecvHandle);

    /********************************************************************************
     函数：		Net_GetNetPicRecvHandleStatus
     参数：		[in] lRecvHandle				图片流接收句柄
     返回值：		如果图片流接收句柄有效则返回 1, 无效返回 0.
     说明：		获取图片流订阅句柄是否有效，
     支持 Net_StartRecvNetPicStreamByCloud 输出参数图片接收流句柄的查询
     *********************************************************************************/
    public int Net_GetNetPicRecvHandleStatus(NativeLong lRecvHandle);

    /********************************************************************************
     函数：		Net_GetNetPicRecvHandleCount
     参数：		[in] lRecvHandle				图片流接收句柄
     返回值：		返回图片流订阅句柄个数
     说明：		获取通过指定设备句柄创建的图片流订阅句柄个数
     *********************************************************************************/
    public int Net_GetNetPicRecvHandleCount(NativeLong lLoginID);

    /********************************************************************************
     函数：		Net_GetDeviceStatusOfPicSubscribe
     参数：		[in] lLoginID					设备登录句柄
     返回值：		如果设备端存在图片订阅链接则返回 1, 没有任何图片订阅链接则返回 0, 返回 -1 则获取状态错误
     说明：		获取设备端图片订阅链接是否还存在
     *********************************************************************************/
    public int Net_GetDeviceStatusOfPicSubscribe(NativeLong lLoginID);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_CreateFaceGroup
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_GROUP_CREATE_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_GROUP_CREATE_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		创建人脸组
     *********************************************************************************/
    public boolean Net_CreateFaceGroup(
            NativeLong lLoginID,
            STU_FACE_GROUP_CREATE_IN_PARAM.ByReference pInParam,
            STU_FACE_GROUP_CREATE_OUT_PARAM.ByReference pOutParam);


    /********************************************************************************
     函数：		Net_DeleteFaceGroup
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_GROUP_DELETE_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_GROUP_DELETE_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		删除人脸组
     *********************************************************************************/
    public boolean Net_DeleteFaceGroup(
            NativeLong lLoginID,
            STU_FACE_GROUP_DELETE_IN_PARAM.ByReference pInParam,
            STU_FACE_GROUP_DELETE_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_EditFaceGroup
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_GROUP_EDIT_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_GROUP_EDIT_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		编辑人脸组
     *********************************************************************************/
    public boolean Net_EditFaceGroup(
            NativeLong lLoginID,
            STU_FACE_GROUP_EDIT_IN_PARAM.ByReference pInParam,
            STU_FACE_GROUP_EDIT_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetAllFaceGroups
     参数：		[in] lLoginID					设备登录句柄
     [out] pOutParam					输出参数	（见 STU_FACE_GROUP_ARRAY_INFO）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取所有人脸组信息
     *********************************************************************************/
    public boolean Net_GetAllFaceGroups(
            NativeLong lLoginID, STU_FACE_GROUP_ARRAY_INFO.ByReference pOutInfo);

    /********************************************************************************
     函数：		Net_GetStdFaceSetState
     参数：		[in] lLoginID					设备登录句柄
     [out] nState					人脸底库状态
     -1 - 获取状态错误
     0 - 底库正常
     1 - 算法模型变更，底库不可用
     2 - 正在重抽特征值
     3 - 底库损坏，正在恢复
     4 - 算法模型未知异常
     5 - 正在建模（请勿断电或重启设备）
     6 - 正在删除底库（请勿断电或重启设备）
     7 - 底库人脸未全部建模（请建模）
     8 - 底库不完整，删除异常中断（请清除底库）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取人脸库状态
     失败后可以通过 Net_LastError 获取错误码
     *********************************************************************************/
    public boolean Net_GetStdFaceSetState(NativeLong lLoginID, IntByReference nState);

    /********************************************************************************
     函数：		Net_GetFaceGroupDelScheduleInfo
     参数：		[in] lLoginID					设备登录句柄
     [out] pInfo						人脸底图建模进度信息
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取人脸库删除进度信息
     *********************************************************************************/
    public boolean Net_GetFaceGroupDelScheduleInfo(NativeLong lLoginID, STU_FACE_GROUP_DELETE_SCHEDULE_INFO.ByReference pInfo);

    /********************************************************************************
     函数：		Net_AddPersonInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_ADD_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_ADD_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		添加人员信息&人员人脸图
     *********************************************************************************/
    public boolean Net_AddPersonInfo(
            NativeLong lLoginID,
            STU_FACE_ADD_IN_PARAM.ByReference pInParam,
            STU_FACE_ADD_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     鍑芥暟锛�		Net_AddPersonInfoEx
     鍙傛暟锛�		[in] lLoginID					璁惧鐧诲綍鍙ユ焺
     [in] pInParam					杈撳叆鍙傛暟锛堣 STU_FACE_ADD_IN_PARAM_EX锛�
     [out] pOutParam					杈撳嚭鍙傛暟	锛堣 STU_FACE_ADD_OUT_PARAM_EX锛�
     杩斿洖鍊硷細		鎴愬姛杩斿洖TRUE锛屽け璐ヨ繑鍥濬ALSE銆�
     璇存槑锛�		娣诲姞浜哄憳淇℃伅&浜哄憳浜鸿劯鍥�
     *********************************************************************************/
    public boolean Net_AddPersonInfoEx(
            NativeLong lLoginID,
            STU_FACE_ADD_IN_PARAM_EX.ByReference pInParam,
            STU_FACE_ADD_OUT_PARAM_EX.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_AddPersonInfoEx
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_ADD_IN_PARAM_EX）
     [out] pOutParam					输出参数	（见 STU_FACE_ADD_OUT_PARAM_EX）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		添加人员信息&人员人脸图
     *********************************************************************************/
    public boolean Net_AddPersonInfoOnly(
            NativeLong lLoginID,
            STU_PERSON_INFO_ADD_IN_PARAM.ByReference pInParam,
            STU_PERSON_INFO_ADD_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_AsyncAddPersonInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_ADD_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_ADD_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		异步添加人员信息&人员人脸图（只添加到设备，不建模）
     *********************************************************************************/
    public boolean Net_AsyncAddPersonInfo(
            NativeLong lLoginID,
            STU_FACE_ADD_IN_PARAM.ByReference pInParam,
            STU_FACE_ADD_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_FaceExtract
     参数：		[in] lLoginID					设备登录句柄
     [in] nFaceNum					需建模的人脸数，-1 表示所有未建模人脸需要建模
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		开始人脸建模，不能与接口 Net_StartLoadFaceExtractInfo 一同使用
     开始后，可以通过 Net_GetFaceExtractScheduleInfo 获取建模进度信息
     *********************************************************************************/
    public boolean Net_StartFaceExtract(NativeLong lLoginID, int nFaceNum /*= -1*/);

    /********************************************************************************
     函数：		Net_GetFaceExtractFeatureDetails
     参数：		[in] lLoginID					设备登录句柄
     [in] cbGetExtractFeatureDetail	人脸建模结果详情信息回调
     [in] dwUser						用户参数
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取人脸建模结果详情信息
     *********************************************************************************/
    public boolean Net_GetFaceExtractFeatureDetails(NativeLong lLoginID, NetDelegates.fGetExtractFeatureDetailCallBack cbGetExtractFeatureDetail, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_StopGetExtractFeatureDetails
     参数：		[in] lLoginID					设备登录句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		停止获取人脸建模结果详情信息
     *********************************************************************************/
    public boolean Net_StopGetExtractFeatureDetails(NativeLong lLoginID);

    /********************************************************************************
     函数：		Net_MultiAddFaceFeatureInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					添加多个人脸&特征值输入参数
     [out] pOutParam					添加多个人脸&特征值输出参数
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		添加多个人脸&特征值信息
     *********************************************************************************/
    public boolean Net_MultiAddFaceFeatureInfo(
            NativeLong lLoginID,
            STU_MULTI_FACE_FEATURE_ADD_IN_PARAM.ByReference stInParam,
            STU_MULTI_FACE_FEATURE_ADD_OUT_PARAM.ByReference stOutParam);

    /********************************************************************************
     函数：		Net_AddFaceFeatureCommit
     参数：		[in] lLoginID					设备登录句柄
     [in] pReserved					保留参数
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		(7020)添加特征值成功后通知设备开始识别
     *********************************************************************************/
    public boolean Net_AddFaceFeatureCommit(NativeLong lLoginID, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_GetFaceExtractScheduleInfo
     参数：		[in] lLoginID					设备登录句柄
     [out] pInfo						人脸底图建模进度信息
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取人脸建模进度信息,建模开启后可获取，不能与接口 Net_StartLoadFaceExtractInfo 一同使用
     *********************************************************************************/
    public boolean Net_GetFaceExtractScheduleInfo(NativeLong lLoginID, STU_FACE_EXTRACT_SCHEDULE_INFO.ByReference pInfo);

    /********************************************************************************
     函数：		Net_UpdatePersonInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_PERSON_INFO_UPDATE_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_PERSON_INFO_UPDATE_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		更新人员信息
     *********************************************************************************/
    public boolean Net_UpdatePersonInfo(
            NativeLong lLoginID,
            STU_PERSON_INFO_UPDATE_IN_PARAM.ByReference pInParam,
            STU_PERSON_INFO_UPDATE_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_DeletePersonInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] nPersonID					人员ID
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		删除人员信息
     *********************************************************************************/
    public boolean Net_DeletePersonInfo(NativeLong lLoginID, int nPersonID, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_DeletePersonInfoByID
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_PERSON_DELETE_BYID_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_PERSON_DELETE_BYID_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		根据人员证件信息删除人员
     *********************************************************************************/
    public boolean Net_DeletePersonInfoByID(NativeLong lLoginID,
                                            STU_PERSON_DELETE_BYID_IN_PARAM.ByReference pInParam, STU_PERSON_DELETE_BYID_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_AddPersonFaceImage
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_ADD_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_IMAGE_ADD_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		添加人员人脸图
     *********************************************************************************/
    public boolean Net_AddPersonFaceImage(
            NativeLong lLoginID,
            STU_FACE_IMAGE_ADD_IN_PARAM.ByReference pInParam,
            STU_FACE_IMAGE_ADD_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_DeletePersonFaceImage
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_DELETE_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_IMAGE_DELETE_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		删除人员人脸图
     *********************************************************************************/
    public boolean Net_DeletePersonFaceImage(
            NativeLong lLoginID,
            STU_FACE_IMAGE_DELETE_IN_PARAM.ByReference pInParam,
            STU_FACE_IMAGE_DELETE_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_UpdatePersonFaceImage
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_UPDATE_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_IMAGE_UPDATE_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		更新人员人脸图
     *********************************************************************************/
    public boolean Net_UpdatePersonFaceImage(
            NativeLong lLoginID,
            STU_FACE_IMAGE_UPDATE_IN_PARAM.ByReference pInParam,
            STU_FACE_IMAGE_UPDATE_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_BindFaceToGroup
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_BIND_GROUP_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_BIND_GROUP_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		人员人脸图绑定到人脸组
     *********************************************************************************/
    public boolean Net_BindFaceToGroup(
            NativeLong lLoginID,
            STU_FACE_BIND_GROUP_IN_PARAM.ByReference pInParam,
            STU_FACE_BIND_GROUP_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_UnBindFaceFromGroup
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_UNBIND_GROUP_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_UNBIND_GROUP_OUT_PARAM）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		人员人脸图从人脸组解绑
     *********************************************************************************/
    public boolean Net_UnBindFaceFromGroup(
            NativeLong lLoginID,
            STU_FACE_UNBIND_GROUP_IN_PARAM.ByReference pInParam,
            STU_FACE_UNBIND_GROUP_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_PreFindFaceInfo
     参数：		[in] lLoginID					设备登录句柄
     [out] pnFindInstance			人脸查找实例
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		预开始查找人脸信息，成功后可以执行查找人脸信息操作
     与 Net_CloseFindFaceInfo 配对使用
     *********************************************************************************/
    public boolean Net_PreFindFaceInfo(NativeLong lLoginID, IntByReference pnFindInstance);

    /********************************************************************************
     函数：		Net_CloseFindFaceInfo
     参数：		[in] lLoginID					设备登录句柄

     返回值：		成功返回TRUE,失败返回FALSE
     说明：		终止查找人脸信息，成功后人脸查找句柄无效。
     必须与 Net_PreFindFaceInfo 配对使用
     *********************************************************************************/
    public boolean Net_CloseFindFaceInfo(NativeLong lLoginID, int nFindInstance);

    /********************************************************************************
     函数：		Net_StartFindFaceInfo
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_UNBIND_GROUP_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_UNBIND_GROUP_OUT_PARAM）
     输出参数中 nFindHandle 即是人脸信息查找句柄
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		开始查找人脸信息; Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_StartFindFaceInfo(
            NativeLong lLoginID,
            STU_FACE_INFO_FIND_IN_PARAM.ByReference pInParam,
            STU_FACE_INFO_FIND_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetFaceInfoFindResult
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_INFO_FIND_RESULT_IN_PARAM）
     [out] pOutParam					输出参数	（见 STU_FACE_INFO_FIND_RESULT_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取查找的人脸信息；Net_StartFindFaceInfo 查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceInfoFindResult(
            NativeLong lLoginID,
            STU_FACE_INFO_FIND_RESULT_IN_PARAM.ByReference pInParam,
            STU_FACE_INFO_FIND_RESULT_OUT_PARAM.ByReference pOutParam);


    /********************************************************************************
     函数：		Net_GetPersonCount
     参数：		[in] lLoginID					设备登录句柄
     [in] nFindInstance				人脸查找实例
     [out] pnPersonCount				查询到的人员数目
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取当前查询条件下的人员数目；Net_StartFindFaceInfo 查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetPersonCount(NativeLong lLoginID, int nFindInstance, IntByReference pnPersonCount);

    /********************************************************************************
     函数：		Net_GetFaceCount
     参数：		[in] lLoginID					设备登录句柄
     [in] nFindInstance				人脸查找实例
     [out] pnFaceCount				查询到的人脸数目
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取当前查询条件下的人脸数目；Net_StartFindFaceInfo 查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceCount(NativeLong lLoginID, int nFindInstance, IntByReference pnFaceCount);

    /********************************************************************************
     函数：		Net_GetFaceImage
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_GET_IN_PARAM）
     [out] pOutParam					输入参数（见 STU_FACE_IMAGE_GET_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取人脸图片并保存到本地；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceImage(NativeLong lLoginID,
                                    STU_FACE_IMAGE_GET_IN_PARAM.ByReference pInParam, STU_FACE_IMAGE_GET_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetFaceImageEx
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_GET_IN_PARAM_EX）
     [out] pOutParam					输入参数（见 STU_FACE_IMAGE_GET_OUT_PARAM_EX）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取人脸图片二进制数据；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceImageEx(LLONG lLoginID,
                                      STU_FACE_IMAGE_GET_IN_PARAM_EX.ByReference pInParam, STU_FACE_IMAGE_GET_OUT_PARAM_EX.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetPersonInfoByToken
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_PERSON_INFO_GET_BYTOKEN_IN_PARAM）
     [out] pOutParam					输入参数（见 STU_PERSON_INFO_GET_BYTOKEN_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		通过人脸图标识获取人脸信息；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetPersonInfoByToken(
            NativeLong lLoginID,
            STU_PERSON_INFO_GET_BYTOKEN_IN_PARAM.ByReference pInParam,
            STU_PERSON_INFO_GET_BYTOKEN_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetPeronInfoByID
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_PERSON_INFO_GET_BYID_IN_PARAM）
     [out] pOutParam					输入参数（见 STU_PERSON_INFO_GET_BYID_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		通过人脸证件&ID获取人脸信息；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetPersonInfoByID(
            NativeLong lLoginID,
            STU_PERSON_INFO_GET_BYID_IN_PARAM.ByReference pInParam,
            STU_PERSON_INFO_GET_BYID_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetPeronInfoByID
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_IMAGE_INFO_GET_IN_PARAM）
     [out] pOutParam					输入参数（见 STU_FACE_IMAGE_INFO_GET_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取人脸图信息；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceImageInfo(
            NativeLong lLoginID,
            STU_FACE_IMAGE_INFO_GET_IN_PARAM.ByReference pInParam,
            STU_FACE_IMAGE_INFO_GET_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_CheckPersonNameSuffix
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_PERSON_NAME_CHECK_IN_PARAM）
     [out] pOutParam					输入参数（见 STU_PERSON_NAME_CHECK_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		校验人名，并给出建议后缀；Net_PreFindFaceInfo 预查询成功后可以调用
     *********************************************************************************/
    public boolean Net_CheckPersonNameSuffix(
            NativeLong lLoginID,
            STU_PERSON_NAME_CHECK_IN_PARAM.ByReference pInParam,
            STU_PERSON_NAME_CHECK_OUT_PARAM.ByReference pOutParam);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StaticFaceRecognize
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数
     [out] pOutParam					输出参数
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		静态人脸图比对并输出比对结果
     *********************************************************************************/
    public boolean Net_StaticFaceRecognize(
            NativeLong lLoginID,
            STU_FACE_RECOGNIZE_STATIC_IN_PARAM.ByReference pInParam,
            STU_FACE_RECOGNIZE_STATIC_OUT_PARAM.ByReference pOutParam);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartLoadFaceExtractInfo(已废弃)
     参数：		[in] lLoginID							登录句柄
     [in] cbFaceExtInfo						信息回调
     [in] dwUser								用户参数
     返回值：		成功返回订阅句柄, 失败返回 0
     说明：		开启建模并订阅人脸建模信息（人脸异步入库时，可以调用该接口进行建模处理并取得建模进度信息）
     订阅建模信息和订阅删除信息虽然不冲突，但是与删除人员和删除人脸图冲突，所以订阅结束后应马上停止订阅
     *********************************************************************************/
    public NativeLong Net_StartLoadFaceExtractInfo(
            NativeLong lLoginID,
            fFaceFeatureExtInfoCallBack cbFaceExtInfo, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_StopLoadFaceExtractInfo(已废弃)
     参数：		[in] lHandle							订阅句柄
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		停止订阅人脸建模信息
     *********************************************************************************/
    public boolean Net_StopLoadFaceExtractInfo(NativeLong lHandle);

    /********************************************************************************
     函数：		Net_StartLoadFaceDeleteInfo(已废弃)
     参数：		[in] lLoginID							登录句柄
     [in] cbFaceDelInfo						信息回调
     [in] dwUser								用户参数
     返回值：		成功返回订阅句柄, 失败返回 0
     说明：		开启订阅人脸删除信息（注意：如果删除是同步的，该接口无效）
     *********************************************************************************/
    public NativeLong Net_StartLoadFaceDeleteInfo(
            NativeLong lLoginID,
            fFaceDeleteInfoCallBack cbFaceDelInfo, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_StopLoadFaceDeleteInfo(已废弃)
     参数：		[in] lHandle							订阅句柄
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		停止订阅人脸删除信息（注意：如果删除是同步的，该接口无效）
     *********************************************************************************/
    public boolean Net_StopLoadFaceDeleteInfo(NativeLong lHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_PreFindFaceRecognitionRecord
     参数：		[in] lLoginID					设备登录句柄
     [out] pnFindInstance			查找实例
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		预查询人脸比对记录
     *********************************************************************************/
    public boolean Net_PreFindFaceRecognitionRecord(
            NativeLong lLoginID, IntByReference pnFindInstance);

    /********************************************************************************
     函数：		Net_StartFindFaceRecognitionRecord
     参数：		[in] lLoginID					设备登录句柄
     [in] pnFindInstance				查找实例
     [in] pInParam					输入参数（见 STU_FACE_REC_REC_FIND_IN_PARAM）
     [out] pOutParam					输出参数（见 STU_FACE_REC_REC_FIND_OUT_PARAM）
     输出参数中 nFindHandle 是人脸识别就查询句柄
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		开始查询人脸比对记录
     Net_PreFindFaceRecognitionRecord 成功后可调用
     *********************************************************************************/
    public boolean Net_StartFindFaceRecognitionRecord(
            NativeLong lLoginID,
            STU_FACE_REC_REC_FIND_IN_PARAM.ByReference pInParam,
            STU_FACE_REC_REC_FIND_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_CloseFindFaceRecognitionRecord
     参数：		[in] lLoginID					设备登录句柄
     [in] nFindInstance			    记录查找句柄
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		关闭查询人脸比对记录，与 Net_PreFindFaceRecognitionRecord 配对使用
     关闭后，人脸识别记录查找句柄无效
     *********************************************************************************/
    public boolean Net_CloseFindFaceRecognitionRecord(
            NativeLong lLoginID, int nFindInstance);

    /********************************************************************************
     函数：		Net_GetFaceRecognitionRecordResult
     参数：		[in] lLoginID					设备登录句柄
     [in] pInParam					输入参数（见 STU_FACE_REC_REC_FIND_RESULT_IN_PARAM）
     [out] pOutParam					输出参数（见 STU_FACE_REC_REC_FIND_RESULT_OUT_PARAM）
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取人脸比对记录，Net_StartFindFaceRecognitionRecord 查询后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceRecognitionRecordResult(
            NativeLong lLoginID,
            STU_FACE_REC_REC_FIND_RESULT_IN_PARAM.ByReference pInParam,
            STU_FACE_REC_REC_FIND_RESULT_OUT_PARAM.ByReference pOutParam);

    /********************************************************************************
     函数：		Net_GetFaceRecognitionRecordCount
     参数：		[in] lLoginID					设备登录句柄
     [out] pnRecordCount				人脸比对记录条数
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取人脸比对记录条数，Net_StartFindFaceRecognitionRecord 查询后可以调用
     *********************************************************************************/
    public boolean Net_GetFaceRecognitionRecordCount(NativeLong lLoginID, int nFindInstance, IntByReference pnRecordCount);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_DownLoadMultiFile
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					多文件下载输入参数
     [out] pstOutParam				多文件下载输出参数
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		批量下载文件
     与Net_ StopLoadMultiFile配套使用；
     输出参数中带有多文件下载句柄，在关闭句柄时使用
     *********************************************************************************/
    public boolean Net_DownLoadMultiFile(NativeLong lLoginID,
                                         STU_IN_MULTI_FILE_DOWNLOAD_PARAM.ByReference pstInParam,
                                         STU_OUT_MULTI_FILE_DOWNLOAD_PARAM.ByReference pstOutParam,
                                         int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_DownLoadMultiFileByTime
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					按时间多文件下载输入参数
     [out] pstOutParam				按时间多文件下载输出参数
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		按时间批量下载文件
     与Net_ StopLoadMultiFile配套使用；
     输出参数中带有按时间多文件下载句柄，在关闭句柄时使用
     *********************************************************************************/
    public boolean Net_DownLoadMultiFileByTime(NativeLong lLoginID,
                                               STU_IN_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM.ByReference pstInParam,
                                               STU_OUT_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM.ByReference pstOutParam,
                                               int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_DownLoadMultiFileEx
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					多文件下载输入参数
     [out] pstOutParam				多文件下载输出参数
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		批量下载文件
     与Net_ StopLoadMultiFile配套使用；
     输出参数中带有多文件下载句柄，在关闭句柄时使用
     *********************************************************************************/
    public boolean Net_DownLoadMultiFileEx(NativeLong lLoginID,
                                           STU_IN_MULTI_FILE_DOWNLOAD_PARAM_EX.ByReference pstInParam,
                                           STU_OUT_MULTI_FILE_DOWNLOAD_PARAM_EX.ByReference pstOutParam,
                                           int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_DownLoadMultiFileByTimeEx
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					按时间多文件下载输入参数
     [out] pstOutParam				按时间多文件下载输出参数
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		按时间批量下载文件
     与Net_ StopLoadMultiFile配套使用；
     输出参数中带有按时间多文件下载句柄，在关闭句柄时使用
     *********************************************************************************/
    public boolean Net_DownLoadMultiFileByTimeEx(NativeLong lLoginID,
                                                 STU_IN_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM_EX.ByReference pstInParam,
                                                 STU_OUT_MULTI_FILE_DOWNLOAD_BY_TIME_PARAM_EX.ByReference pstOutParam,
                                                 int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_StopLoadMultiFile
     参数：		[in] lDownLoadHandle			文件下载句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		停止下载
     与Net_DownLoadMultiFile配套使用
     *********************************************************************************/
    public boolean Net_StopLoadMultiFile(NativeLong lDownLoadHandle);

    /********************************************************************************
     函数：		Net_DownloadFile
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					文件下载参数, STU_DOWNLOAD_FILE_PARAM*
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：	成功返回TRUE，失败返回FALSE。
     说明：		下载单个文件，同步接口下载完成或失败才会返回
     *********************************************************************************/
    public boolean Net_DownloadFile(
            NativeLong lLoginID, STU_DOWNLOAD_FILE_PARAM.ByReference pstInParam, int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_UploadFile
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					文件上传参数, STU_UPLOAD_FILE_PARAM*
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		上传单个文件，同步接口上传完成或失败才返回
     *********************************************************************************/
    public boolean Net_UploadFile(
            NativeLong lLoginID, STU_UPLOAD_FILE_PARAM.ByReference pstInParam, int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_RemoveFile
     参数：		[in] lLoginID					设备登入句柄
     [in] pstInParam					删除文件输入参数, STU_REMOVE_FILE_PARAM*
     [in] nWaitTime					超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		删除指定文件
     *********************************************************************************/
    public boolean Net_RemoveFile(
            NativeLong lLoginID, STU_REMOVE_FILE_PARAM.ByReference pstInParam, int waittime /*= 5000*/);

    /********************************************************************************
     函数：		Net_PreFindFileInfo
     参数：		[in]		lLoginID				设备登入句柄
     [in]		pstInParam				输入参数
     [out]		pstOutParam				输出参数
     [in]		nWaitTime				超时等待时间（单位： ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		从文件预查询结果种获取指定数量的文件信息
     *********************************************************************************/
    public boolean Net_PreFindFileInfo(
            NativeLong lLoginID,
            STU_PRE_FIND_FILES_IN_PARAM.ByReference pstInParam,
            STU_PRE_FIND_FILES_OUT_PARAM.ByReference pstOutParam,
            int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_GetFileList
     参数：		[in]		lLoginID				设备登入句柄
     [in]		nOffset					查询偏移量
     [in]		nInCount				指定要查询的文件数量
     [out]		pstFileInfo				文件信息缓存地址
     [out]		pnOutCount				实际查询到的文件数量
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取指定目录下的指定类型的文件列表，文件列表通过回调返回
     *********************************************************************************/
    public boolean Net_GetFileList(
            NativeLong lLoginID, int nOffset, int nInCount, Pointer pstFileInfo, IntByReference pnOutCount);

    /********************************************************************************
     函数：		Net_SetEnterFaceMode
     参数：		[in] lLoginID				设备登入句柄
     [in] bEnalbe				使能值, [0, 1]
     [in] nTime					超时退出时间(s)
     返回值：		成功返回TRUE，失败返回值FALSE。
     说明：		设置实时采集抓拍模式使能
     *********************************************************************************/
    public boolean Net_SetEnterFaceMode(NativeLong lLoginID, int bEnalbe, int nTime /*= 30*/);

    /********************************************************************************
     函数：		Net_GetEnterFaceImage
     参数：		[in] lLoginID				设备登入句柄
     [in] nInBufferLen			创建的图片数据缓存大小
     建议开辟的图片缓存大小为导入人脸时的图片最大字节数，此值可通过 人脸识别能力 获取
     [out] lpoutBuffer			图片数据缓存, char*
     [out] lpnBufferSize			图片数据实际大小
     返回值：		成功返回TRUE，失败返回值FALSE。
     说明：		获取实时采集抓图模式下的人脸图片
     *********************************************************************************/
    public boolean Net_GetEnterFaceImage(NativeLong lLoginID, final int nInBufferLen, Pointer lpoutBuffer, IntByReference lpoutBufferSize);

    /********************************************************************************
     函数：		Net_TransJsonByRpc
     参数：		[in] lLoginID					设备登入句柄
     [in] szInBuffer					设备配置输入信息（Json格式）
     [in] dwInBufferSize				配置输入信息大小
     [in] szOutBuffer				配置后应答信息（Json格式）
     [in] dwOutBufferSize			应答信息大小
     [in] pReserved					预留参数
     [in] nWaitTime					数据发送超时时间 (ms)
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		以JSON 格式的协议进行设备配置
     用户可以根据配置要求对设备进行配置
     *********************************************************************************/
    public boolean Net_TransJsonByRpc(NativeLong lLoginID,
                                      Pointer szInBuffer, int dwInBufferSize,
                                      Pointer szOutBuffer, int dwOutBufferSize,
                                      Pointer pReserved /*= NULL*/, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_TransDataByRpc
     参数：		[in] lLoginID					设备登入句柄
     [in] szInBuffer					设备配置输入信息（Json格式）, char*
     [in] dwInBufferSize				配置输入信息大小
     [in] szOutBuffer				配置后应答信息（Json格式）, char*
     [in] dwOutBufferSize			应答信息大小
     [in] pReserved					预留参数, char*
     [in] nWaitTime					数据发送超时时间 (ms)
     [in] pBinData					二进制数据
     [out] pRetJsonLen				返回的Json数据长度
     [out] pRetBinLen				返回的二进制数据长度
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		以JSON 格式的协议进行设备配置
     用户可以根据配置要求对设备进行配置
     *********************************************************************************/
    public boolean Net_TransDataByRpc(NativeLong lLoginID,
                                      Pointer szInBuffer, int dwInBufferSize,
                                      Pointer szOutBuffer, int dwOutBufferSize,
                                      Pointer pReserved /*= NULL*/, int nWaitTime /*= 6000*/,
                                      STU_BIN_DATA.ByReference pBinData /*= NULL*/,
                                      IntByReference pRetJsonLen /*= NULL*/, IntByReference pRetBinLen /*= NULL*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_GetDeviceUser
     参数：		[in] lLoginID					设备登录句柄
     [out] cfgList					用户信息列表
     [in] nWaitTime					超时时间，单位：ms
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		获取用户信息
     *********************************************************************************/
    public boolean Net_GetDeviceUser(NativeLong lLoginID, STU_CFG_USER_GET.ByReference cfgList, int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_AddDeviceUser
     参数：		[in] lLoginID					设备登录句柄
     [out] cfgList					用户信息列表
     [in] nWaitTime					超时时间，单位：ms
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		添加用户信息
     *********************************************************************************/
    public boolean Net_AddDeviceUser(NativeLong lLoginID, STU_CFG_ADD_USER.ByReference cfgList, int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_DeleteDeviceUser
     参数：		[in] lLoginID					设备登录句柄
     [out] cfgList					用户信息列表
     [in] nWaitTime					超时时间，单位：ms
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		删除用户信息
     *********************************************************************************/
    public boolean Net_DeleteDeviceUser(NativeLong lLoginID, STU_CFG_DELETE_USER.ByReference cfgList, int nWaitTime /*= 5000*/);

    /********************************************************************************
     函数：		Net_ActivateDevice(暂不启用)
     参数：		[in] stActivateInfo				激活参数
     [in] lpszLocalIp				指定发送网卡 IP
     [in] nWaitTime					响应超时时间（单位 ms）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		UDP单播/组播激活设备
     *********************************************************************************/
    public boolean Net_ActivateDevice(STU_DEVICE_ACTIVATE_INFO.ByReference stActivateInfo, String lpszLocalIp /*= null*/, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_ModifyDeviceUser
     参数：		[in] lLoginID					设备登录句柄
     [out] cfgList					用户信息列表
     [in] nWaitTime					超时时间，单位：ms
     返回值：		成功返回TRUE,失败返回FALSE
     说明：		修改用户信息
     *********************************************************************************/
    public boolean Net_ModifyDeviceUser(NativeLong lLoginID, STU_CFG_MODIFY_USER.ByReference cfgList, int nWaitTime /*= 6000*/);


    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_CreateTranscomChannel
     参数：		[in] lLoginID							设备登录句柄
     [in] nTranscomPort						透明串口号，从 1 开始
     [in] nBaudRate							波特率
     [in] emDataBit							数据位,EM_COM_DATA_BIT_TYPE
     [in] emStopBit							停止位,EM_COM_STOP_BIT_TYPE
     [in] emParity							校验位,EM_COM_PARITY_TYPE
     [in] cb									数据回调
     [in] dwUser								数据回调用户参数
     返回值：		成功返回透明串口通道句柄, 失败返回 0
     说明：		创建透明串口通道
     *********************************************************************************/
    public NativeLong Net_CreateTranscomChannel(NativeLong lLoginID, int nTranscomPort, int nBaudRate,
                                                int emDataBit, int emStopBit, int emParity, fTransComDataCallBack cb, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_CreateTranscomChannelEx
     参数：		[in] lLoginID							设备登录句柄
     [in] lpstInParam						入参结构体
     [in] cb									数据回调
     [in] dwUser								数据回调用户参数
     返回值：		成功返回透明串口通道句柄, 失败返回 0
     说明：		创建透明串口通道
     *********************************************************************************/
    public NativeLong Net_CreateTranscomChannelEx(final NativeLong lLoginID,
                                                  STU_TRANS_COM_IN_PARAM.ByReference lpstInParam, fTransComDataCallBack cb, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_SendTranscomData
     参数：		[in] lTranscomChannel					透明串口通道句柄
     [in] pBuffer							发送的缓存数据，支持字符串数据 & 二进制数据
     [in] nBufLen							发送的缓存数据大小
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		透明串口通道数据传输
     *********************************************************************************/
    public boolean Net_SendTranscomData(NativeLong lTranscomChannel, Pointer pBuffer, int nBufLen, Pointer pReserved/* = NULL*/);

    /********************************************************************************
     函数：		Net_CloseTranscomChannel
     参数：		[in] lTranscomChannel					透明串口通道句柄
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		关闭透明串口通道
     *********************************************************************************/
    public boolean Net_CloseTranscomChannel(NativeLong lTranscomChannel);

    /********************************************************************************
     函数：		使能设备 telnet
     参数：		[in] bEnable					是否使能 telnet
     [in] lpszDstIp					目的 IP
     [in] lpszLocalIp				本地 IP
     [in] nWaitTime					超时时间
     返回值：		成功返回TRUE，失败返回FALSE
     说明：		修改设备网络参数
     *********************************************************************************/
    public boolean Net_SetDeviceTelnet(int bEnable, String lpszDstIp, String lpszLocalIp /*= NULL*/, int nWaitTime /*= 6000*/);

    /********************************************************************************
     函数：		Net_GetDevice4GRSSI
     参数：		[in] lLoginID					登录ID
     [in] pstInParam					输入参数
     [in] pstOutParam				输出参数
     [in] nWaitTime					超时时间
     返回值：		成功返回TRUE，失败返回FALSE
     说明：		获取设备4G信号强度
     *********************************************************************************/
    public boolean Net_GetDevice4GRSSI(final NativeLong lLoginID,
                                       STU_GET_4G_RSSI_IN_PARAM.ByReference pstInParam, STU_GET_4G_RSSI_OUT_PARAM.ByReference pstOutParam, int nWaitTime /*= 6000*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_ImportConfigFile
     参数：		[in] lLoginID							设备登入句柄
     [in] szFileName							导入配置文件的绝对路径
     [in] cbUploadPos						导入配置文件进度回调
     [in] dwUser								用户数据
     返回值：		成功返回导入配置句柄，失败返回值 0。
     说明：		导入配置文件
     *********************************************************************************/
    public NativeLong Net_ImportConfigFile(NativeLong lLoginID, String szFileName, fLoadPosCallBack cbUploadPos, LLONG dwUserData);

    /********************************************************************************
     函数：		Net_StopImportCfgFile
     参数：		[in] lImportHandle						设备配置导入句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		停止导入配置文件
     *********************************************************************************/
    public boolean Net_StopImportCfgFile(NativeLong lImportHandle);

    /********************************************************************************
     函数：		Net_ExportConfigFile
     参数：		[in] lLoginID							设备登入句柄
     [in] emConfigFileType					配置文件类型
     [in] szSavedFilePath					导出配置文件的绝对路径
     [in] cbDownLoadPos						导出配置文件进度回调
     [in] dwUser								用户数据
     返回值：		成功返回导出配置句柄，失败返回值 0。
     说明：		设备导出通用配置，参数 emConfigFileType = CONFIG_FILE_ALL
     *********************************************************************************/
    public NativeLong Net_ExportConfigFile(NativeLong lLoginID, int emConfigFileType, String szSavedFilePath, fLoadPosCallBack cbDownLoadPos, LLONG dwUserData);

    /********************************************************************************
     函数：		Net_StopExportCfgFile
     参数：		[in] lExportHandle						设备配置导出句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		停止导出配置文件
     *********************************************************************************/
    public boolean Net_StopExportCfgFile(NativeLong lExportHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartUpgrade
     参数：		[in] lLoginID							设备登入句柄
     [in] lspzFileName						升级文件的绝对路径
     [in] fUpgradeCB							升级回调函数
     [in] dwUser								用户数据
     返回值：		成功返回设备远程升级句柄，失败返回值 0。
     说明：		开始升级设备程序
     *********************************************************************************/
    public NativeLong Net_StartUpgrade(NativeLong lLoginID, Pointer lspzFileName, fDeviceUpgradeCallBack fUpgradeCB, LLONG dwUser, int nWaitTime /*= 45 * 1000*/);

    /********************************************************************************
     函数：		Net_SendUpgrade(LLONG lUpgradeID)
     参数：		[in] lUpgradeID							设备远程升级句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		发送数据
     *********************************************************************************/
    public boolean Net_SendUpgrade(NativeLong lUpgradeID);

    /********************************************************************************
     函数：		Net_SendUpgrade(LLONG lUpgradeID)
     参数：		[in] lUpgradeID							设备远程升级句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		结束升级设备程序
     *********************************************************************************/
    public boolean Net_StopUpgrade(NativeLong lUpgradeID);

    /********************************************************************************
     函数：		Net_UpgradeProgress(LLONG lUpgradeID)
     参数：		[in] lLoginID							设备登录句柄
     [out] pstProgressInfo					进度信息
     [in] nWaitTime							响应超时时间(ms)
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		获取设备端升级进度（数据传输完成后设备的处理进度）
     *********************************************************************************/
    public boolean Net_UpgradeProgress(NativeLong lLoginID, STU_UPGRADE_PROGRESS_INFO.ByReference pstProgressInfo, int nWaitTime /*= 5000*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartSearchDevices
     参数：		[in] cbSearchDevices					设备搜索回调函数
     [in] pUserData							用户数据
     [in] szLocalIp							本地IP地址
     返回值：		成功返回设备搜索句柄，失败返回值 0。
     说明：		异步搜索局域网内设备
     *********************************************************************************/
    public NativeLong Net_StartSearchDevices(fSearchDevicesCallBack cbSearchDevices, Pointer pUserData, String szLocalIp /*= ""*/);

    /********************************************************************************
     函数：		Net_StopSearchDevices
     参数：		[in] lSearchHandle						设备搜索句柄
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		停止异步搜索局域网内设备
     *********************************************************************************/
    public boolean Net_StopSearchDevices(NativeLong lSearchHandle);

    /********************************************************************************
     函数：		Net_SearchDevicesByIPs
     参数：		[in] pIpSearchInfo					搜索条件参数
     [in] cbSearchDevices				设备搜索回调函数
     [in] dwUserData						用户数据参数
     [in] lpszLocalIp					本地IP地址
     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		跨网段单播搜索设备
     *********************************************************************************/
    public boolean Net_SearchDevicesByIPs(STU_DEVICE_IP_SEARCH_INFO.ByReference pIpSearchInfo, fSearchDevicesCallBack cbSearchDevices, NativeLong dwUserData, String strLocalIp, Pointer pReserved, int nWaitTime /*= 10 * 1000*/);

    /********************************************************************************
     函数：		Net_StartSearchDevicesByCondition
     参数：		[in] pSearchCondition					搜索条件参数
     [in] cbSearchDevices					设备搜索回调函数
     [in] pUserData							用户数据参数
     [in] szLocalIp							本地IP地址
     返回值：		成功返回设备搜索句柄，失败返回值 0。
     说明：		指定搜索条件搜索设备
     *********************************************************************************/
    public NativeLong Net_StartSearchDevicesByCondition(STU_DEVICE_SEARCH_CONDITION_INFO.ByReference pSearchCondition, fSearchDevicesCallBack cbSearchDevices, Pointer pUserData, String szLocalIp /*= NULL*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartLoadCfgModifyInfo
     参数：		[in] lLoginID							登录句柄
     [in] lpszCfgTable						配置表名称
     [in] cbCfgModifyInfo					信息回调
     [in] dwUser								用户参数
     返回值：		成功返回订阅句柄, 失败返回 0
     说明：		开启配置改动信息订阅
     *********************************************************************************/
    public NativeLong Net_StartLoadCfgModifyInfo(NativeLong lLoginID, final String lpszCfgTable, fCfgModifyInfoCallBack cbCfgModifyInfo, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_StopLoadCfgModifyInfo
     参数：		[in] lHandle							订阅句柄
     返回值：		成功返回TRUE, 失败返回 FALSE
     说明：		停止配置改动信息订阅
     *********************************************************************************/
    public boolean Net_StopLoadCfgModifyInfo(NativeLong lHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartLoadQRCodeInfo
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							通道号
     [in] cbQRCodeInfo						信息回调
     [in] dwUser								用户参数
     返回值：		成功返回订阅句柄, 失败返回 0
     说明：		开启配置改动信息订阅
     *********************************************************************************/
    public NativeLong Net_StartLoadQRCodeInfo(NativeLong lLoginID, int nChannel, fQRCodeInfoCallBack cbQRCodeInfo, NativeLong dwUser);

    /********************************************************************************
     函数：		Net_StopLoadQRCodeInfo
     参数：		[in] lHandle							订阅句柄
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		停止二维码信息订阅
     *********************************************************************************/
    public boolean Net_StopLoadQRCodeInfo(NativeLong lHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_StartEventSubscribe
     参数：		[in] lLoginID							设备登入句柄
     [in] nChannelID							设备通道号
     返回值：		成功返回报警句柄，失败返回 0。
     说明：		开启订阅，指定订阅回调函数
     *********************************************************************************/
    public NativeLong Net_StartEventSubscribe(NativeLong lLoginID,
                                              fAlarmInfoCallBack cbAlarmInfo, NativeLong dwUser /*= 0*/, int dwWaitTime /*= 3000*/);

    /********************************************************************************
     函数：		Net_EventSubscribe
     参数：
     [in] lAlarmHandle						报警句柄
     [in] nType								为EM_ALARM_EVENT_TYPE枚举类型，取值为-1时，则订阅所有事件
     [in] nChannelID							设备通道号
     返回值：		成功返回 TRUE，失败返回 FALSE。
     说明：		订阅eType所指定的单个报警事件类型
     该接口可以多次被调用，单次只能订阅一个报警事件或者所有报警事件
     *********************************************************************************/
    public boolean Net_EventSubscribe(NativeLong lAlarmHandle, int nChannelID, int nType, int dwWaitTime /*= 3000*/);

    /********************************************************************************
     函数：		Net_UnEventSubscribe
     参数：		[in] lAlarmHandle						报警句柄
     [in] nType								为EM_ALARM_TYPE枚举类型，取值为-1时，则取消订阅所有事件
     [in] nChannelID							设备通道号

     返回值：		成功返回 TRUE，失败返回 FALSE。
     说明：		取消事件订阅
     *********************************************************************************/
    public boolean Net_UnEventSubscribe(NativeLong lAlarmHandle, int nChannelID, int nType);

    /********************************************************************************
     函数：		Net_StopEventSubscribe
     参数：		[in] lAlarmHandle						报警句柄

     返回值：		成功返回TRUE，失败返回 FALSE。
     说明：		停止事件订阅
     *********************************************************************************/
    public boolean Net_StopEventSubscribe(NativeLong lAlarmHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_ImageWaterMarkCheck
     参数：		[in] lpszImagePath						本地图片路径
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		图片水印校验
     *********************************************************************************/
    public boolean Net_ImageWaterMarkCheck(final String strImagePath);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////

    /********************************************************************************
     函数：		Net_PlayBackByRecordFile
     参数：		[in] lLoginID					设备登入句柄
     [in] lpRecordFile				录像文件
     [in] hWnd						播放窗口句柄
     [in] cdDownLoadPos				录像回放进度回调
     [in] dwPosUser					进度回调中的用户参数
     [in] fDataCB					录像回放数据回调
     [in] dwDataUser					数据回调中的用户参数
     返回值：		成功返回网络录像回放句柄，失败返回 0。
     说明：		按文件方式回放
     网络录像回放成功后，需要调用关闭网络录像回放接口，达到闭环处理。
     *********************************************************************************/
    public NativeLong Net_PlayBackByRecordFile(NativeLong lLoginID, STU_T_FILE.ByReference lpRecordFile,
                                               Pointer hWnd, fLoadPosCallBack cbDownLoadPos, NativeLong dwPosUser, fPlaybackDataCallBack fDataCB, NativeLong dwDataUser);

    /********************************************************************************
     函数：		Net_PlayBackByTime
     参数：		[in] lLoginID					设备登入句柄
     [in] lpstTime					查询条件
     [in] hWnd						播放窗口句柄
     [in] cdDownLoadPos				录像回放进度回调
     [in] dwPosUser					进度回调中的用户参数
     [in] fDataCB					录像回放数据回调
     [in] dwDataUser					数据回调中的用户参数
     返回值：		成功返回网络录像回放句柄，失败返回 0。
     说明：		按时间方式回放
     网络录像回放成功后，需要调用关闭网络录像回放接口，达到闭环处理。
     *********************************************************************************/
    public NativeLong Net_PlayBackByTime(NativeLong lLoginID, STU_RECORD_BY_TIME.ByReference lpstRecByTime,
                                         Pointer hWnd, fLoadPosCallBack cbDownLoadPos, NativeLong dwPosUser, fPlaybackDataCallBack fDataCB, NativeLong dwDataUser);

    /********************************************************************************
     函数：		Net_PlayBackByTimeEx
     参数：		[in] lLoginID					设备登入句柄
     [in] lpstTime					查询条件
     [in] cdDownLoadPos				录像回放进度回调
     [in] dwPosUser					进度回调中的用户参数
     [in] fDataCB					录像回放数据回调
     [in] dwDataUser					数据回调中的用户参数
     返回值：		成功返回网络录像回放句柄，失败返回 0。
     说明：		按时间方式回放
     网络录像回放成功后，需要调用关闭网络录像回放接口，达到闭环处理。
     *注：此接口暂不通用，只有部分定制机型支持
     *********************************************************************************/
    public NativeLong Net_PlayBackByTimeEx(NativeLong lLoginID, STU_RECORD_BY_TIME.ByReference lpstRecByTime,
                                           fLoadPosCallBackEx cbDownLoadPos, NativeLong dwPosUser, fPlaybackDataCallBack fDataCB, NativeLong dwDataUser);

    /********************************************************************************
     函数：		Net_SeekPlayBackByTime
     参数：		[in] lPlayHandle				网络录像回放句柄
     [in] pstTime					定位的时间点（须在起始时间和结束时间之间）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		定位录像回放起始点
     *********************************************************************************/
    public boolean Net_SeekPlayBackByTime(NativeLong lPlayHandle, STU_TIME.ByReference pstTime);

    /********************************************************************************
     函数：		Net_SeekPlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     [in] nOffsetTime				偏移时间（单位：秒/s）
     [in] nOffsetByte				偏移字节（单位：字节/Byte）
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		定位录像回放起始点
     *********************************************************************************/
    public boolean Net_SeekPlayBack(NativeLong lPlayHandle, int nOffsetTime, int nOffsetByte);

    /********************************************************************************
     函数：		Net_PausePlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     [in] bPause						是否暂停，TRUE 暂停，FALSE 播放
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		暂停或恢复录像回放
     *********************************************************************************/
    public boolean Net_PausePlayBack(NativeLong lPlayHandle, int bPause);

    /********************************************************************************
     函数：		Net_FastPlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		快进录像回放
     网络录像的快放效果受到终端性能和带宽影响，快放速度最优范围[1-8]
     *********************************************************************************/
    public boolean Net_FastPlayBack(NativeLong lPlayHandle);

    /********************************************************************************
     函数：		Net_SlowPlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		慢进录像回放
     每调用一次播放速度减半，慢放速度最优范围【1/8 – 1】
     *********************************************************************************/
    public boolean Net_SlowPlayBack(NativeLong lPlayHandle);

    /********************************************************************************
     函数：		Net_StepPlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     [in] bStop						是否停止单步跟踪
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		步进录像回放
     *********************************************************************************/
    public boolean Net_StepPlayBack(NativeLong lPlayHandle, boolean bStop);

    /********************************************************************************
     函数：		Net_NormalPlayBack
     参数：		[in] lPlayHandle				网络录像回放句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		恢复正常回放速度
     调用该接口后，播放速度恢复正常
     *********************************************************************************/
    public boolean Net_NormalPlayBack(NativeLong lPlayHandle);

    /********************************************************************************
     函数：		Net_StopPlayBack(LLONG lPlayHandle)
     参数：		[in] lPlayHandle				网络录像回放句柄
     返回值：		成功返回TRUE，失败返回FALSE。
     说明：		停止录像回放
     与按文件网络放回接口配套使用，达到闭环处理
     *********************************************************************************/
    public boolean Net_StopPlayBack(NativeLong lPlayHandle);

    /********************************************************************************
     函数：		Net_GetPlayBackHandleStatus(LLONG lPlayHandle)
     参数：		[in] lPlayHandle				网络录像回放句柄
     返回值：		网络回放句柄有效返回 1，网络回放句柄无效返回 0。
     说明：		获取网络回放句柄是否有效状态
     *********************************************************************************/
    public int Net_GetPlayBackHandleStatus(NativeLong lPlayHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //云台控制操作相关接口

    /********************************************************************************
     函数：		Net_PtzControl
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							云台通道号
     [in] emType								云台操作类型
     [in] speed								云台操作需要移动时的移动速度
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		云台控制操作相关接口
     *********************************************************************************/
    public boolean Net_PtzControl(final NativeLong lLoginID, final int nChannel,
                                  int emType, int speed /*= PTZ_SPEED_L8_5*/, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_PtzExpControl
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							云台通道号
     [in] emType								云台巡航操作类型
     [in] pParam								输入参数
     [in] nParamSize							输入参数大小
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		云台巡航操作相关接口
     *********************************************************************************/
    public boolean Net_PtzExpControl(final NativeLong lLoginID, final int nChannel,
                                     int emType, Pointer pParam, int nParamSize, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_PtzConfig
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							云台通道号
     [in] emType								云台配置类型
     [in] pInParam							输入参数
     [in] nInParamSize						输入参数大小
     [in] pOutParam							输出参数
     [in] nOutParamSize						输出参数大小
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		云台配置相关接口
     *********************************************************************************/
    public boolean Net_PtzConfig(final NativeLong lLoginID, final int nChannel,
                                 int emType, Pointer pInParam, int nInParamSize, Pointer pOutParam, int nOutParamSize, Pointer pReserved /*= NULL*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //门禁相关接口

    /********************************************************************************
     函数：		Net_DoorOperate
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							门禁通道号
     [in] emType								门禁操作类型
     [in] pInParam							输入参数
     [in] nInParamSize						输入参数大小
     [in] pOutParam							输出参数
     [in] nOutParamSize						输出参数大小
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		门禁配置操作相关接口
     *********************************************************************************/
    public boolean Net_DoorOperate(final NativeLong lLoginID, final int nChannel, int emType,
                                   Pointer pInParam, int nInParamSize, Pointer pOutParam, int nOutParamSize, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_DoorOperateDataEncrypt
     参数：		[in] lLoginID							登录句柄
     [in] bEncrypt							数据加密，1 - 加密，0 - 不加密
     加密数据包括人员、卡号、人脸图片、权限组、通行记录、推图信息
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		门禁配置操作数据加密开关接口，未调用此接口时，数据默认不加密
     *********************************************************************************/
    public boolean Net_DoorOperateDataEncrypt(final NativeLong lLoginID, final int bEncrypt, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_DoorOperateMultiAddStart
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							门禁通道号
     [in] cdDoorMultiAdd						当前导入结果回调
     [in] pReserved							保留参数, void*
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		门禁配置操作开始批量导入
     *********************************************************************************/
    public boolean Net_DoorOperateMultiAddStart(final NativeLong lLoginID, final int nChannel,
                                                NetDelegates.fDoorMultiAddCallBack cbDoorMultiAdd, NativeLong dwUser, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_DoorOperateMultiAddPerson
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							门禁通道号
     [in] pInParam							输入参数
     [in] pOutParam							输出参数
     [in] pReserved							保留参数, void*
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		门禁配置操作批量导入人员，可重复调用
     *********************************************************************************/
    public boolean Net_DoorOperateMultiAddPerson(final NativeLong lLoginID, final int nChannel,
                                                 STU_DOOR_CFG_PERSON_MULTI_ADD_PARAM.ByReference pInParam, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_DoorOperateMultiAddStart
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							门禁通道号
     [in] pReserved							保留参数, void*
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		门禁配置操作停止批量导入
     *********************************************************************************/
    public boolean Net_DoorOperateMultiAddStop(final NativeLong lLoginID, Pointer pReserved /*= NULL*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    // LDM 远程设备管理操作

    /********************************************************************************
     函数：		Net_LdmOperate
     参数：		[in] lLoginID							登录句柄
     [in] emType								操作类型, EM_LDM_OPT_TYPE
     [in] pInParam							输入参数, void*
     [in] nInParamSize						输入参数大小
     [in] pOutParam							输出参数, void*
     [in] nOutParamSize						输出参数大小
     [in] pReserved							保留参数, void*
     [in] nWaitTime							超时时间
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		云台配置相关接口
     *********************************************************************************/
    public boolean Net_LdmOperate(final NativeLong lLoginID, int emType,
                                  Pointer pInParam, int nInParamSize, Pointer pOutParam, int nOutParamSize,
                                  Pointer pReserved /*= NULL*/, int nWaitTime /*= 15 * 1000*/);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 上行带宽测试

    /********************************************************************************
     函数：		Net_StartDevBandwidthTest
     参数：		[in] lLoginID						登录句柄
     [in] nChannel					通道号
     [in] cbDevBandwidthTest			回调函数
     [in] dwUser						用户自定义参数
     [in] nWaitTime					超时时间
     [in] pReserved					保留参数
     返回值：		成功返回测试句柄
     说明：		开启设备上行带宽测试
     *********************************************************************************/
    public NativeLong Net_StartDevBandwidthTest(final NativeLong lLoginID, int nChannel,
                                                fDevBandwidthTestCallBack cbDevBandwidthTest, NativeLong dwUser, int nWaitTime /*= 5000*/, Pointer pReserved /*= NULL*/);

    /********************************************************************************
     函数：		Net_StartDevBandwidthTest
     参数：		[in] lDevBandwidthHandle				测试句柄
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		关闭设备上行带宽测试
     *********************************************************************************/
    public boolean Net_StopDevBandwidthTest(final NativeLong lDevBandwidthHandle);

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 视频操作控制

    /********************************************************************************
     函数：		Net_VideoOperate
     参数：		[in] lLoginID							登录句柄
     [in] nChannel							通道号
     [in] emType								操作类型, EM_VIDEO_CFG_OPT_TYPE
     [in] pInParam							输入参数
     [in] nInParamSize						输入参数大小
     [in] pOutParam							输出参数
     [in] nOutParamSize						输出参数大小
     [in] pReserved							保留参数
     返回值：		成功返回TRUE, 失败返回FALSE
     说明：		视频相关操作配置控制接口
     *********************************************************************************/
    public boolean Net_VideoOperate(final NativeLong lLoginID, int nChannel, int emType,
                                    Pointer pInParam, int nInParamSize, Pointer pOutParam, int nOutParamSize, Pointer pReserved /*= NULL*/);
};
