ITankGroup.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #region --------------- Copyright Dresser Wayne Pignone -------------
  2. /*
  3. * $Log: /Wrk/Support/ForecourtControl/Wrk/ForecourtControl/ITankGroup.cs $
  4. *
  5. * 2 07-03-09 15:37 roger.månsson
  6. * Added Fuel grade in interface. Use IManualFuelDeliveryParameters
  7. * instead of ManualFuelDeliveryParameters class in the interface.
  8. *
  9. * 1 07-01-05 15:12 roger.månsson
  10. * Created
  11. */
  12. #endregion
  13. using System;
  14. using Wayne.Lib;
  15. namespace Wayne.ForecourtControl
  16. {
  17. /// <summary>
  18. /// The Tank group interface is used to block and unblock fuellings with nozzles connected to any of
  19. /// the tanks in the tank group.
  20. /// </summary>
  21. public interface ITankGroup
  22. {
  23. #region Properties
  24. /// <summary>
  25. /// Tank group Id
  26. /// </summary>
  27. int Id { get;}
  28. /// <summary>
  29. /// The collection of physical tanks that is associated with this tank group.
  30. /// </summary>
  31. System.Collections.ObjectModel.ReadOnlyCollection<ITank> Tanks { get;}
  32. /// <summary>
  33. /// Indicates if all nozzles connected to tanks in this tank group are blocked.
  34. /// </summary>
  35. bool Blocked { get;}
  36. /// <summary>
  37. /// The fuel product the tank group contains.
  38. /// </summary>
  39. int FuelGrade { get;}
  40. #endregion
  41. #region Events
  42. /// <summary>
  43. /// Event that is fired when a fuel delivery is detected. It can be both manual and probe detected deliveries.
  44. /// </summary>
  45. event EventHandler<FuelDeliveryEventArgs> OnFuelDelivery;
  46. #endregion
  47. #region Methods
  48. /// <summary>
  49. /// Disable fuelling for all pump nozzles linked to this tank group.
  50. /// </summary>
  51. /// <param name="blockCompleted"></param>
  52. /// <param name="userToken"></param>
  53. void BlockAsync(EventHandler<AsyncCompletedEventArgs> blockCompleted, object userToken);
  54. /// <summary>
  55. /// Enable fuelling for all pump nozzles linked to this tank group.
  56. /// </summary>
  57. /// <param name="unblockCompleted"></param>
  58. /// <param name="userToken"></param>
  59. void UnblockAsync(EventHandler<AsyncCompletedEventArgs> unblockCompleted, object userToken);
  60. /// <summary>
  61. /// Register a manual fuel delivery from the application.
  62. /// </summary>
  63. /// <param name="manualDeliveryParameters"></param>
  64. /// <param name="deliveryRegistrationCompleted"></param>
  65. /// <param name="userToken"></param>
  66. void RegisterManualDeliveryAsync(IManualFuelDeliveryParameters manualDeliveryParameters, EventHandler<AsyncCompletedEventArgs> deliveryRegistrationCompleted, object userToken);
  67. #endregion
  68. }
  69. }