using Edge.Core.Parser.BinaryParser.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Wayne_Pump_Dart.MessageEntity.Incoming { /// /// The pump sends this transaction if Request Total Counters is received. /// public class PumpParameters_TransactionData { private TransactionData transactionData; public PumpParameters_TransactionData(TransactionData transactionData) { if (transactionData.TransactionNumber != 0x07) throw new ArgumentException("PumpParameters_TransactionData must have transaction number 0x07"); if (transactionData.Length != 51) throw new ArgumentException("TotalCounters_TransactionData must have length 51"); this.transactionData = transactionData; } /// /// Number of decimals in volume (0-8) /// public byte VolumeDecimalPoint { get { return this.transactionData.RawData.Skip(22).First(); } } /// /// Number of decimals in amount (0-8) /// public byte AmountDecimalPoint { get { return this.transactionData.RawData.Skip(23).First(); } } /// /// Number of decimals in unit price (0-4) /// public byte UnitPriceDecimalPoint { get { return this.transactionData.RawData.Skip(24).First(); } } /// /// Maximum amount /// public int MaxAmount { get { return this.transactionData.RawData.Skip(30).Take(4).GetBCD(); } } /// /// Existing grade per nozzle number /// public string Grade { get { return this.transactionData.RawData.Skip(36).Take(15).ToArray().GetBCDString(); } } } }