Ejemplo n.º 1
0
 public void getPtzAttr(string puId, int channelNo)
 {
     Session.Channel channel = m_session.getChannel(puId, channelNo);
     if (channel == null)
     {
         return;
     }
     BVCU.ManagedLayer_CuGetPuPtzAttr(m_bvcuSdkHandle, m_session.Handle, Encoding.UTF8.GetBytes(puId),
                                      channel.ptzIdx, m_eventHandler.onGetPtzAttr);
 }
Ejemplo n.º 2
0
 void getChannel(Session.Channel chnl, BVCU_PUOneChannelInfo channel)
 {
     chnl.channelName = channel.szName;
     BVCU.AVDirection avDir = BVCU.GetAVDirection(channel.iMediaDir);
     chnl.audioPlayback = avDir.audioRecv;
     chnl.speak         = avDir.audioSnd;
     chnl.video         = avDir.videoRecv;
     chnl.ptzIdx        = channel.iPTZIndex;
     chnl.channelNo     = channel.iChannelIndex;
 }
Ejemplo n.º 3
0
        public void ptzControl(int cmd, string puId, int channelNo, BVCU_PTZ_MOVE move, int presetNo = 0)
        {
            Session.Channel channel = m_session.getChannel(puId, channelNo);
            if (channel == null)
            {
                return;
            }
            BVCU_PUCFG_PTZControl ptzCtrl = new BVCU_PUCFG_PTZControl();

            ptzCtrl.bStop       = (int)move;
            ptzCtrl.iPTZCommand = cmd;
            ptzCtrl.iParam3     = ptzCtrl.iParam2 = ptzCtrl.iParam1 = 0;
            switch (cmd)
            {
            case BVCU_PTZ_COMMAND.LEFT:
            case BVCU_PTZ_COMMAND.RIGHT:
            case BVCU_PTZ_COMMAND.UP:
            case BVCU_PTZ_COMMAND.DOWN:
                ptzCtrl.iParam2 = m_ptzSpeed;
                break;

            case BVCU_PTZ_COMMAND.LEFTDOWN:
            case BVCU_PTZ_COMMAND.LEFTTOP:
            case BVCU_PTZ_COMMAND.RIGHTDOWN:
            case BVCU_PTZ_COMMAND.RIGHTTOP:
                ptzCtrl.iParam1 = ptzCtrl.iParam2 = m_ptzSpeed;
                break;

            case BVCU_PTZ_COMMAND.PRESET_GO:
                ptzCtrl.iParam1 = presetNo;
                ptzCtrl.iParam2 = ptzCtrl.iParam3 = m_ptzSpeed;
                break;

            case BVCU_PTZ_COMMAND.CRUISE_GO:
                ptzCtrl.iParam1 = presetNo;
                break;

            default:
                break;
            }
            IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(BVCU_PUCFG_PTZControl)));

            Marshal.StructureToPtr(ptzCtrl, pt, true);
            BVCU.ManagedLayer_CuSetPuPtzControl(m_bvcuSdkHandle, m_session.Handle, Encoding.UTF8.GetBytes(puId), channel.ptzIdx, pt);
        }
Ejemplo n.º 4
0
        void Server_ProcNotifyChannelInfo(IntPtr session, IntPtr ptPuId, IntPtr ptPuName, int iStatus, ref BVCU_PUOneChannelInfo channel, int iFinished)
        {
            string puId   = Marshal.PtrToStringAnsi(ptPuId, BVCU.BVCU_MAX_ID_LEN + 1).Split('\0')[0];
            string puName = Marshal.PtrToStringAnsi(ptPuName, BVCU.BVCU_MAX_NAME_LEN + 1).Split('\0')[0];

            if (iStatus == BVCU.BVCU_ONLINE_STATUS_OFFLINE)
            {
                m_session.OnRemovePu(puId);
            }
            if (BVCU.TRUE(iFinished))
            {
                m_session.OnGetPuListFinished();
            }
            Session.Channel chnl = new Session.Channel();
            getChannel(chnl, channel);
            m_session.OnGetPu(puName, puId, chnl);
            return;
        }
Ejemplo n.º 5
0
        void Cmd_OnGetPuList(IntPtr session, IntPtr ptPuId, IntPtr ptPuName, int iStatus, ref BVCU_PUOneChannelInfo channel, int iFinished)
        {
            string puId   = Marshal.PtrToStringAnsi(ptPuId, BVCU.BVCU_MAX_ID_LEN + 1).Split('\0')[0];
            string puName = Marshal.PtrToStringAnsi(ptPuName, BVCU.BVCU_MAX_NAME_LEN + 1).Split('\0')[0];

            if (BVCU.TRUE(iFinished))
            {
                m_session.OnGetPuListFinished();
            }
            Session.Channel chnl = new Session.Channel();
            if (iStatus == BVCU.BVCU_ONLINE_STATUS_OFFLINE)
            {
                chnl.online = false;
            }
            else
            {
                chnl.online = true;
            }
            getChannel(chnl, channel);
            m_session.OnGetPu(puName, puId, chnl);

            /*if (channel.szName.Equals("gps"))
             * {
             *  chnl = new Session.Channel();
             *  channel.szName = "TSP";
             *  channel.iPTZIndex = 15;
             *  channel.iMediaDir = 32;
             *  channel.iChannelIndex = 65792;
             *  if (iStatus == BVCU.BVCU_ONLINE_STATUS_OFFLINE)
             *  {
             *      chnl.online = false;
             *  }
             *  else
             *  {
             *      chnl.online = true;
             *  }
             *  getChannel(chnl, channel);
             *  m_session.OnGetPu(puName, puId, chnl);
             * }*/
        }