He hecho un formulario Windows Form en el cual envía este comando por cada 10 segundos.
Desde que ejecute el programa envía el comando.
Código
serialPort1.Write("B\r");
No se como usar adecuadamente que el timer me funcione por cada 10 segundos, es decir, que por cada 10 segundos que pase, me envíe el comando.
Lo que pasa que si lo envía cada cierto tiempo, en muy poco tiempo, el dispositivo de cuelga y no devuelve nada.
Código completo C#.
Código
using System; using System.IO.Ports; using System.Threading; using System.Windows.Forms; namespace Balanza_Puerto_serie { public partial class Form1 : Form { private delegate void DelegadoAcceso(String accion); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { try { serialPort1.Handshake = Handshake.None; serialPort1.ReadTimeout = 500; serialPort1.WriteTimeout = 500; serialPort1.Open(); serialPort1.Write("B\r"); } catch(Exception ex) { MessageBox.Show(ex.Message); } } void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { if(this.Enabled == true) { Thread.Sleep(500); string data = serialPort1.ReadExisting(); serialPort1.Write("B\r"); // Envía comando. } } private void si_DataReceived(string accion) { label2.Text = accion; } } }