Vamos a programar #32 - Clock view en Windows.

Hola de nuevo a todos, el día de hoy vamos a continuar con un poco más de clock view.
En los post anteriores, vimos cómo controlarlo desde una aplicación para android, pero mucha gente me pregunto si era posible hacer algo similar pero desde una computadora con Windows.
La respuesta: Clock View para Windows.
Para llevar a cabo la conexión, primeramente debemos emparejar el bluetooth de Clock view con el de la computadora que vayamos a usar.

En mi caso es "Siqueiros printer" (ignora el nombre es un arduino)

Cuando ya estén emparejados, hay que revisar cual es el puerto que se asigno al bluetooth. Para eso, hay que ir a: Panel de control > Dispositivos e impresoras > "Nombre del Arduino", luego hay que hacer clic secundario y después propiedades.En la ficha "Servicios", nos mostrará cual es el puerto que se usará.

Una vez que sabemos esa información, pasaremos al código de C# que es el siguiente:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO.Ports;
using System.Windows.Forms;
using System.Configuration;

namespace ClockView
{
	public partial class FrmMain : Form
	{
		private SerialPort Port = new SerialPort();

		private void ArduinoMessage(string Message)
		{
			try
			{
				Port.Write(Message);
			}
			catch (Exception e)
			{
				MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}

		}

		public FrmMain()
		{
			InitializeComponent();
		}

		private void Form1_Load(object sender, EventArgs e)
		{
			string[] Ports = SerialPort.GetPortNames();
			CboPorts.Items.AddRange(Ports);
			Port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
		}

		private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
		{
			SerialPort sp = (SerialPort)sender;
			string indata = sp.ReadExisting();
			if (indata == "Done")
			{

			}
		}
		private void BtnConnect_Click(object sender, EventArgs e)
		{
			try
			{
				if (Port.IsOpen == false)
				{
					Port.BaudRate = int.Parse(TxtSpeed.Text);
					Port.PortName = CboPorts.Text;
					Port.Parity = Parity.None;
					Port.StopBits = StopBits.One;
					Port.Parity = Parity.Even;
					Port.DataBits = 8;
					Port.Open();

				}				
			} catch (Exception ex) {
				MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
		}

		private void BtnDisconnect_Click(object sender, EventArgs e)
		{
			if (Port.IsOpen == true)
			{
				Port.Close();
			}
		}

		private void Btn1224_Click(object sender, EventArgs e)
		{
			ArduinoMessage(">SETF");
		}

		private void BtnShowSeconds_Click(object sender, EventArgs e)
		{
			ArduinoMessage(">DISS");
		}

		private void BtnLights_Click(object sender, EventArgs e)
		{
			ArduinoMessage(">SCRA");
		}

		private void trkbarBrillo_MouseUp(object sender, MouseEventArgs e)
		{
			ArduinoMessage(">SETB" + trkbarBrillo.Value.ToString());
		}

		private void BtnSync_Click(object sender, EventArgs e)
		{
			//>SETH2016122119001004
			string HourData = string.Concat(">SETH", DateTime.Now.Year, DateTime.Now.Month.ToString("D2"), DateTime.Now.Day.ToString("D2"),
				DateTime.Now.Hour.ToString("D2"), DateTime.Now.Minute.ToString("D2"), DateTime.Now.Second.ToString("D2"),
				(((int)DateTime.Now.DayOfWeek)+1).ToString("D2"));
			ArduinoMessage(HourData);

		}
	}
}

Para hacer uso del puerto serial, debemos de crear un objeto SerialPort que se incluye en el espacio de nombres System.IO.Ports.
Cuando el formulario se carga, lo primero que hará es buscar todos los puertos disponibles, pero eso no quiere decir que este conectado o en uso el periférico. Si cuando inicias el programa no puedes ver el puerto al que está conectado tu arduino, basta con que escribas el nombre en la lista. Despues solo hay que hacer clic en conectar y si todo está en orden, se podrá controlar ClockView desde la computadora con BlueTooth.
Al igual que la aplicación para android, en está aplicación se incluyen los controles que cambian las configuraciones de ClockView. Además está aplicación sirve con un cable, si conectas Clock View con un cable USB, también podrás cambiar los ajustes, pero esa no es la idea; aun si prefieres hacer uso del cable, es recomendable que desconectes el módulo HC-05/06 del arduino para que no haya ningún tipo de problemas.
Al igual que todos los otros programas, dejo el código fuente para que los descargues y lo pruebes. El Código fuente de la aplicacion para android, aun lo voy a mejorar un poco y el software para arduino también.
Por ahora es todo. Los leo luego.

No hay comentarios.