12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using System.Threading;
- using Wayne.ForecourtControl;
- using Wayne.ForecourtControl.Fusion;
- using Wayne.Lib;
- namespace TestRun
- {
- class Program
- {
- static NLog.Logger mainLogger = NLog.LogManager.LoadConfiguration("nlog.config").GetLogger("Main");
- static string DEFAULT_FDC_SERVER_CONNECT_STRING = "Host=192.168.50.238,Port=4711,ClientId=101,ClientName=PetroChinaProxy,PortB=4711,PortC=4711";
- static IForecourtControl forecourtControl;
- static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- var concreteFdcServerConnString = DEFAULT_FDC_SERVER_CONNECT_STRING.Replace("127.0.0.1", "127.0.0.1")
- .Replace("ClientId=101", "ClientId=" + "109");
- forecourtControl = Wayne.ForecourtControl.Fusion.FUSIONFactory.CreateForecourtControl(0);
- forecourtControl.OnConnectionStateChange += forecourtControl_OnConnectionStateChange;
- forecourtControl.Connect(concreteFdcServerConnString);
- while (true)
- Console.ReadLine();
- }
- static void forecourtControl_OnConnectionStateChange(object sender, ConnectionChangedEventArgs e)
- {
- mainLogger.Debug("forecourtControl_OnConnectionStateChange(), new state: " + e.ConnectionState);
- if (e.ConnectionState == Wayne.Lib.DeviceConnectionState.Disconnected)
- {
- Console.WriteLine("Disconnected to FC!");
- foreach (var pump in forecourtControl.Pumps)
- {
- pump.OnFuellingStateChange -= FdcCommunicator_OnFuellingStateChange;
- pump.OnNozzleStateChange -= FdcCommunicator_OnNozzleStateChange;
- pump.OnEventOccured -= FdcCommunicator_OnEventOccured;
- }
- }
- else if (e.ConnectionState == Wayne.Lib.DeviceConnectionState.Connected)
- {
- var fc = forecourtControl as FUSIONForecourtControl;
- //fc.manager.ifsfManager.LogOnSend("pos119");
- fc.manager.ifsfManager.GetDSPConfiguration((a, b) =>
- {
- Console.Write("GetDSPConfiguration response");
- }, 111, 111);
- // sometimes could not receive any notification from FDC server even attached the event handler,
- // suspect some underlying bug in communication layer, so here try sleep a while to avoid(probably) this.
- //
- Thread.Sleep(500);
- Console.WriteLine("Connected to FC!");
- foreach (var pump in forecourtControl.Pumps)
- {
- pump.OnFuellingStateChange += FdcCommunicator_OnFuellingStateChange;
- pump.OnNozzleStateChange += FdcCommunicator_OnNozzleStateChange;
- pump.OnEventOccured += FdcCommunicator_OnEventOccured;
- }
- //forecourtControl.SetSiteOpenedAsync(true, (_, __) => { }, null);
- }
- }
- private static void FdcCommunicator_OnEventOccured(object sender, PumpEventOccuredEventArgs e)
- {
- Console.WriteLine("fdc on event occured: " + e.EventType);
- }
- private static void FdcCommunicator_OnNozzleStateChange(object sender, NozzleStateChangeEventArgs e)
- {
- var pump = sender as IPump;
- Console.WriteLine("fdc OnNozzleStateChange, pump: " + pump.Id + ", nozzle: " + e.Nozzle.Id + ", nozzle state: " + e.NozzleState);
- }
- private static void FdcCommunicator_OnFuellingStateChange(object sender, FuellingStateChangeEventArgs e)
- {
- var pump = sender as IPump;
- Console.WriteLine("fdc OnFuellingStateChange, pump: " + pump.Id + ", nozzle: " + e.Fuelling.Nozzle.Id
- + ", nozzle state: " + e.State + ", amt: " + e.Fuelling.Amount + ", qty: " + e.Fuelling.Quantity
- + ", price: " + e.Fuelling.Price + ", seqNo.: " + e.Fuelling.FuellingSequenceNumber);
- }
- }
- }
|