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); }
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; }
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); }
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; }
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); * }*/ }