public void Run(ICommandInteraction writer, [Values(-1L, 0L, 1L, 2L, 3L)] DecimalIntegerToken level, LiteralToken backendName, LiteralToken peripheralName)
 {
     if (!SetLogLevel((LogLevel)level.Value, backendName.Value, peripheralName.Value))
     {
         writer.WriteError(string.Format("Could not find emulation element or backend"));
     }
 }
        public void Run(ICommandInteraction writer, StringToken command, DecimalIntegerToken delay)
        {
            var terminal = writer as CommandInteraction;

            if (terminal == null)
            {
                writer.WriteError("Watch command can be used on a full-featured terminal only");
                return;
            }

            var eater = new CommandInteractionEater();

            while (!terminal.HasNewInput)
            {
                terminal.SaveCursor();
                monitor.Parse(command.Value, eater);

                writer.Write(eater.GetContents());
                var error = eater.GetError();
                if (error.Length > 0)
                {
                    writer.WriteError(error);
                    break;
                }
                eater.Clear();

                System.Threading.Thread.Sleep((int)delay.Value);
                terminal.RestoreCursor();
                terminal.ClearToEnd();
            }
        }
Esempio n. 3
0
        public void Run(ICommandInteraction writer, [Values("set")] LiteralToken action, DecimalIntegerToken number)
        {
            var machines = EmulationManager.Instance.CurrentEmulation.Machines.ToArray();
            if(machines.Length > number.Value && number.Value >= 0)
            {
                SetCurrentMachine(machines[number.Value]);
            }
            else
            {
                writer.WriteError("Wrong machine number. Type {0} to show a list of available machines.".FormatWith(Name));
            }

        }
Esempio n. 4
0
        public void Run(ICommandInteraction writer, DecimalIntegerToken width, DecimalIntegerToken height)
        {
            if (width.Value <= 0 || height.Value <= 0)
            {
                throw new RecoverableException("Width and height must be positive values");
            }

            var image = new Bitmap((int)width.Value, (int)height.Value);

            using (var graphics = Graphics.FromImage(image))
            {
                var imageSize = new Rectangle(0, 0, (int)width.Value, (int)height.Value);
                graphics.FillRectangle(Brushes.White, imageSize);
            }
            writer.WriteRaw(InlineImage.Encode(image));
        }
        public void Run(ICommandInteraction writer, DecimalIntegerToken widthToken, DecimalIntegerToken heightToken)
        {
            // This method creates white rectangle, intended for testing purposes.
            var width  = (int)widthToken.Value;
            var height = (int)heightToken.Value;

            if (width <= 0 || height <= 0)
            {
                throw new RecoverableException("Width and height must be positive values");
            }

            var bytes = new byte[width * height * RawImageData.PixelFormat.GetColorDepth()];

            for (var i = 0; i < bytes.Length; ++i)
            {
                bytes[i] = (byte)0xFF;
            }
            var image = new RawImageData(bytes, width, height);

            writer.WriteRaw(InlineImage.Encode(image.ToPng()));
        }
 public void Run(ICommandInteraction writer, StringToken message, [Values(-1L, 0L, 1L, 2L, 3L)] DecimalIntegerToken level)
 {
     InnerLog((LogLevel)(int)level.Value, message.Value);
 }
 public void Run([Values(-1L, 0L, 1L, 2L, 3L)] DecimalIntegerToken level)
 {
     SetLogLevel((LogLevel)level.Value);
 }
Esempio n. 8
0
        public void Run(ICommandInteraction writer, [Values("set")] LiteralToken action, DecimalIntegerToken number)
        {
            var machines = EmulationManager.Instance.CurrentEmulation.Machines.ToArray();

            if (machines.Length > number.Value && number.Value >= 0)
            {
                SetCurrentMachine(machines[number.Value]);
            }
            else
            {
                writer.WriteError("Wrong machine number. Type {0} to show a list of available machines.".FormatWith(Name));
            }
        }
 public void Run(ICommandInteraction writer, [Values(TraceEnableCommand)] LiteralToken enable, LiteralToken cpuToken, StringToken functionName, BooleanToken traceReturn, DecimalIntegerToken numberOfParameters)
 {
     Execute(writer, cpuToken, functionName.Value, traceReturn.Value, (int)numberOfParameters.Value);
 }
 public void Run(ICommandInteraction writer, DecimalIntegerToken numberOfEntries)
 {
     PrintLastLogs(writer, (int)numberOfEntries.Value);
 }
Esempio n. 11
0
 public void Run(ICommandInteraction writer, [Values(TraceEnableCommand)] LiteralToken enable, LiteralToken cpuToken, StringToken functionName, BooleanToken traceReturn, DecimalIntegerToken numberOfParameters)
 {
     Execute(writer, cpuToken, functionName.Value, traceReturn.Value, (int)numberOfParameters.Value);
 }