123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- using Edge.Core.Parser.BinaryParser.Attributes;
- using Edge.Core.Parser.BinaryParser.Util;
- using Edge.Core.Parser.BinaryParser.MessageEntity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace HengshanPaymentTerminal.MessageEntity
- {
- public enum Command
- {
-
-
-
-
- Check_cmd = 0x10,
-
-
-
-
- Ver_info = 0x11,
-
-
-
-
-
- RegisterRequest = 0x13,
-
-
-
- RegisterResult = 0x14,
-
-
-
-
-
- ValidateCardRequest = 0x15,
-
-
-
-
- ValidateCardResult = 0x16,
-
- AuthRequest = 0x17,
- AuthResult = 0x18,
-
-
-
-
-
- CancelAuthRequest = 0x19,
-
-
-
-
- CancelAuthResult = 0x1A,
-
- ChangeAuthMode = 0x1B,
- ChangeAuthModeAck = 0x20,
-
- FuelingData = 0x1C,
- FuelingDataResult = 0x35,
-
-
-
-
-
- ChangePrice = 0x1E,
-
-
-
-
- ChangePriceResult = 0x1F,
-
- QueryGrayRecordRequest = 0x21,
- GrayRecord = 0x22,
-
- ReadVolumeTotalizer = 0x23,
- VolumeTotalizerResult = 0x24,
-
- DataRequest = 0x25,
- DataBytesLength = 0x26,
- DataContentRequest = 0x27,
- DataContent = 0x28,
-
- DispenserInfoRequest = 0x29,
- DispenserInfo = 0x2A,
-
- SendErrorInfoRequest = 0x2B,
- ErrorInfoAck = 0x2C,
-
- TransactionData = 0x2D,
- TransactionDataAck = 0x32,
-
- SystemAuth = 0x2E,
- SystemAuthResult = 0x31,
- OtherNonCardAuth = 0x2F,
-
-
-
-
-
- PaymentRequest = 0x30,
- PaymentData = 0x1D,
-
- QueryTransactionInfo = 0x33,
- TransactionInfoResult = 0x34,
-
- RecordCallback = 0x36,
- RecordCallbackAck = 0x37,
-
- QueryTransactionData = 0x38,
- QueryTransactionDataAck = 0x39,
-
- AuthManualCancel = 0x40,
- AuthManualCancelAck = 0x41,
-
- EnableAuth = 0x42,
- EnableAuthAck = 0x43,
-
-
-
-
-
- LockOrUnlockPump = 0x44,
-
-
-
-
- LockOrUnlockPumpAck = 0x45,
-
- SystemOperationAck = 0x47,
- GetRfTagInfo = 0x46,
- VerifyFingerPrint = 0x48,
- ReturnTotalizer = 0x49
- }
-
-
-
-
- public enum CallingParty
- {
-
-
-
- System,
-
-
-
- Pump
- }
-
-
-
-
- public abstract class CardMessageBase : MessageTemplateBase
- {
- public CardMessageBase(Command handle)
- {
-
- }
-
-
-
-
- public CallingParty Caller
- {
- get
- {
- if (FrameSqNoByte.GetBit(6) == 1)
- return CallingParty.Pump;
- return CallingParty.System;
- }
- }
-
-
-
-
- [Format(1, EncodingType.BIN, -100)]
- public virtual byte Prefix { get; set; }
-
-
-
-
- [Format(1, EncodingType.BIN, -99)]
- public virtual byte DestinationAddress { get; set; }
-
-
-
-
- [Format(1, EncodingType.BIN, -98)]
- public virtual byte SourceAddress { get; set; }
-
-
-
-
-
-
-
- [Format(1, EncodingType.BIN, -97)]
- public virtual byte FrameSqNoByte { get; set; }
-
-
-
-
- public virtual int FrameNo
- {
- get { return FrameSqNoByte & 0x3F; }
- }
-
-
-
-
-
- public void SetCallingParty(CallingParty party)
- {
- FrameSqNoByte = FrameSqNoByte.SetBit(6, 6, party == CallingParty.Pump ? 1 : 0);
- }
- public void SetSeqNo(byte sqNo)
- {
-
- if (sqNo > 63)
- throw new ArgumentOutOfRangeException("maximum sequenceNumber is 63(total 6 bits).");
- var debug = FrameSqNoByte >> 6 << 6;
- FrameSqNoByte = (byte)(debug + sqNo);
- }
-
-
-
-
- [Format(2, "%OnSerializingBytesCount", EncodingType.BIN, -96)]
- public virtual int BodyLength { get; set; }
-
-
-
-
- [Format(1, EncodingType.BIN, -95)]
- public byte Handle { get; set; }
-
-
-
-
-
-
-
- public byte ETX { get; set; }
-
-
-
-
- [EnumerableFormat(2, 1000, EncodingType = EncodingType.BIN)]
- public virtual List<byte> CRC { get; set; }
- public override string ToLogString()
- {
- return GetType().Name + " " + base.ToLogString().Replace(
- "FrameSqNoByte:", "(Caller: " + Caller + ", FrameNo: " + FrameNo + ")FrameSqNoByte:");
- }
- }
- }
|