96 messaggi dal 27 aprile 2007
Ciao a tutti,
Io vorrei realizzare un programmino che al clic di un bottone invii un comando ad un dispositivo collegato alla com1. il dispositivo in questione è dotato di un display sul quale vendono indicate delle misurazioni ed il comando (@A10 cariage return) dovrebbe semplicemene azzerare la misurazione sul display.
Il programma che ho scritto io è il seguente:

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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

SerialPort s;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
s = new SerialPort();
s.PortName = "COM1";
s.BaudRate = 9600;
s.DataBits = 8;
s.StopBits = StopBits.One;
s.Parity = Parity.None;
}

private void button1_Click(object sender, EventArgs e)
{
s.Open();
if (s.IsOpen)
{
try
{
string str = "@A10"+Convert.ToString(Convert.ToChar(13));
s.Write(str);
}
catch (Exception ex)
{
richTextBox1.AppendText(ex.ToString());
}
}
s.Close();

}

}


purtroppo questo programma non fa niente, nel senso che non solo non azzera il display del dispositivo collegato alla com1 ma non va nemmeno in eccezione, è come se non facesse nulla.

spero mi possiate aiutare.
grazie mille.
Sicuro che l'encoding da usare sia quello? Controlla la proprietà Encoding del serialPort.
Per fare il ritorno a capo ti basta usare il \r o il \n
string str = "@A10\r"

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.