using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VeederRoot_ATG_Console.MessageEntity.Outgoing { /// /// i|I607 /// public class SetTankDiameterRequest : OutgoingMessageBase { /// /// /// /// /// 0 indicates all tanks /// by inches and hundredths public SetTankDiameterRequest(MessageFormat messageFormat , int tankNumber, double diameterInches) : base(messageFormat, FuncCode.SetTankDiameter, tankNumber.ToString()) { if (tankNumber < 0 || tankNumber > 99) throw new ArgumentOutOfRangeException("Valid tank number is range from 0 to 99"); base.DataField = new List(); if (messageFormat == MessageFormat.Computer) base.DataField.AddRange( Encoding.ASCII.GetBytes( Util.ConvertDoubleToIEEE4Bytes(diameterInches).Select(b => b.ToString("X2")).Aggregate((acc, n) => acc + n))); else base.DataField.AddRange(Encoding.ASCII.GetBytes(diameterInches.ToString())); } } }