private DirectiveResult ParsePausingResultData(byte[] bytes) { var ret = new DirectiveResult(); if (!DirectiveHelper.IsValidationResult(bytes, ((DirectiveTypeEnum)bytes[1]).GetFeedbackLength())) { ret.Status = false; return(ret); } ret.Status = true; var data = new GasDirectiveData(); data.DeviceId = bytes[0]; data.DirectiveType = (DirectiveTypeEnum)bytes[1]; data.Concentration = (double)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(2).Take(2).ToArray()) / 10; data.Flowrate = DirectiveHelper.Parse2BytesToNumber(bytes.Skip(4).Take(2).ToArray()); data.DeviceStatus = bytes.Skip(6).Take(1).FirstOrDefault(); data.DirectiveId = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(7).Take(2).ToArray()); data.DeviceType = TargetDeviceTypeEnum.Gas; ret.SourceDirectiveType = DirectiveTypeEnum.Pausing; ret.Data = data; return(ret); }
private DirectiveResult ParseRunningResultData(byte[] bytes) { var ret = new DirectiveResult(); if (!DirectiveHelper.IsValidationResult(bytes, ((DirectiveTypeEnum)bytes[1]).GetFeedbackLength())) { ret.Status = false; return(ret); } ret.Status = true; var data = new GasDirectiveData(); data.DeviceId = bytes[0]; data.DirectiveType = (DirectiveTypeEnum)bytes[1]; data.TimeInterval = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(2).Take(2).ToArray()); data.Flowrate = DirectiveHelper.Parse2BytesToNumber(bytes.Skip(4).Take(2).ToArray()) / 10; data.DeviceStatus = bytes.Skip(6).Take(1).FirstOrDefault(); // data.RockMode = (RockEnum)bytes.Skip(7).Take(1).FirstOrDefault(); data.DirectiveId = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(8).Take(2).ToArray()); data.DeviceType = (TargetDeviceTypeEnum)bytes.Skip(10).Take(1).FirstOrDefault(); ret.SourceDirectiveType = DirectiveTypeEnum.Running; ret.Data = data; return(ret); }
private DirectiveResult ParseTryPauseResultData(byte[] bytes) { var ret = new DirectiveResult(); if (!DirectiveHelper.IsValidationResult(bytes, ((DirectiveTypeEnum)bytes[1]).GetFeedbackLength())) { ret.Status = false; return(ret); } ret.Status = true; var data = new GasDirectiveData(); data.DeviceId = bytes[0]; data.DirectiveType = (DirectiveTypeEnum)bytes[1]; data.DirectiveId = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(2).Take(2).ToArray()); data.DeviceType = TargetDeviceTypeEnum.Gas; ret.SourceDirectiveType = DirectiveTypeEnum.TryPause; ret.Data = data; return(ret); }