using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace Arduino { public partial class Form1 : Form { bool arduinoConnected; bool hazardMode; string[] msgSplit; string msg; public Form1() { InitializeComponent(); } private void btnConnect_Click(object sender, EventArgs e) { if (arduinoConnected == false) { serialPort.Open(); btnConnect.BackColor = Color.Green; btnConnect.Text = "Disconnect"; arduinoConnected = true; timer.Start(); } else { serialPort.Close(); btnConnect.Text = "Connect"; btnConnect.BackColor = Color.Red; arduinoConnected = false; hazardMode = false; lbUpdates.Items.Add("Alarm Off"); btnAlarm.BackColor = Color.Green; timer.Stop(); } } private void btnAlarm_Click(object sender, EventArgs e) { if (serialPort.IsOpen) { if (hazardMode == false) { hazardMode = true; serialPort.Write("HazardOn\n"); lbUpdates.Items.Add("Alarm On"); btnAlarm.BackColor = Color.Red; } else { serialPort.Write("HazardOff\n"); hazardMode = false; lbUpdates.Items.Add("Alarm Off"); btnAlarm.BackColor = Color.Green; } } else { MessageBox.Show("Please turn on the car first", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void timer_Tick(object sender, EventArgs e) { if (arduinoConnected) { lbUpdates.SelectedIndex = lbUpdates.Items.Count - 1; lbUpdates.SelectedIndex = -1; msg = serialPort.ReadLine().Trim(); if (msg.StartsWith("Temp")) { msgSplit = msg.Split(':'); tbTemp.Text = msgSplit[1]; } else if (msg.StartsWith("Light")) { msgSplit = msg.Split(':'); tbLights.Text = msgSplit[1]; if (msgSplit[1] == "ON") tbLights.Text = "Headlights on"; else if (msgSplit[1] == "OFF") tbLights.Text = "Headlights off"; } else if (msg.StartsWith("LeftBlink")) { msgSplit = msg.Split(':'); if (msgSplit[1] == "ON") lbUpdates.Items.Add("Left Blink On"); else if (msgSplit[1] == "OFF") lbUpdates.Items.Add("Left Blink Off"); } else if (msg.StartsWith("RightBlink")) { msgSplit = msg.Split(':'); if (msgSplit[1] == "ON") lbUpdates.Items.Add("Right Blink On"); else if (msgSplit[1] == "OFF") lbUpdates.Items.Add("Right Blink Off"); } } } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)