123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using QuickNV.HikvisionNetSDK.Api.Service;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using static QuickNV.HikvisionNetSDK.Defines;
- using static QuickNV.HikvisionNetSDK.Methods;
- namespace QuickNV.HikvisionNetSDK.Api
- {
- public class HvSession : IDisposable
- {
- private static SdkService _SdkService;
- public static SdkService SdkService
- {
- get
- {
- if (_SdkService == null)
- {
- _SdkService = new SdkService();
- }
- return _SdkService;
- }
- }
- public static void Init()
- {
- Invoke(NET_DVR_Init());
- }
-
- public static HvSession Login(string host, int port, string username, string password, Encoding encoding)
- {
- NET_DVR_DEVICEINFO_V30 deviceInfo = default;
- var userId = Invoke(NET_DVR_Login_V30(host, port, username, password, ref deviceInfo));
- var session = new HvSession(userId, encoding, deviceInfo);
- session.Host = host;
- session.Port = port;
- session.UserName = username;
- session.Password = password;
- return session;
- }
- public static HvSession Login(string host, int port, string username, string password)
- {
- return Login(host, port, username, password, Encoding.Default);
- }
- public static void Cleanup() => Invoke(NET_DVR_Cleanup());
- public string Host { get; private set; }
- public int Port { get; private set; }
- public string UserName { get; private set; }
- public string Password { get; private set; }
- public int UserId { get; private set; }
- public bool IsOnline { get; private set; } = true;
- public Encoding Encoding { get; }
- private NET_DVR_DEVICEINFO_V30 deviceInfo;
- private HvSession(int userId, Encoding encoding, NET_DVR_DEVICEINFO_V30 deviceInfo)
- {
- UserId = userId;
- Encoding = encoding;
- this.deviceInfo = deviceInfo;
- }
- public void Logout()
- {
- if (!IsOnline)
- return;
- IsOnline = false;
- Invoke(NET_DVR_Logout_V30(UserId));
- }
- public void Dispose()
- {
- Logout();
- }
- private ChannelService _ChannelService;
- public ChannelService ChannelService
- {
- get
- {
- if (_ChannelService == null)
- _ChannelService = new ChannelService(this, deviceInfo);
- return _ChannelService;
- }
- }
- private ConfigService _ConfigService;
- public ConfigService ConfigService
- {
- get
- {
- if (_ConfigService == null)
- _ConfigService = new ConfigService(this);
- return _ConfigService;
- }
- }
- private PictureService _PictureService;
- public PictureService PictureService
- {
- get
- {
- if (_PictureService == null)
- _PictureService = new PictureService(this);
- return _PictureService;
- }
- }
- private VideoFileService _VideoFileService;
- public VideoFileService VideoFileService
- {
- get
- {
- if (_VideoFileService == null)
- _VideoFileService = new VideoFileService(this);
- return _VideoFileService;
- }
- }
- }
- }
|