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