static public object GetBinaryTypeValue(IAnalyze analyze, BinaryTypeEnumeration binaryType) { object value = null; switch (binaryType) { case BinaryTypeEnumeration.Primitive: var temp = (PrimitiveTypeEnumeration)analyze.Reader.ReadByte(); value = temp; if (temp == PrimitiveTypeEnumeration.String) { throw new Exception(); } break; case BinaryTypeEnumeration.SystemClass: //可能有问题 value = new LengthPrefixedString(analyze); break; case BinaryTypeEnumeration.Class: value = new ClassTypeInfo(analyze); break; case BinaryTypeEnumeration.PrimitiveArray: value = (PrimitiveTypeEnumeration)analyze.Reader.ReadByte(); break; } return(value); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { //EOF //感觉是无意义的数据 while (analyze.Reader.BaseStream.Position < analyze.Reader.BaseStream.Length) { if (analyze.Reader.BaseStream.Position == 1) { break; } else { return(null); } } var record = new SerializationHeaderRecord(); record.RootId = analyze.Reader.ReadInt32(); record.HeaderId = analyze.Reader.ReadInt32(); record.MajorVersion = analyze.Reader.ReadInt32(); record.MinorVersion = analyze.Reader.ReadInt32(); return(record); }
public ValueWithCode(IAnalyze analyze) : base(analyze) { PrimitiveTypeEnum = (PrimitiveTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsPrimitiveTypeEnum(PrimitiveTypeEnum); Value = Common.GetPrimitiveTypeValue(analyze, PrimitiveTypeEnum); }
public HeartContext() { worker.DoWork += worker_DoWork; worker.WorkerSupportsCancellation = true; Pump = new Com(); //Pump = new RandomPump(); //Pump = new FilePump(); //Pump.Received += Pump_Received; Analyze = new ComDataAnalyze(Pump); Analyze.Analyzed += Analyze_Analyzed; Rate = new DifferenceHeartRate(this); Rate.RateAnalyzed += Rate_RateAnalyzed; AvgFilter = new AvgFilterProcess(); //FirFilter = new MyFirFilterProcess(); //FirFilter = new LowFirFilterProcess(); FirFilter = new BandPassFirFilterProcess(); BandStopFilter = new BandStopFirFilterProcess(); MedianFilter = new MedianFilterProcess(); Processes = new List<IProcess>() { AvgFilter, FirFilter, //BandStopFilter, MedianFilter, }; }
public ClassTypeInfo(IAnalyze analyze) : base(analyze) { TypeName = new LengthPrefixedString(analyze); Assert.IsMemberName(TypeName.Value); LibraryId = analyze.Reader.ReadInt32(); }
public ArrayInfo(IAnalyze analyze) : base(analyze) { ObjectId = analyze.Reader.ReadInt32(); Assert.IsObjectId(ObjectId); Length = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(Length); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new ArraySingleObject(); record.ArrayInfo = new ArrayInfo(analyze); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new MemberReference(); record.IdRef = analyze.Reader.ReadInt32(); Assert.IsIdRef(record.IdRef); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new ObjectNullMultiple(); record.NullCount = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(record.NullCount); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new MemberPrimitiveTyped(); record.PrimitiveTypeEnum = (PrimitiveTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsPrimitiveTypeEnum(record.PrimitiveTypeEnum); record.Value = Common.GetPrimitiveTypeValue(analyze, record.PrimitiveTypeEnum); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new BinaryLibrary(); record.LibraryId = analyze.Reader.ReadInt32(); Assert.IsLibraryId(record.LibraryId); record.LibraryName = new LengthPrefixedString(analyze); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new BinaryObjectString(); record.ObjectId = analyze.Reader.ReadInt32(); Assert.IsObjectId(record.ObjectId); record.Value = new LengthPrefixedString(analyze); return(record); }
public ArrayOfValueWithCode(IAnalyze analyze) : base(analyze) { Length = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(Length); ListOfValueWithCode = new ValueWithCode[Length]; for (int i = 0; i < Length; i++) { ListOfValueWithCode[i] = new ValueWithCode(analyze); } }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { if (analyze.LastRecordType == RecordTypeEnumeration.ClassWithId) { return(null); } var record = new SystemClassWithMembers(); record.ClassInfo = new ClassInfo(analyze); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { if (analyze.LastRecordType == RecordTypeEnumeration.ClassWithId) { return(null); } var record = new ClassWithMembers(); record.ClassInfo = new ClassInfo(analyze); record.LibraryId = analyze.Reader.ReadInt32(); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new ArraySinglePrimitive(); record.ArrayInfo = new ArrayInfo(analyze); record.PrimitiveTypeEnum = (PrimitiveTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsPrimitiveTypeEnum(record.PrimitiveTypeEnum); if (record.PrimitiveTypeEnum == PrimitiveTypeEnumeration.Byte) { record.Value = analyze.Reader.ReadBytes(record.ArrayInfo.Length); } return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new BinaryMethodReturn(); record.MessageEnum = (MessageFlags)analyze.Reader.ReadInt32(); Assert.IsMessageFlags(record.MessageEnum); record.ReturnValue = new ValueWithCode(analyze); record.CallContext = new StringValueWithCode(analyze); if (record.MessageEnum == MessageFlags.ArgsInline) { record.Args = new ArrayOfValueWithCode(analyze); } return(record); }
public MemberTypeInfo(IAnalyze analyze, int memberCount) : base(analyze) { BinaryTypeEnums = new BinaryTypeEnumeration[memberCount]; AdditionalInfos = new object[memberCount]; for (int i = 0; i < memberCount; i++) { var type = (BinaryTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsBinaryTypeEnum(type); BinaryTypeEnums[i] = type; } for (int i = 0; i < memberCount; i++) { object value = Common.GetBinaryTypeValue(analyze, BinaryTypeEnums[i]); AdditionalInfos[i] = value; } }
public ClassInfo(IAnalyze analyze) : base(analyze) { ObjectId = analyze.Reader.ReadInt32(); //暂时这么处理,ObjectId暂时应该不会大于该值 Assert.IsObjectId(ObjectId); Name = new LengthPrefixedString(analyze); Assert.IsMemberName(Name.Value); MemberCount = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(MemberCount); MemberNames = new LengthPrefixedString[MemberCount]; for (int i = 0; i < MemberCount; i++) { MemberNames[i] = new LengthPrefixedString(analyze); Assert.IsMemberName(MemberNames[i].Value); } }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new BinaryArray(); record.ObjectId = analyze.Reader.ReadInt32(); Assert.IsObjectId(record.ObjectId); record.BinaryArrayTypeEnum = (BinaryArrayTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsBinaryArrayTypeEnum(record.BinaryArrayTypeEnum); record.Rank = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(record.Rank); record.Lengths = new Int32[record.Rank]; for (int i = 0; i < record.Rank; i++) { record.Lengths[i] = analyze.Reader.ReadInt32(); Assert.IsPositiveIntegerIncludeZero(record.Lengths[i]); } record.LowerBounds = new Int32[record.Rank]; for (int i = 0; i < record.Rank; i++) { if (record.BinaryArrayTypeEnum == BinaryArrayTypeEnumeration.SingleOffset || record.BinaryArrayTypeEnum == BinaryArrayTypeEnumeration.JaggedOffset || record.BinaryArrayTypeEnum == BinaryArrayTypeEnumeration.RectangularOffset) { record.LowerBounds[i] = analyze.Reader.ReadInt32(); } else { record.LowerBounds[i] = 0; } } record.TypeEnum = (BinaryTypeEnumeration)analyze.Reader.ReadByte(); Assert.IsBinaryTypeEnum(record.TypeEnum); record.AdditionalTypeInfo = Common.GetBinaryTypeValue(analyze, record.TypeEnum); return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { //ClassWithId不可能连续出现两次以上 if (analyze.LastRecordType == RecordTypeEnumeration.ClassWithId) { return(null); } // if (analyze.LastRecordType == RecordTypeEnumeration.ClassWithMembersAndTypes) { return(null); } // if (analyze.LastRecordType == RecordTypeEnumeration.BinaryObjectString) { return(null); } var record = new ClassWithId(); record.ObjectId = analyze.Reader.ReadInt32(); Assert.IsObjectId(record.ObjectId); record.MetadataId = analyze.Reader.ReadInt32(); record.TempId = analyze.Reader.ReadInt32(); //ClassWithId后面老是会跟个4字节的干扰数据,这里检查下 var pos = analyze.Reader.BaseStream.Position; var value = analyze.Reader.ReadInt32(); if (value > 0xFF) { analyze.Reader.BaseStream.Position = pos; } return(record); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new ObjectNull(); return(record); }
public BaseDeserializeObject(IAnalyze analyze) { }
void analyzeStrategy_AnalyzeEnd(object sender, IAnalyze.EventArgsAnalyzeEnd e) { if (this.group != null && this.group.AlarmCount > 0) { //保存报警组 this.alarmWriter.WriteGroup(this.group); OnAnalyzeEnd(new AlarmEventArgs(this.group, null)); this.group = null; } }
void analyzeStrategy_AnalyzeBegin(object sender, IAnalyze.EventArgsAnalyzeBegin e) { //创建报警组 group = new GroupInfo(e.GroupID, this.areaName, this.deviceName, this.Horizon, this.Vertical, e.AnalyzeCount); OnAnalyzeBegin(new AlarmEventArgs(this.group, null)); }
IRecordObject IRecordTypeHandler.Handle(IAnalyze analyze) { var record = new MessageEnd(); return(record); }
static public object GetPrimitiveTypeValue(IAnalyze analyze, PrimitiveTypeEnumeration primitiveType) { object value = null; switch (primitiveType) { case PrimitiveTypeEnumeration.Boolean: value = analyze.Reader.ReadBoolean(); break; case PrimitiveTypeEnumeration.Byte: value = analyze.Reader.ReadByte(); break; case PrimitiveTypeEnumeration.Char: value = analyze.Reader.ReadChar(); break; case PrimitiveTypeEnumeration.Decimal: value = analyze.Reader.ReadDecimal(); break; case PrimitiveTypeEnumeration.Double: value = analyze.Reader.ReadDouble(); break; case PrimitiveTypeEnumeration.Int16: value = analyze.Reader.ReadInt16(); break; case PrimitiveTypeEnumeration.Int32: value = analyze.Reader.ReadInt32(); break; case PrimitiveTypeEnumeration.Int64: value = analyze.Reader.ReadInt64(); break; case PrimitiveTypeEnumeration.SByte: value = analyze.Reader.ReadSByte(); break; case PrimitiveTypeEnumeration.Single: value = analyze.Reader.ReadSingle(); break; case PrimitiveTypeEnumeration.TimeSpan: value = new TimeSpan(analyze.Reader.ReadInt64()); break; case PrimitiveTypeEnumeration.DateTime: value = DateTime.FromBinary(analyze.Reader.ReadInt64()); break; case PrimitiveTypeEnumeration.UInt16: value = analyze.Reader.ReadUInt16(); break; case PrimitiveTypeEnumeration.UInt32: value = analyze.Reader.ReadUInt32(); break; case PrimitiveTypeEnumeration.UInt64: value = analyze.Reader.ReadUInt64(); break; case PrimitiveTypeEnumeration.String: value = analyze.Reader.ReadString(); break; } return(value); }
public LengthPrefixedString(IAnalyze analyze) : base(analyze) { Value = analyze.Reader.ReadString(); }
public StringValueWithCode(IAnalyze analyze) : base(analyze) { StringValue = new LengthPrefixedString(analyze); }
void analyzeStrategy_AnalyzeAlarm(object sender, IAnalyze.EventArgsAnalyzeAlarm e) { if (this.group != null) { AlarmInfo alarm = new AlarmInfo(this.group.GroupTime, e.FrameIndex, e.AlarmTime, e.AlarmRegion, e.AlarmRegionType); //保存报警 if (this.alarmWriter.WriteAlarm(this.group, alarm, e.AlarmFrame)) { //添加报警 if (this.group!= null) this.group.Add(alarm); OnAnalyzeAlarm(new AlarmEventArgs(this.group, alarm), e.AlarmFrame); } e.AlarmFrame.Dispose(); } }