using Censtar_31064V105OrV106_Pump.MessageEntity.Incoming; using Edge.Core.Parser.BinaryParser; using Edge.Core.Parser.BinaryParser.MessageEntity; namespace Censtar_31064V105OrV106_Pump { /// /// public class MessageTemplateLookup : IMessageTemplateLookup { /// /// /// /// 同步头: 3 Byte。 所有命令和应答均以 3 个 0FCH 为同步头。命令: 1 Byte /// public MessageTemplateBase GetMessageTemplateByRawBytes(byte[] bytes) { var cmd = bytes[3]; switch (cmd) { case 0x00: return new GenericErrorAnswer(); case 0x02: return new PresetAmountAnswer(); case 0x03: return new ChangePriceAnswer(); case 0x04: return new SetDensityAnswer(); case 0x05: return new StopAnswer(); case 0x06: return new StartAnswer(); case 0x07: return new SetMonitoringModeAnswer(); case 0x08: return new ReadTotalizerAnswer(); case 0x09: return new CancelPresetAnswer(); case 0x0E: return new ReadCoefficientOfFlowRateAnswer(); case 0x10: return new ReadUnitOfMeasurementAnswer(); case 0x12: return new SetDateAndTimeAnswer(); case 0x13: return new ConsoleAllowDispenserForTrialAnswer(); case 0x14: return new StopTrialAnswer(); case 0x15: return new ReadVersionAnswer(); case 0x17: return new InformToUnlockAnswer(); case 0x31: return new SetPostFuelingLockTypeAnswer(); case 0x32: return new RegistrationOfShiftTransferAnswer(); case 0x33: return new SetAllowFuelingOrNotWhenOffDutyAnswer(); case 0x34: return new ReadRealTimeFuelingDataInPumpFuelingStateAnswer(); case 0x35: return new ReadRealTimeFuelingVolumeDataInPumpNonFuelingStateAnswer(); case 0x36: return new ReadTransactionDataAndHasDataAnswer(); case 0x38: return new ReadTransactionDataAndHasNoDataAnswer(); //case 0x37: // return new ConsoleOnlyForReadAvailableTransactionDataAnswer(); } return null; } } }