Paso 14: Reflexiones finales y fuente descargar
Todo el código detrás debería ser algo como esto:
utilizando el sistema; utilizando System.Collections.Generic; utilizando System.ComponentModel; utilizando System.Data; utilizando System.Drawing; utilizando System.Linq; utilizar System.Text; utilizando System.Threading.Tasks; utilizando System.Windows.Forms; usando System.IO.Ports; Namespace MotorController {clase parcial MotorRemote: forma {//create singleton de puerto serial serial SerialPort; //decalre una nueva clase que poblará nuestro combo box clase puerto {público string nombre {get; set;} int público valor {get; set;} puerto público (string n, int i) {nombre = n; Valor = i; }} público MotorRemote() {InitializeComponent();} privado void OnWindowLoad (objeto sender, EventArgs e) {//populate un cuadro combinado con puertos serie disponiblesSi (avalablePorts.Length > 0) {//create una lista de objetos para llenar el cuadro combinado de lista < puerto > portsList = nuevo () de la lista < puerto >; para (int i = 0; i < avalablePorts.Length; i ++) {portsList.Add (puerto nuevo (avalablePorts [i], i));}} void UpdateMotors() {//message constent de tamaño byte const messageType = 2; //read lo deslizadores //motor 1 byte motorOneSpeed = (byte)tbMotorOne.Value; //motor 2 byte motorTwoSpeed = (byte)tbMotorTwo.Value; //create y llenar una matriz de bytes como nuestro mensaje byte [] serialMessage = {messageType, motorOneSpeed, motorTwoSpeed}; //send mensaje serie. Escribir (serialMessage, 0, serialMessage.Length); } privado void SliderOneChange (objeto sender, EventArgs e) {UpdateMotors();} privado void SliderTwoChange (objeto sender, EventArgs e) {UpdateMotors();}
Aviso: El evento de OnClose() no es necesaria en todos los equipos. Sin embargo evita dejar un puerto COM huérfano cuando el usuario cierra la aplicación. Es posible usted tendrá que reiniciar el equipo para recuperar el acceso a ese puerto. Para añadir el evento OnClose cree un controlador de eventos de formulario principal como para el evento de OnWindowLoad esta vez utilizando el evento FormClosed, en lugar del evento Load. Dentro del controlador añadir serial. Close(); para cerrar cualquier conexión serie abierta.
Si accidentalmente creas adicional no terminas usando los controladores de eventos no te preocupes demasiado. No afectará la función de la aplicación y pueden eliminarse haciendo clic en el control asociado y quitar el controlador de eventos en el menú de perno del relámpago.
Descargar proyecto de Windows Forms: https://goo.gl/rop4zl