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(); }
}
}
}