Paso 10: Actualización - algún código de ejemplo de Visual Studio C#
He instalado y frustrante aprendió a utilizar Visual C#.
Aquí está el código que hace lo que hacen los programas demo de ahk.
Sólo he puesto el un fragmento de código a continuación, vea el archivo zip en la parte inferior de proyectos completos.
>>> comienza en la línea siguiente <<<---
utilizando el sistema;
utilizando System.Collections.Generic;
utilizando System.ComponentModel;
utilizando System.Data;
utilizando System.Drawing;
utilizando System.Linq;
utilizar System.Text;
utilizando System.Windows.Forms;
usando System.IO.Ports;
utilizando System.Media;
espacio de nombres SerialIO
{
pública clase parcial SerialIOform: forma
{
String [] PortNames = {};
int BaudRateDefault = 9600;
ParityDefault de paridad = Parity.None;
int DataBitsDefault = 8;
StopBits StopBitsDefault = StopBits.One;
Apretón de manos HandshakeDefault = Handshake.None;
bool RTSdefault = false;
bool DTRdefault = false;
const string MessagePortError = "Error al abrir el puerto";
Crear un nuevo objeto SerialPort con la configuración predeterminada.
SerialPort IOport = new SerialPort();
Crear contador de tiempo para rellenar cuando comenzó
DoItNow temporizador = new Timer();
SerialIOform() pública
{
InitializeComponent();
Establecer valores predeterminados del puerto y comprobar si existen puertos
SerialIOPortSetup();
Temporizador de configuración
DoItNow.Interval = 500; Dos veces por segundo
DoItNow.Tick += new EventHandler(DoItNow_Tick);
}
Valores predeterminados de configuración y menú desplegable
privado SerialIOPortSetup() vacío
{
PortNames = SerialPort.GetPortNames();
Si (PortNames.Length! = 0)
{
Establecer valores predeterminados
IOport.PortName = PortNames [0];
IOport.BaudRate = BaudRateDefault;
IOport.Parity = ParityDefault;
IOport.DataBits = DataBitsDefault;
IOport.StopBits = StopBitsDefault;
IOport.Handshake = HandshakeDefault;
IOport.RtsEnable = RTSdefault;
IOport.DtrEnable = DTRdefault;
Rellenar la lista desplegable
SerialPortComboBox.Items.Clear();
SerialPortComboBox.Items.AddRange(PortNames);
SerialPortComboBox.SelectedIndex = 0;
MessagesLabel.Text = "";
StartButton.Text = "Iniciar";
}
otra cosa
{
SerialPortComboBox.Items.Clear();
MessagesLabel.Text = "no hay puertos encontrados! Conecte y presione actualizar";
StartButton.Text = "Actualizar";
}
}
privado SerialIOform_Load void (remitente de objeto, EventArgs e)
{
}
privado SerialPortComboBox_SelectedIndexChanged void (remitente de objeto, EventArgs e)
{
cerca de puerto viejo
Si (IOport.IsOpen)
IOport.Close();
establece en el puerto seleccionado
IOport.PortName = SerialPortComboBox.SelectedItem.ToString();
Comprobar puerto válido
tratar de
{
IOport.Open();
MessagesLabel.Text = ""; claro viejo msg de error
}
captura
{
MessagesLabel.Text = MessagePortError;
}
Cierre de manera que no está abierto cuando no hacer nada,
Ahorra problemas al puerto desconectado
Si (IOport.IsOpen)
IOport.Close();
}
privado StartButton_Click void (remitente de objeto, EventArgs e)
{
Si (StartButton.Text == "Actualizar")
{
SerialIOPortSetup();
}
else if (StartButton.Text == "Stop")
{
Parar el cronómetro
DoItNow.Stop();
IOport.Close();
StartButton.Text = "Iniciar";
}
Else / / debe "Comenzar"
{
Si (IOport.IsOpen) / cinturón de seguridad, deben tener los puertos cerrados
IOport.Close();
Comprobar puerto válido, es necesario hacerlo otra vez como dispositivo puede ser desconectado
trate de {}
IOport.Open();
}
catch {}
MessagesLabel.Text = MessagePortError;
retorno;
}
StartButton.Text = "Detener";
El puerto abierto, temporizador de inicio para hacer cosas
DoItNow.Start();
}
}
void DoItNow_Tick (objeto sender, EventArgs e)
{
Parar el cronómetro al mismo tiempo de procesamiento de evento
DoItNow.Stop();
Configurar casillas de verificación entrada IOport configuración
DCDcheckBox.Checked = IOport.CDHolding;
DSRcheckBox.Checked = IOport.DsrHolding;
Un pitido si establece
Si (DCDbeepCheckBox.Checked & & DCDcheckBox.Checked)
SystemSounds.Asterisk.Play();
Si (DSRbeepCheckBox.Checked & & DSRcheckBox.Checked)
SystemSounds.Beep.Play();
Cambiar si se activa el parpadeo
Si (DTRblinkCheckBox.Checked)
DTRcheckBox.Checked =! DTRcheckBox.Checked;
Si (RTSblinkCheckBox.Checked)
RTScheckBox.Checked =! RTScheckBox.Checked;
Set IOport para ajustes de salida de
IOport.DtrEnable = DTRcheckBox.Checked;
IOport.RtsEnable = RTScheckBox.Checked;
Reiniciar el temporizador
DoItNow.Start();
}
privado CancelButton_Click void (remitente de objeto, EventArgs e)
{
Si (IOport.IsOpen)
IOport.Close();
deshacerse de IOport??
salida
SerialIOform.ActiveForm.Close();
}
privado DCDbeepCheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, probamos estado comprobada en otros lugares
}
privado DSRbeepCheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, probamos estado comprobada en otros lugares
}
privado DTRblinkCheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, probamos estado comprobada en otros lugares
}
privado DTRBlinkCheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
Visual Studio tiene sus nickers en un nudo cuando renombrado DTRBlink casilla a DTRblink
y ahora pide una versión DTRBlink. ???
{
no es necesario hacer cosas, probamos estado comprobada en otros lugares
}
privado RTSblinkCheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, probamos estado comprobada en otros lugares
}
privado DTRcheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, establece el estado en otros lugares
}
privado RTScheckBox_CheckedChanged void (remitente de objeto, EventArgs e)
{
no es necesario hacer cosas, establece el estado en otros lugares
}
//
//
} / / SerialIOForm
} / / Espacio de nombres SerialIO
>>> última línea anterior <<<---