| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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
- {
- /// <summary>
- /// This transaction is sent by the pump if the status is changed
- /// or if the pump receives the command 'RETURN STATUS' or ‘RETURN FILLING INFORMATION’.
- /// </summary>
- public class NozzleStatusAndFillingPrice_TransactionData
- {
- private TransactionData transactionData;
- /// <summary>
- /// TRANS + LNG + DATA
- /// </summary>
- /// <param name="oneTransactionFullData">TRANS + LNG + DATA</param>
- public NozzleStatusAndFillingPrice_TransactionData(TransactionData transactionData)
- {
- if (transactionData.TransactionNumber != 0x03)
- throw new ArgumentException("NozzleStatusAndFillingPrice_TransactionData must have transaction number 0x03");
- this.transactionData = transactionData;
- }
- public enum NozzleStatus
- {
- IN = 0x00,
- OUT = 0x01
- }
- /// <summary>
- /// without decimal points
- /// </summary>
- public int FillingPrice
- {
- get
- {
- var r = this.transactionData.RawData.Take(3).GetBCD();
- return r;
- }
- }
- /// <summary>
- /// Gets the nozzle status, key is the nozzle physical id.
- /// </summary>
- public KeyValuePair<byte, NozzleStatus> Status
- {
- get
- {
- //NOZIO bits 0 - 3 contain selected nozzle number.
- //NOZIO bit 4 contains nozzle in/out information.
- // 0 = in
- // 1 = out
- //02H Nozzle 2 selected, nozzle in
- //12H Nozzle 2 selected, nozzle out
- //10H No nozzle selected, nozzle out. (This is possible for a blending pump.)
- var nozzleStateBitMap = this.transactionData.RawData.Skip(3).First();
- var nozzleLogicalNumber = nozzleStateBitMap & 0x0F;
- var nozzleStatus = (nozzleStateBitMap & 0xF0) >> 4;
- return new KeyValuePair<byte, NozzleStatus>(
- (byte)nozzleLogicalNumber,
- (NozzleStatus)nozzleStatus);
- }
- }
- }
- }
|