首页

海康摄像云台控制

c#

2020-9-7

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace yundemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            context = SynchronizationContext.Current; // 线程间信息同步 
        }
        #region 视频
        SynchronizationContext context = SynchronizationContext.Current; // 线程间信息同步 
  
        bool isStartVideo1 = false;
        /// <summary>
        /// 登录ID
        /// </summary>
        private int pLoginID1 = -1;
        /// <summary>
        /// 硬件信息
        /// </summary>
        // private CHCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo;
        //获取视频路数
        private int BindVideo1 = 0;
        private int[] pRealPlayHandle;
        public void InitVideo()
        {
            try
            {
                ThreadStart tsVideo = new ThreadStart(delegate ()
                {
                    context.Post((o) =>
                    {
                        pRealPlayHandle = new int[4];
                        BindVideo1 = 0;
                        #region 摄像头1
                        isStartVideo1 = CHCNetSDK.NET_DVR_Init();
                        //设置连接时间与重连时间 
                        //设备用户信息获得
                        CHCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new CHCNetSDK.NET_DVR_DEVICEINFO_V30();
                        pLoginID1 = CHCNetSDK.NET_DVR_Login_V30(IP, Port, Admin, Password, ref deviceInfo);
                        if (pLoginID1 != -1)
                        {
                            // byte CountNum = this.deviceInfo.byChanNum >= deviceInfo.byIPChanNum ? deviceInfo.byChanNum : deviceInfo.byIPChanNum;
                            CHCNetSDK.NET_DVR_PREVIEWINFO lpClientInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
                            lpClientInfo.lChannel = 1;
                            BindVideo1 = 1;
                            lpClientInfo.dwStreamType = 1;//码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                            lpClientInfo.dwLinkMode = 1;//连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP 
                            lpClientInfo.bBlocked = false; //0- 非阻塞取流,1- 阻塞取流                                                              
                            lpClientInfo.hPlayWnd = this.pictureBox1.Handle;
                            IntPtr pUser = new IntPtr();
                            this.pRealPlayHandle[0] = CHCNetSDK.NET_DVR_RealPlay_V40(pLoginID1, ref lpClientInfo, null, pUser);
                            pictureBox1.Refresh();
                        }
                        #endregion
                    }, string.Empty);
                });
                Thread th = new Thread(tsVideo);
                th.IsBackground = true;
                th.Start();
            }
            catch
            {
                MessageBox.Show("连接异常,建议重启");
                Application.Exit();
            }
        }

        private void VideoClose()
        {
            CHCNetSDK.NET_DVR_Cleanup();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            InitConfig();
            InitVideo();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                VideoClose();
            }
            catch
            {
                Application.Exit();
            }
        }
        #endregion

        #region 云台
        private void button5_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.TILT_UP);//上
        }

        private void button8_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.TILT_DOWN);//下
        }

        private void button2_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.PAN_LEFT);
        }

        private void button4_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.PAN_RIGHT);//右
        }

        private void button1_Click(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.ZOOM_OUT);//-
        }

        private void button3_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.ZOOM_IN);// 
        }

        private void button6_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.UP_LEFT);//左上
        }

        private void button7_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.DOWN_LEFT);//左下
        }

        private void button9_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.UP_RIGHT);//右上
        }

        private void button10_Click_1(object sender, EventArgs e)
        {
            YunControl(CHCNetSDK.DOWN_RIGHT);//右下
        }
        private void YunControl(uint demo)
        {
            try
            {
                if (CHCNetSDK.NET_DVR_PTZControl_Other(pLoginID1, 1, demo, 0))
                {
                    Thread.Sleep(100);
                    CHCNetSDK.NET_DVR_PTZControl_Other(pLoginID1, 1, CHCNetSDK.PAN_LEFT, 1);
                }
            }
            catch
            {

            }
        }

        #endregion

        #region 长按
        private bool IsRun = false;
        private int Con = 0;

        private void button3_MouseDown_1(object sender, MouseEventArgs e)
        {
            Con = 1;
            timer1.Start();
            IsRun = true;
        }

        private void button3_MouseUp_1(object sender, MouseEventArgs e)
        {
            Con = 0;
            timer1.Stop();
            IsRun = false; ;
        }

        private void button1_MouseDown_1(object sender, MouseEventArgs e)
        {
            Con = -1;
            timer1.Start();
            IsRun = true;
        }

        private void button1_MouseUp_1(object sender, MouseEventArgs e)
        {
            Con = 0;
            timer1.Stop();
            IsRun = false;
        }
        private void timer1_Tick_1(object sender, EventArgs e)
        {
            if (IsRun)
            {
                if (Con == 1)
                    YunControl_(CHCNetSDK.ZOOM_IN);// 
                else if (Con == -1)
                    YunControl_(CHCNetSDK.ZOOM_OUT);//-
            }
        }
        private void YunControl_(uint demo)
        {
            try
            {
                if (CHCNetSDK.NET_DVR_PTZControl_Other(pLoginID1, 1, demo, 0))
                {
                    Thread.Sleep(300);
                    CHCNetSDK.NET_DVR_PTZControl_Other(pLoginID1, 1, demo, 1);
                }
            }
            catch
            {

            }
        }
        #endregion

        #region 加载配置
        private string IP = string.Empty;
        private int Port = 0;
        private string Admin = string.Empty;
        private string Password = string.Empty;
        private void InitConfig()
        {
            try
            {
                IP = System.Configuration.ConfigurationManager.AppSettings["IP"].ToString();
                Port = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["Port"].ToString());
                Admin = System.Configuration.ConfigurationManager.AppSettings["Admin"].ToString();
                Password = System.Configuration.ConfigurationManager.AppSettings["Passward"].ToString();
            }
            catch
            {
                MessageBox.Show("配置出错");
                Application.Exit();
            }
        }
        #endregion

        private void pictureBox1_DoubleClick(object sender, EventArgs e)
        {
            int loginId = pLoginID1;
            BigScress frm = new BigScress(loginId, this.BindVideo1);
            frm.ShowDialog(this);
        }
    }
}
资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
yundemo/yundemo/.git/COMMIT_EDITMSG , 22
yundemo/yundemo/.git/HEAD , 23
yundemo/yundemo/.git/config , 770
yundemo/yundemo/.git/description , 73
yundemo/yundemo/.git/hooks/applypatch-msg.sample , 478
yundemo/yundemo/.git/hooks/commit-msg.sample , 896
yundemo/yundemo/.git/hooks/post-update.sample , 189
yundemo/yundemo/.git/hooks/pre-applypatch.sample , 424
yundemo/yundemo/.git/hooks/pre-commit.sample , 1642
yundemo/yundemo/.git/hooks/pre-push.sample , 1348
yundemo/yundemo/.git/hooks/pre-rebase.sample , 4898
yundemo/yundemo/.git/hooks/pre-receive.sample , 544
yundemo/yundemo/.git/hooks/prepare-commit-msg.sample , 1239
yundemo/yundemo/.git/hooks/update.sample , 3610
yundemo/yundemo/.git/index , 1318
yundemo/yundemo/.git/info/exclude , 240
yundemo/yundemo/.git/logs/HEAD , 360
yundemo/yundemo/.git/logs/refs/heads/master , 360
yundemo/yundemo/.git/ms-persist.xml , 150
yundemo/yundemo/.git/objects/13/6ca797f1bde62a6bd12c7ae718192ef32b6782 , 227
yundemo/yundemo/.git/objects/1f/f0c423042b46cb1d617b81efb715defbe8054d , 751
yundemo/yundemo/.git/objects/27/efab6d20355fb11523dae72c6f807d89fd8c8f , 454
yundemo/yundemo/.git/objects/35/5ad73590e0cf0a7dd2090a07044c519cfe840a , 191
yundemo/yundemo/.git/objects/35/be6d9afc686fa81f12d296d9c009034e942e12 , 708
yundemo/yundemo/.git/objects/39/645652af62950ebf3b28ec3a5400dcec30b1c4 , 186
yundemo/yundemo/.git/objects/3c/4efe206bd0e7230ad0ae8396a3c883c8207906 , 2112
yundemo/yundemo/.git/objects/4e/cb0ce582332ac3ece27eb8b59b0c47958da6ac , 169
yundemo/yundemo/.git/objects/61/236fd73b09247f5581aea5dff799a9dc5d32a6 , 210
yundemo/yundemo/.git/objects/66/8177275c313cf8e8806ee6a9d4f3801f129ae7 , 198
yundemo/yundemo/.git/objects/7e/908a186cbf4be0a0a3c5d77dfdce9b06cab46f , 153
yundemo/yundemo/.git/objects/91/e3470e1645e6e8d0de6fe9f6b242f366e9a393 , 89
yundemo/yundemo/.git/objects/af/7dbebbacef595e3089c01c05671016c21a8304 , 1604
yundemo/yundemo/.git/objects/b5/0c74f35e5a66ee0597b9c62244676902b0c9fd , 153
yundemo/yundemo/.git/objects/c0/edec7cdb9c59801b21876f6bd113dd61e352dc , 1093
yundemo/yundemo/.git/objects/ca/0e20f044a9f9fdfc9c12c40c6f034d946c6425 , 621
yundemo/yundemo/.git/objects/eb/7746f3fcbfb029342c741c4cd9bcfb039d2814 , 483
yundemo/yundemo/.git/objects/f1/1cc54588bc37c2eb6c87be9c47686a18ca68a6 , 1133
yundemo/yundemo/.git/objects/f7/c447959853e713533e2acda95c72ec205547f2 , 315
yundemo/yundemo/yundemo/yundemo.csproj , 4262
yundemo/yundemo/yundemo/obj/Debug/yundemo.pdb , 91648
yundemo/yundemo/.git/refs/heads/master , 41
yundemo/yundemo/yundemo/obj/Debug/yundemo.exe , 274944
yundemo/yundemo/.gitattributes , 2581
yundemo/yundemo/.gitignore , 4565
yundemo/yundemo/.vs/yundemo/v15/.suo , 60416
yundemo/yundemo/.vs/yundemo/v15/Server/sqlite3/db.lock , 0
yundemo/yundemo/.vs/yundemo/v15/Server/sqlite3/storage.ide , 1839104
yundemo/yundemo/.vs/yundemo/v15/Server/sqlite3/storage.ide-shm , 32768
yundemo/yundemo/.vs/yundemo/v15/Server/sqlite3/storage.ide-wal , 4927552
yundemo/yundemo/yundemo/App.config , 383
yundemo/yundemo/yundemo/BigScress.Designer.cs , 2008
yundemo/yundemo/yundemo/BigScress.cs , 2240
yundemo/yundemo/yundemo/BigScress.resx , 36509
yundemo/yundemo/yundemo/CHCNetSDK.cs , 868027
yundemo/yundemo/yundemo/Form1.Designer.cs , 13084
yundemo/yundemo/yundemo/Form1.cs , 8468
yundemo/yundemo/yundemo/Form1.resx , 20811
yundemo/yundemo/yundemo/Program.cs , 519
yundemo/yundemo/yundemo/Properties/AssemblyInfo.cs , 1312
yundemo/yundemo/yundemo/Properties/Resources.Designer.cs , 2849
yundemo/yundemo/yundemo/Properties/Resources.resx , 5959
yundemo/yundemo/yundemo/Properties/Settings.Designer.cs , 1094
yundemo/yundemo/yundemo/Properties/Settings.settings , 249
yundemo/yundemo/yundemo/WMPlayer.ico , 20262
yundemo/yundemo/yundemo/bin/Debug/AudioRender.dll , 152576
yundemo/yundemo/yundemo/bin/Debug/HCCore.dll , 1486336
yundemo/yundemo/yundemo/bin/Debug/HCNetSDK.dll , 675328
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/AnalyzeData.dll , 433664
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/AudioIntercom.dll , 610816
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCAlarm.dll , 506368
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCAlarm.lib , 14822
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCCoreDevCfg.dll , 836608
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCDisplay.dll , 616960
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCGeneralCfgMgr.dll , 1083904
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCGeneralCfgMgr.lib , 49402
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCIndustry.dll , 797696
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCPlayBack.dll , 472064
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCPreview.dll , 624128
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCPreview.lib , 38128
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/HCVoiceTalk.dll , 601600
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/OpenAL32.dll , 389632
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/StreamTransClient.dll , 638464
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/SystemTransform.dll , 655360
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/libiconv2.dll , 978432
yundemo/yundemo/yundemo/bin/Debug/HCNetSDKCom/msvcr90.dll , 655872
yundemo/yundemo/yundemo/bin/Debug/PlayCtrl.dll , 3685376
yundemo/yundemo/yundemo/bin/Debug/SuperRender.dll , 352256
yundemo/yundemo/yundemo/bin/Debug/yundemo.exe , 274944
yundemo/yundemo/yundemo/bin/Debug/yundemo.exe.config , 385
yundemo/yundemo/yundemo/bin/Debug/yundemo.pdb , 91648
yundemo/yundemo/yundemo/obj/Debug/yundemo.csprojAssemblyReference.cache , 2548
yundemo/yundemo/yundemo/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 21142
yundemo/yundemo/yundemo/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 7379
yundemo/yundemo/yundemo/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll , 3584
yundemo/yundemo/yundemo/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs , 0
yundemo/yundemo/yundemo/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs , 0
yundemo/yundemo/yundemo/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs , 0
yundemo/yundemo/yundemo/obj/Debug/yundemo.BigScress.resources , 20828
yundemo/yundemo/yundemo/obj/Debug/yundemo.Form1.resources , 10228
yundemo/yundemo/yundemo/obj/Debug/yundemo.Properties.Resources.resources , 180
yundemo/yundemo/yundemo/obj/Debug/yundemo.csproj.CoreCompileInputs.cache , 42
yundemo/yundemo/yundemo/obj/Debug/yundemo.csproj.FileListAbsolute.txt , 944
yundemo/yundemo/yundemo/obj/Debug/yundemo.csproj.GenerateResource.cache , 1074
yundemo/yundemo/yundemo.sln , 1119
没有账号? 忘记密码?

社交账号快速登录