예제 #1
0
        /// <summary>
        /// Асинхронно продолжить выполнять подпрограмму на устройстве с подтверждением успеха операции.
        /// </summary>
        /// <param name="target">Адрес устройства.</param>
        /// <param name="id">Идентификатор подпрограммы.</param>
        /// <param name="options">Параметры NiBUS-операции.</param>
        /// <returns><see cref="Task"/> - асинхронная операция.</returns>
        public async Task ResumeProgramComfirmedAsync(Address target, int id, NibusOptions options = null)
        {
            //Contract.Requires(!IsDisposed);
            //Contract.Requires(target != null);
            //Contract.Requires(target.Type == AddressType.Hardware || target.Type == AddressType.Net);
            var resume = new NmsResume(Address.Empty, target, id);

            await WaitForNmsResponseAsync(resume, options);
        }
예제 #2
0
        /// <summary>
        /// Продолжить выполнение подпрограммы на устройстве без подтверждения успеха.
        /// </summary>
        /// <param name="target">Адрес устройства.</param>
        /// <param name="id">Идентификатор подпрограммы.</param>
        public void ResumeProgram(Address target, int id)
        {
            Contract.Requires(!IsDisposed);
            Contract.Requires(target != null);
            Contract.Requires(target.Type != AddressType.Empty);
            Contract.Requires(id > 0);
            var resume = new NmsResume(Address.Empty, target, id, false);

            OutgoingMessages.Post(resume);
        }