[StructLayout(LayoutKind.Explicit, Size = 36, CharSet = CharSet.Ansi)]
public struct MotionConfig
{
public static MotionConfig Zero
{
get { return new MotionConfig(); }
} public static MotionConfig Default
{
get
{
MotionConfig d = new MotionConfig(); d.freshTime = 10;
d.maxTi = 230;
d.minTi = 45;
d.minMatching = 90;
d.traceRect.x0 = 10;
d.traceRect.y0 = 10;
d.traceRect.x1 = 100;
d.traceRect.y1 = 100;
d.detectMode = 0; return d;
}
} [FieldOffset(0)] public ushort freshTime;//更新时间(秒)
[FieldOffset(2)] public ushort detectMode;//检测模式,0:匹配模式,1:宽度模式,2:高度模式,3长宽模式,4:长宽+匹配
[FieldOffset(3)] public byte maxTi;//最高阀值
[FieldOffset(4)] public byte minTi;//最低阀值
[FieldOffset(5)] public byte minMatching;//最低匹配度
[FieldOffset(8)] public uint maxObjWidth;//最大物体宽度
[FieldOffset(12)] public uint maxObjHeight;//最大物体高度
[FieldOffset(16)] public byte maxObjMatchMinMatching;//最大物体匹配度
[MarshalAs(UnmanagedType.LPStruct, SizeConst = 16)]
[FieldOffset(20)] public sRect traceRect;
}
public struct MotionConfig
{
public static MotionConfig Zero
{
get { return new MotionConfig(); }
} public static MotionConfig Default
{
get
{
MotionConfig d = new MotionConfig(); d.freshTime = 10;
d.maxTi = 230;
d.minTi = 45;
d.minMatching = 90;
d.traceRect.x0 = 10;
d.traceRect.y0 = 10;
d.traceRect.x1 = 100;
d.traceRect.y1 = 100;
d.detectMode = 0; return d;
}
} [FieldOffset(0)] public ushort freshTime;//更新时间(秒)
[FieldOffset(2)] public ushort detectMode;//检测模式,0:匹配模式,1:宽度模式,2:高度模式,3长宽模式,4:长宽+匹配
[FieldOffset(3)] public byte maxTi;//最高阀值
[FieldOffset(4)] public byte minTi;//最低阀值
[FieldOffset(5)] public byte minMatching;//最低匹配度
[FieldOffset(8)] public uint maxObjWidth;//最大物体宽度
[FieldOffset(12)] public uint maxObjHeight;//最大物体高度
[FieldOffset(16)] public byte maxObjMatchMinMatching;//最大物体匹配度
[MarshalAs(UnmanagedType.LPStruct, SizeConst = 16)]
[FieldOffset(20)] public sRect traceRect;
}
[FieldOffset(0)]是指定内存对齐的?