Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Windows.Forms;
- using System.Management;
- using System.Security.Principal;
- using System.Diagnostics;
- namespace RGB_Controller
- {
- public partial class FormMain : Form
- {
- bool isSelecting_pictureBoxColor;
- bool mouseOverMenu;
- bool portStatus;
- bool transferData;
- bool connectedAtLeastOnce;
- int serialPortErrorCount = 0;
- public FormMain()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- bool isAdmin;
- connectedAtLeastOnce = false;
- isSelecting_pictureBoxColor = false;
- trackBarRed.Value = int.Parse(labelRed.Text);
- trackBarGreen.Value = int.Parse(labelGreen.Text);
- trackBarBlue.Value = int.Parse(labelBlue.Text);
- panelPreview.BackColor = Color.FromArgb(trackBarRed.Value, trackBarGreen.Value, trackBarBlue.Value);
- try
- {
- WindowsIdentity user = WindowsIdentity.GetCurrent();
- WindowsPrincipal principal = new WindowsPrincipal(user);
- isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
- }
- catch
- {
- isAdmin = false;
- }
- if (isAdmin == false)
- {
- MessageBox.Show("Lütfen programı Yönetici (Administrator) olarak çalıştırın.");
- }
- timerCOM_listUpdater_Tick(null, null);
- }
- private void pictureBoxColor_MouseDown(object sender, MouseEventArgs e)
- {
- isSelecting_pictureBoxColor = true;
- try
- {
- Bitmap bmpImage = (Bitmap)pictureBoxColor.Image;
- Color clr = bmpImage.GetPixel(e.X, e.Y);
- panelPreview.BackColor = clr;
- trackBarRed.Value = clr.R;
- labelRed.Text = trackBarRed.Value.ToString();
- trackBarGreen.Value = clr.G;
- labelGreen.Text = trackBarGreen.Value.ToString();
- trackBarBlue.Value = clr.B;
- labelBlue.Text = trackBarBlue.Value.ToString();
- }
- catch
- {
- }
- }
- private void pictureBoxColor_MouseUp(object sender, MouseEventArgs e)
- {
- isSelecting_pictureBoxColor = false;
- }
- private void pictureBoxColor_MouseMove(object sender, MouseEventArgs e)
- {
- if (isSelecting_pictureBoxColor == true)
- {
- try
- {
- Bitmap bmpImage = (Bitmap)pictureBoxColor.Image;
- Color clr = bmpImage.GetPixel(e.X, e.Y);
- panelPreview.BackColor = clr;
- trackBarRed.Value = clr.R;
- labelRed.Text = trackBarRed.Value.ToString();
- trackBarGreen.Value = clr.G;
- labelGreen.Text = trackBarGreen.Value.ToString();
- trackBarBlue.Value = clr.B;
- labelBlue.Text = trackBarBlue.Value.ToString();
- }
- catch
- {
- }
- }
- }
- private void trackBarRed_Scroll(object sender, EventArgs e)
- {
- try
- {
- panelPreview.BackColor = Color.FromArgb(trackBarRed.Value, panelPreview.BackColor.G, panelPreview.BackColor.B);
- labelRed.Text = trackBarRed.Value.ToString();
- }
- catch { }
- }
- private void trackBarGreen_Scroll(object sender, EventArgs e)
- {
- try
- {
- panelPreview.BackColor = Color.FromArgb(panelPreview.BackColor.R, trackBarGreen.Value, panelPreview.BackColor.B);
- labelGreen.Text = trackBarGreen.Value.ToString();
- }
- catch { }
- }
- private void trackBarBlue_Scroll(object sender, EventArgs e)
- {
- try
- {
- panelPreview.BackColor = Color.FromArgb(panelPreview.BackColor.R, panelPreview.BackColor.G, trackBarBlue.Value);
- labelBlue.Text = trackBarBlue.Value.ToString();
- }
- catch { }
- }
- private void timerCOM_listUpdater_Tick(object sender, EventArgs e)
- {
- if (mouseOverMenu == false)
- {
- try
- {
- ManagementObjectSearcher searcher =
- new ManagementObjectSearcher("root\\WMI",
- "SELECT * FROM MSSerial_PortName");
- toolStripMenuItemConnect.DropDownItems.Clear();
- foreach (ManagementObject queryObj in searcher.Get())
- {
- if (queryObj["InstanceName"].ToString().Contains("USB"))
- {
- toolStripMenuItemConnect.DropDownItems.Add(queryObj["PortName"].ToString(), null, MenuItemClickHandler);
- }
- }
- if (toolStripMenuItemConnect.DropDownItems.Count == 0)
- {
- toolStripMenuItemConnect.DropDownItems.Add("Port Bulunamadı.");
- }
- else if (portStatus == false && connectedAtLeastOnce == false)
- {
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Bağlanılabilecek portlar bulundu.";
- connectedAtLeastOnce = true;
- }
- }
- catch
- {
- if (toolStripMenuItemConnect.DropDownItems.Count == 0)
- {
- toolStripMenuItemConnect.DropDownItems.Add("Port Bulunamadı.");
- }
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Portlara erişilemiyor.";
- }
- }
- }
- private void MenuItemClickHandler(object sender, EventArgs e)
- {
- ToolStripMenuItem clickedItem = (ToolStripMenuItem)sender;
- // Take some action based on the data in clickedItem
- // RS232 Connection
- try
- {
- if (serialPort1.IsOpen)
- {
- serialPort1.Close();
- }
- serialPort1.PortName = clickedItem.Text;
- serialPort1.Open();
- portStatus = true;
- iconConnected.Enabled = true;
- toolStripMenuItemConnect.Enabled = false;
- toolStripMenuItemDisconnect.Enabled = true;
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Bağlanıldı.";
- }
- catch
- {
- portStatus = false;
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Bağlanılamadı.";
- // MessageBox.Show(string.Format("Bağlanırken. Hata ayrıntısı:\n{0}", ex.ToString()), "Hata");
- }
- }
- private void toolStripMenuItemDisconnect_Click(object sender, EventArgs e)
- {
- try
- {
- if (serialPort1.IsOpen)
- {
- serialPort1.Close();
- }
- iconConnected.Enabled = false;
- toolStripMenuItemConnect.Enabled = true;
- toolStripMenuItemDisconnect.Enabled = false;
- portStatus = false;
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Bağlantı kesildi.";
- }
- catch (Exception ex)
- {
- timerStatusUpdater.Stop();
- timerStatusUpdater.Start();
- toolStripStatusLabel1.Text = "Bağlantı kesilemedi." + ex.Message.ToString();
- }
- }
- private void timerStatusUpdater_Tick(object sender, EventArgs e)
- {
- if (portStatus == true)
- {
- toolStripStatusLabel1.Text = "Hazır.";
- connectedAtLeastOnce = true;
- // Use this timer's same value to transfer data in a regular interval
- transferData = true;
- }
- else
- {
- toolStripStatusLabel1.Text = "Bağlantı Yok.";
- iconConnected.Enabled = false;
- }
- }
- private void toolStripMenuItemExit_Click(object sender, EventArgs e)
- {
- if (portStatus)
- {
- try
- {
- serialPort1.Close();
- portStatus = false;
- }
- catch
- {
- MessageBox.Show("Port düzgün olarak kapatılamadı.");
- }
- }
- Application.Exit();
- }
- private void timerCommunication_Tick(object sender, EventArgs e)
- {
- string serialPortReceivedMessage;
- if (portStatus == true && transferData == true)
- {
- try
- {
- serialPortReceivedMessage = string.Empty;
- serialPort1.Write("R");
- if (Convert.ToInt32(labelRed.Text) > 1)
- {
- serialPort1.Write(new byte[] { Convert.ToByte(Convert.ToInt32(labelRed.Text) * 0.5) }, 0, 1);
- }
- else
- {
- serialPort1.Write(new byte[] { Convert.ToByte(labelRed.Text) }, 0, 1);
- }
- serialPort1.Write("G");
- serialPort1.Write(new byte[] { Convert.ToByte(labelGreen.Text) }, 0, 1);
- serialPort1.Write("B");
- serialPort1.Write(new byte[] { Convert.ToByte(labelBlue.Text) }, 0, 1);
- Stopwatch stopwatch = Stopwatch.StartNew();
- while (true)
- {
- if (stopwatch.ElapsedMilliseconds >= 10)
- {
- break;
- }
- Thread.Sleep(1);
- }
- serialPortReceivedMessage = serialPort1.ReadExisting();
- if (serialPortReceivedMessage.Contains("K") == false)
- {
- serialPortErrorCount++;
- if (serialPortErrorCount >= 10)
- {
- serialPortErrorCount = 0;
- toolStripMenuItemDisconnect_Click(null, null);
- throw new Exception();
- }
- }
- else
- {
- serialPortErrorCount = 0;
- }
- transferData = false;
- }
- catch
- {
- toolStripMenuItemDisconnect_Click(null, null);
- }
- }
- }
- private void panelPreview_BackColorChanged(object sender, EventArgs e)
- {
- transferData = true;
- }
- private void toolStripSettings_DropDownOpened(object sender, EventArgs e)
- {
- mouseOverMenu = true;
- }
- private void toolStripSettings_DropDownClosed(object sender, EventArgs e)
- {
- mouseOverMenu = false;
- }
- private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
- {
- if (portStatus)
- {
- try
- {
- serialPort1.Close();
- }
- catch
- {
- MessageBox.Show("Port düzgün olarak kapatılamadı.");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement