Esempio n. 1
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await Log.ReportInfoFormatAsync(cancellationToken, "Starting zvsEngine {0}", Utils.ApplicationName);

            #region Install Base Commands and Properties
            var builtinCommandBuilder = new BuiltinCommandBuilder(EntityContextConnection);

            var repollMeResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "REPOLL_ME",
                Name = "Re-poll Device",
                ArgumentType = DataType.INTEGER,
                Description = "This will force a re-poll on an object."
            }, cancellationToken);
            if (repollMeResult.HasError)
                await Log.ReportResultAsync(repollMeResult, cancellationToken);

            var repollAllResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "REPOLL_ALL",
                Name = "Re-poll all Devices",
                ArgumentType = DataType.NONE,
                Description = "This will force a re-poll on all objects."
            }, cancellationToken);
            if (repollAllResult.HasError)
                await Log.ReportResultAsync(repollAllResult, cancellationToken);

            var groupOnResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "GROUP_ON",
                Name = "Turn Group On",
                ArgumentType = DataType.STRING,
                Description = "Activates a group."
            }, cancellationToken);
            if (groupOnResult.HasError)
                await Log.ReportResultAsync(groupOnResult, cancellationToken);

            var groupOffResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "GROUP_OFF",
                Name = "Turn Group Off",
                ArgumentType = DataType.STRING,
                Description = "Deactivates a group."
            }, cancellationToken);
            if (groupOffResult.HasError)
                await Log.ReportResultAsync(groupOffResult, cancellationToken);

            var timeDelayResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "TIMEDELAY",
                Name = "Time Delay (sec)",
                ArgumentType = DataType.INTEGER,
                Description = "Pauses a execution for x seconds."
            }, cancellationToken);
            if (timeDelayResult.HasError)
                await Log.ReportResultAsync(timeDelayResult, cancellationToken);

            var runSceneResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
             {
                 UniqueIdentifier = "RUN_SCENE",
                 Name = "Run Scene",
                 ArgumentType = DataType.INTEGER,
                 Description = "Argument = SceneId"
             }, cancellationToken);
            if (runSceneResult.HasError)
                await Log.ReportResultAsync(runSceneResult, cancellationToken);
            #endregion

            await AdapterManager.StartAsync(cancellationToken);
            await PluginManager.StartAsync(cancellationToken);
            await ScheduledTaskRunner.StartAsync(cancellationToken);
            await TriggerRunner.StartAsync(cancellationToken);

        }
Esempio n. 2
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await Log.ReportInfoFormatAsync(cancellationToken, "Starting zvsEngine {0}", Utils.ApplicationName);

            #region Install Base Commands and Properties
            var builtinCommandBuilder = new BuiltinCommandBuilder(EntityContextConnection);

            var repollMeResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "REPOLL_ME",
                Name             = "Re-poll Device",
                ArgumentType     = DataType.INTEGER,
                Description      = "This will force a re-poll on an object."
            }, cancellationToken);

            if (repollMeResult.HasError)
            {
                await Log.ReportResultAsync(repollMeResult, cancellationToken);
            }

            var repollAllResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "REPOLL_ALL",
                Name             = "Re-poll all Devices",
                ArgumentType     = DataType.NONE,
                Description      = "This will force a re-poll on all objects."
            }, cancellationToken);

            if (repollAllResult.HasError)
            {
                await Log.ReportResultAsync(repollAllResult, cancellationToken);
            }

            var groupOnResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "GROUP_ON",
                Name             = "Turn Group On",
                ArgumentType     = DataType.STRING,
                Description      = "Activates a group."
            }, cancellationToken);

            if (groupOnResult.HasError)
            {
                await Log.ReportResultAsync(groupOnResult, cancellationToken);
            }

            var groupOffResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "GROUP_OFF",
                Name             = "Turn Group Off",
                ArgumentType     = DataType.STRING,
                Description      = "Deactivates a group."
            }, cancellationToken);

            if (groupOffResult.HasError)
            {
                await Log.ReportResultAsync(groupOffResult, cancellationToken);
            }

            var timeDelayResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "TIMEDELAY",
                Name             = "Time Delay (sec)",
                ArgumentType     = DataType.INTEGER,
                Description      = "Pauses a execution for x seconds."
            }, cancellationToken);

            if (timeDelayResult.HasError)
            {
                await Log.ReportResultAsync(timeDelayResult, cancellationToken);
            }

            var runSceneResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand
            {
                UniqueIdentifier = "RUN_SCENE",
                Name             = "Run Scene",
                ArgumentType     = DataType.INTEGER,
                Description      = "Argument = SceneId"
            }, cancellationToken);

            if (runSceneResult.HasError)
            {
                await Log.ReportResultAsync(runSceneResult, cancellationToken);
            }
            #endregion

            await AdapterManager.StartAsync(cancellationToken);

            await PluginManager.StartAsync(cancellationToken);

            await ScheduledTaskRunner.StartAsync(cancellationToken);

            await TriggerRunner.StartAsync(cancellationToken);
        }