123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace LEDMixer
- {
- public partial class LEDMixer : Form
- {
- private const int LIGHT_MAX = 0x1F;
-
- public LEDMixer()
- {
- InitializeComponent();
- }
- private void LEDMixer_Load(object sender, EventArgs e)
- {
- String[] PortNames = System.IO.Ports.SerialPort.GetPortNames();
- Array.Sort<String>(PortNames, delegate(string strA, string strB) { return int.Parse(strA.Substring(3)).CompareTo(int.Parse(strB.Substring(3))); });
- cbPort.Items.Clear();
- cbPort.Items.AddRange(PortNames);
- cbPort.SelectedIndex = 0;
- tbRed.Maximum = LIGHT_MAX;
- tbGreen.Maximum = LIGHT_MAX;
- tbBlue.Maximum = LIGHT_MAX;
- }
- private void tbRed_Scroll(object sender, EventArgs e)
- {
- NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
- }
- private void tbGreen_Scroll(object sender, EventArgs e)
- {
- NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
- }
- private void tbBlue_Scroll(object sender, EventArgs e)
- {
- NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
- }
-
- private void NotifyLight(int Red, int Green, int Blue)
- {
- byte[] buffer = new byte[3];
- buffer[0] = (byte)(0x80 | (Red & LIGHT_MAX));
- buffer[1] = (byte)(0x40 | (Green & LIGHT_MAX));
- buffer[2] = (byte)(0x20 | (Blue & LIGHT_MAX));
- try
- {
- serSerialPort.PortName = cbPort.Text;
- serSerialPort.Open();
- serSerialPort.Write(buffer, 0, buffer.Length);
- serSerialPort.Close();
- }
- catch (Exception e)
- {
- }
- }
- private void cbPort_SelectedIndexChanged(object sender, EventArgs e)
- {
- NotifyLight(tbRed.Value, tbGreen.Value, tbBlue.Value);
- }
- }
- }
|