private DateTime ToDateTime(OpcRcw.Da.FILETIME ft) { long dwHighDateTime = ft.dwHighDateTime; long fileTime = ((dwHighDateTime << 0x20) + ft.dwLowDateTime) + 0x430e234000L; return(DateTime.FromFileTimeUtc(fileTime)); }
/// <summary> /// 获取时间戳 /// </summary> /// <param name="ft"></param> /// <returns></returns> private DateTime ToDateTime(OpcRcw.Da.FILETIME ft) { long highbuf = (long)ft.dwHighDateTime; long buffer = (highbuf << 32) + ft.dwLowDateTime; return(DateTime.FromFileTimeUtc(buffer).AddHours(8.0)); }
private DateTime ToDateTime(OpcRcw.Da.FILETIME ft) //对OPCServer读出数据时间标签的计量形式转换,目前没有使用。 { long highbuf = (long)ft.dwHighDateTime; long buffer = (highbuf << 32) + ft.dwLowDateTime + 8 * 36000000000L; return(DateTime.FromFileTimeUtc(buffer)); }
// Token: 0x06000006 RID: 6 RVA: 0x00002170 File Offset: 0x00000370 public bool Read(string[] sItemIDArray, out object[] oValueArray, out short[] wQualityArray, out OpcRcw.Da.FILETIME[] fTimeArray, out int[] nErrorArray) { int num = sItemIDArray.Count <string>(); int[] array = new int[num]; for (int i = 0; i < num; i++) { array[i] = 0; } int[] array2 = new int[num]; oValueArray = new object[num]; wQualityArray = new short[num]; fTimeArray = new OpcRcw.Da.FILETIME[num]; nErrorArray = new int[num]; bool result; try { IOPCItemIO iopcitemIO = (IOPCItemIO)this.m_OPCServer; IntPtr intPtr; IntPtr intPtr2; IntPtr intPtr3; IntPtr intPtr4; iopcitemIO.Read(num, sItemIDArray, array, out intPtr, out intPtr2, out intPtr3, out intPtr4); IntPtr intPtr5 = intPtr; IntPtr ptr = intPtr3; Marshal.Copy(intPtr4, nErrorArray, 0, num); Marshal.Copy(intPtr2, wQualityArray, 0, num); for (int j = 0; j < num; j++) { if (array2[j] == 0) { oValueArray[j] = Marshal.GetObjectForNativeVariant(intPtr5); } else { oValueArray[j] = "Error Value"; } fTimeArray[j] = (OpcRcw.Da.FILETIME)Marshal.PtrToStructure(ptr, typeof(OpcRcw.Da.FILETIME)); DxpSimpleClass.VariantClear(intPtr5); Marshal.DestroyStructure(ptr, typeof(OpcRcw.Da.FILETIME)); intPtr5 = (IntPtr)(intPtr5.ToInt32() + 16); ptr = (IntPtr)(ptr.ToInt32() + Marshal.SizeOf(typeof(OpcRcw.Da.FILETIME))); } Marshal.FreeCoTaskMem(intPtr); Marshal.FreeCoTaskMem(intPtr3); Marshal.FreeCoTaskMem(intPtr4); Marshal.FreeCoTaskMem(intPtr2); result = true; } catch (Exception ex) { #if DEBUG Debug.WriteLine(ex); #endif result = false; } return(result); }
internal static System.Runtime.InteropServices.FILETIME Convert(OpcRcw.Da.FILETIME input) { return(new System.Runtime.InteropServices.FILETIME { dwLowDateTime = input.dwLowDateTime, dwHighDateTime = input.dwHighDateTime }); }