public void callback(UInt32 msg_id, UInt32 arg1, UInt32 arg2, IntPtr data1, UInt32 data1_len, IntPtr data2, UInt32 data2_len) { st_event st = new st_event(); switch (msg_id) { case 12: { st = (st_event)Marshal.PtrToStructure(data1, typeof(st_event)); string str = Encoding.Default.GetString(st.event_data); string guid = System.Text.Encoding.Default.GetString(st.guid); int i = guid.IndexOf("\0"); if (i > 0) { guid = guid.Substring(0, i); } int Temp_intChannelIndex = str.IndexOf("c:"); if (str.IndexOf("{") < 0 && Temp_intChannelIndex > 0) { //存在 { }代表事件内容 //认为是录像信息进行解析 lRemoteVideoRecord = SDK_SKVideoSDK.SKRemoteVideoRecordDataPrasing(guid, str); } } break; default: break; } }
public static void callback_StramInfo(st_event st) { string guid = System.Text.Encoding.UTF8.GetString(st.guid).Trim(); int i = guid.IndexOf("\0"); guid = guid.Substring(0, i); string data = Encoding.Default.GetString(st.event_data).Trim(); i = data.IndexOf("\0"); data = data.Substring(0, i); Rootobject root = JsonConvert.DeserializeObject <Rootobject>(data); //string strJsonDataContent= switch (root.cmd) { case c_GET_CAM_INFO: int Temp_intIndex = data.IndexOf(c_GET_CAM_INFO) + c_GET_CAM_INFO.Length + 9; int Temp_intt = data.Length - Temp_intIndex - 1; string strCotnent = data.Substring(Temp_intIndex, Temp_intt); List <Cam> cs = JsonConvert.DeserializeObject <List <Cam> >(strCotnent); //foreach (Cam item in cs) //{ // item.m_br = 2048; // item.s_h = 704; // item.s_w = 576; // item.s_fps = 25; // item.s_br = 512; //} VideoStreamInfoReport(new VideoStreamInfoReportValue { Guid = guid, StreamInfo = new CamsStreamInfo { cams = cs.ToArray() } }); break; case c_GET_NET_SPD: Temp_intIndex = data.IndexOf(c_GET_NET_SPD) + c_GET_NET_SPD.Length + 9; Temp_intt = data.Length - Temp_intIndex - 1; strCotnent = data.Substring(Temp_intIndex, Temp_intt); Svr[] scrs = JsonConvert.DeserializeObject <Svr[]>(strCotnent); NETSPDReport(new NETSPDReportValue { Guid = guid, Svrs = scrs }); break; } }
public static void callback(UInt32 msg_id, UInt32 arg1, UInt32 arg2, IntPtr data1, UInt32 data1_len, IntPtr data2, UInt32 data2_len) { st_event st = new st_event(); switch (msg_id) { case 0X0C: st = (st_event)Marshal.PtrToStructure(data1, typeof(st_event)); switch (st.event_code) { case 0X32: //获取摄像头信息(分辨率,码率,帧率) callback_StramInfo(st); break; } break; default: break; } }