Hola:
No sabía que F# fuera tan potente. Es más, no veo a nadie que lo nombre y programe con ello entre mis amigos. Por Internet veo que lo nombran pero no he visto nada con Arduino y PIC para que lo hagan. Desde que hice en el 2008 PIC y C#, empezaron a copiarte, ni siquieran han cambiado el nombre de las variables, jejejejejejejej. Luego, copias todos entre todos, a pesar de haber muchos vídeos, los demás quieren su propia versión de lo mismo.
Si haces lo de C#, haré un tuto si no te importa a powerpint. En cuanto a lo de GitHub, tendré que ponerme en forma para entenderlo bien para subir los códigos ahí.
¿Qué te quiero decir con esto?
Gracias al PowerPoint y los vídeos, puedo extender el uso de F# a los iniciados para que se animen, luego encontrarás muchos ejemplos de ellos mismos por todas partes, te lo aseguro, es un posible futuro que esto ocurrra al derecho y alrevés. Mejor para el lenguaje F#. Por cierto, no se si habrá modo formulario, se que lo he probado hace años en modo consola y no entendía nada, tenía que buscar ejemplos sencillos como hola mundo.
El código fuente es este del 2008.
Código:
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;
using System.IO.Ports;
namespace PicRS232
{
public partial class Form1_Principal : Form
{
// Utilizaremos un string como buffer de recepcion
string Recibidos;
public Form1_Principal()
{
InitializeComponent();
// Abrir puerto mientra se ejecute la aplicación
if (!serialPort1.IsOpen)
{
try
{
serialPort1.Open();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// Ejecutar la funcion Recepcion por disparo del Evento 'DataReived'
serialPort1.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
}
// Al recibir los datos
private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
// Acumular los carácteres recibidos a nuestro 'buffer' (string)
Recibidos += serialPort1.ReadExisting();
// Invocar o llamar al proceso de tramas
this.Invoke(new EventHandler(Actualizar));
}
// Procesar los datos recibidos en el buffer y extraer tramas completas
private void Actualizar(object s, EventArgs e)
{
// Asignar el valor de la trama al textBox
textBox_visualizar_mensaje.Text = Recibidos;
}
private void button_t_Click(object sender, EventArgs e)
{
byte[] mBuffer = new byte[1];
mBuffer[0] = 0x74; //ASCII letra "t".
serialPort1.Write(mBuffer, 0, mBuffer.Length);
}
private void button_b_Click(object sender, EventArgs e)
{
byte[] miBuffer = new byte[1];
miBuffer[0] = 0x62; //ASCII letra "b".
serialPort1.Write(miBuffer, 0, miBuffer.Length);
}
private void button_a_Click(object sender, EventArgs e)
{
byte[] mBuffer = new byte[1];
mBuffer[0] = 0x61; //ASCII letra "a".
serialPort1.Write(mBuffer, 0, mBuffer.Length);
}
private void button_l_Click(object sender, EventArgs e)
{
byte[] mBuffer = new byte[1];
mBuffer[0] = 0x6C; //ASCII letra "l".
serialPort1.Write(mBuffer, 0, mBuffer.Length);
}
private void button_Espacio_Click(object sender, EventArgs e)
{
byte[] mBuffer = new byte[1];
mBuffer[0] = 0x20; //ASCII letra "Espacio".
serialPort1.Write(mBuffer, 0, mBuffer.Length);
}
private void timer1_Tick(object sender, EventArgs e)
{
statusStrip1.Items[0].Text = DateTime.Now.ToLongTimeString();
}
}
}
Descargar proyedcto Visual C# 2008.
Contraseña: D.P.E.
Si lo entiendo, hago un buen tutorial sobre ello, a parte de esto, me meteré con el Github.
En cuanto a lo que dije de F# es como automatización de tarea tipo bat, lo saqué hace tiempo cuando muchas personas hablaban que era para hacer script a lo bat, perdí el interés, era cuando no se sabía casi nada de él cuando salió en su día, desde entonces, no he hecho más nada.
Un cordial saludo y muchas gracias por tu tiempo.