Ejemplo n.º 1
0
        public Form1()
        {
            this.InitializeComponent();
            this.readScreenColor = new ReadScreenColor(/*new Size(1, 1)*/);

            this.timer1.Start();
            this.timer1.Interval = (int)(1000 / ReadScreenColor.PerSecond);
            this.ClientSize      = this.imageSize;
        }
Ejemplo n.º 2
0
        public static void Test2()
        {
            ReadScreenColor reader = new ReadScreenColor();

            Profile("Whole", 500, reader.ReadScreen);
            Profile("Copy Whole", 500, reader.CopyFromScreen);
            //Profile("Part", 100, reader.ReadScreenParts);
            //Profile("Part v2", 100, reader.ReadScreenPartsv2);
            //Profile("Copy Parts", 100, reader.CopyFromScreenParts);

            Console.Read();
        }
        public ScreenLEDController(ILedMessageSender messageSender, int updatesPerSecond, int ledCount, MessageMode controlMode, bool useBothSceens)
            : base(messageSender, updatesPerSecond)
        {
            this.ledCount    = ledCount;
            this.controlMode = controlMode;

            this.readScreenColor = new ReadScreenColor();
            var screenWidth = (useBothSceens ? 2 : 1) * 1920;

            ReadScreenColor.ScreenSize  = new Size(screenWidth, 1080);
            ReadScreenColor.AverageSize = new Size(this.ledCount, 1);

            this.builder = new MessageBuilder();

            int bufferLength;

            switch (this.controlMode)
            {
            case MessageMode.RGB:
                this.builder.MessageType = Codes.MessageType.CONTROL_HVS;
                this.control             = new RGBMessage();
                bufferLength             = ledCount * 3;
                break;

            case MessageMode.HSV:
                this.builder.MessageType = Codes.MessageType.CONTROL_HVS;
                this.control             = new HSVMessage();
                bufferLength             = ledCount * 3;
                break;

            case MessageMode.H:
                this.builder.MessageType = Codes.MessageType.CONTROL_HUE;
                this.control             = new HMessage();
                bufferLength             = ledCount;
                break;

            default:
                throw new System.ArgumentException("MessageMode has invalid value");
            }


            this.buffer      = new byte[bufferLength];
            this.colorBuffer = new Color[ledCount];
        }
Ejemplo n.º 4
0
        public static void Test()
        {
            Console.WriteLine(string.Format("Start"));

            ReadScreenColor reader         = new ReadScreenColor();
            long            wholeTotal     = 0;
            long            partTotal      = 0;
            long            part2Total     = 0;
            long            copyTotal      = 0;
            long            copyPartsTotal = 0;
            int             count          = 100;
            const int       sleepTime      = 1000 / 20;

            for (int i = 0; i < count; i++)
            {
                //
                startStopWatch();

                reader.ReadScreen();

                wholeTotal += stopStopWatch();
                sleep(sleepTime);


                //
                startStopWatch();

                reader.ReadScreenParts();

                partTotal += stopStopWatch();
                sleep(sleepTime);


                //
                startStopWatch();

                reader.ReadScreenPartsv2();

                part2Total += stopStopWatch();
                sleep(sleepTime);


                //
                startStopWatch();

                reader.CopyFromScreen();

                copyTotal += stopStopWatch();
                sleep(sleepTime);


                //
                startStopWatch();

                reader.CopyFromScreenParts();

                copyPartsTotal += stopStopWatch();
                sleep(sleepTime);
            }
            Console.WriteLine(string.Format("time scan whole screen : {0}", wholeTotal / count));
            Console.WriteLine(string.Format("time scan part screen : {0}", partTotal / count));
            Console.WriteLine(string.Format("time scan part screen : {0}", part2Total / count));
            Console.WriteLine(string.Format("time scan part screen : {0}", copyTotal / count));
            Console.WriteLine(string.Format("time scan part screen : {0}", copyPartsTotal / count));
            Console.ReadKey();
        }