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; }
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]; }
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(); }