12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using Edge.Core.Processor;using Edge.Core.IndustryStandardInterface.Pump;
- using Dfs.WayneChina.HengshanTerminalWrapper.MessageEntity.Base;
- namespace Dfs.WayneChina.HengshanTerminalWrapper
- {
- public class HengshanICTermHandler : IDeviceHandler<byte[], NonCardDispenserMessageTemplateBase>
- {
- #region Fields
- private readonly int pumpId;
- private object syncObj = new object();
- NLog.Logger logger = NLog.LogManager.LoadConfiguration("nlog.config").GetLogger("HengshanPos");
- private Queue<NonCardDispenserMessageTemplateBase> terminalMsgQueue = new Queue<NonCardDispenserMessageTemplateBase>();
- #endregion
- #region Properties
- public IContext<byte[], NonCardDispenserMessageTemplateBase> TerminalContext { get; set; }
- public int AssociatedPumpId => pumpId;
- public event EventHandler<HengshanTerminalMessageEventArgs> OnTerminalMessageReceived;
- #endregion
- #region Construction
- public HengshanICTermHandler(int pumpId)
- {
- this.pumpId = pumpId;
- logger.Debug($"Associated pump id = {pumpId}");
- Console.WriteLine($"Associated pump id = {pumpId}");
- }
- #endregion
- #region IHandler implementations
- public void Init(IContext<byte[], NonCardDispenserMessageTemplateBase> context)
- {
- TerminalContext = context;
- }
- public Task Process(IContext<byte[], NonCardDispenserMessageTemplateBase> context)
- {
- //if (terminalMsgQueue.Count > 0)
- //{
- // var message = terminalMsgQueue.Dequeue();
- // TerminalContext.Outgoing.Write(message);
- //}
- OnTerminalMessageReceived?.Invoke(this, new HengshanTerminalMessageEventArgs(pumpId, context.Incoming.Message));
- return Task.CompletedTask;
- }
- public void Write(NonCardDispenserMessageTemplateBase responseMessage)
- {
- lock (syncObj)
- {
- //terminalMsgQueue.Enqueue(responseMessage);
- TerminalContext.Outgoing.Write(responseMessage);
- }
- }
- #endregion
- }
- }
|