using System; using System.Threading.Tasks; namespace Elwig.Helpers.Weighing { /// <summary> /// Interface for controlling a weighing scale which responds to commands sent to it /// </summary> public interface ICommandScale : IScale { /// <summary> /// Get the current weight on the scale without performing a weighing process /// </summary> /// <returns>Result of the weighing process (probably without a weighing id)</returns> Task<WeighingResult> GetCurrentWeight(); /// <summary> /// Perform a weighing process /// </summary> /// <returns>Result of the weighing process (including a weighing id)</returns> Task<WeighingResult> Weigh(); /// <summary> /// Empty the scale container or grant clearance to do so /// </summary> Task Empty(); /// <summary> /// Grant clearance to fill the scale container /// </summary> Task GrantFillingClearance(); /// <summary> /// Revoke clearance to fill the scale container /// </summary> Task RevokeFillingClearance(); /// <summary> /// Try to set date and time on the scale /// </summary> Task SetDateAndTime(DateTime dateTime); } }