mobile CCTV,mobile surveillance,police body worn cameras

标题: 在WinFormDemo.sln中iLongitude变量没有赋值过程 [打印本页]

author: zhangxiaohui    time: 2019-11-28 13:32
标题: 在WinFormDemo.sln中iLongitude变量没有赋值过程
在WinFormDemo.sln中iLongitude变量没有赋值过程
author: coldflame    time: 2019-11-28 14:16
您具体的问题是啥?
author: zhangxiaohui    time: 2019-11-28 20:55
想得到gps位置信号,在WinFormDemo.sln中iLongitude变量只有定义,没有给这个变量赋值。
所以这个demo没有给出gps位置信息。
author: coldflame    time: 2019-11-29 08:52
好像MFCdemo里面有获取GPS信息,您对比看看。

author: bai_315    time: 2019-11-29 09:47
zhangxiaohui post on2019-11-28 20:55
想得到gps位置信号,在WinFormDemo.sln中iLongitude变量只有定义,没有给这个变量赋值。
所以这个demo没有 ...

iLongitude这个变量在结构体BVCU_PUCFG_GPSData中定义,这个结构体在BVCU_PUCFG_GPSData gpsdata = (BVCU_PUCFG_GPSData)Marshal.PtrToStructure(pGpsData, typeof(BVCU_PUCFG_GPSData))   被整体赋值
author: zhangxiaohui    time: 2019-11-29 19:51
请直接告诉一下如何给iLongitude变量赋值,因为只是想得到gps位置信号
author: hardfire    time: 2019-11-29 21:36
好,我们白工再测试下反馈。

author: bai_315    time: 2019-12-3 19:37
zhangxiaohui post on2019-11-29 19:51
请直接告诉一下如何给iLongitude变量赋值,因为只是想得到gps位置信号

你好,下面我来描述下从打开设备GPS通道,一直到获取GPS数据,调用SDK的过程。打开设备GPS通道的C#接口在  BVCULibraryLayer.cs 文件中,其接口声明如下
[DllImport("ManagedLayer.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int ManagedLayer_CuOpenGpsDialog(IntPtr handle, ref IntPtr dialog, IntPtr session,
            Byte[] puId, int channelNo,
            EventHandler.BVCU_GpsDialog_OnEvent onDlgEvent,
            EventHandler.BVCU_GpsDialog_OnData onDlgData);

这个接口是个异步的接口,
handle是bvsdk的句柄
dialog是打开的GPS通道的句柄(用于上层操作该通道)
session是登录实例的句柄
puId 是设备ID
channelNO是通道号

onDlgEvent是一个函数指针,标识一个函数。在通道打开有结果的时候(打开成功/失败),该函数会被调用。
onDlgData也是一个函数指针,标识一个函数。在通道打开成功,并且有GPS数据的时候,该函数会被调用。

C#层 在onDlgData指向的函数中,可以接受到GPS数据。onDlgData回调上来的数据,是指向一个C结构体的指针,需要调用C#的相关接口装换。
转换函数如下:
public void onGetGpsData(string puId, IntPtr pGpsData, Int32 len)
        {
            BVCU_PUCFG_GPSData gpsdata = (BVCU_PUCFG_GPSData)Marshal.PtrToStructure(pGpsData, typeof(BVCU_PUCFG_GPSData));
         }
}


请务必在回调函数中执行装换,不要在invoke到主线程之后再转换,数据在回调函数结束后就会清掉。


详情请参考,WinFormDemo.sln






欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) Powered by Discuz! X3.2