Étape 14 : Pensées finales et Source de téléchargement
L’ensemble du code derrière devrait ressembler à ceci :
using System ; à l’aide de System.Collections.Generic ; à l’aide de System.ComponentModel ; using System.Data ; à l’aide de System.Drawing ; à l’aide de System.Linq ; using System.Text ; à l’aide de System.Threading.Tasks ; using System.Windows.Forms ; using System.IO.Ports ; namespace MotorController {partial public class MotorRemote : forme {//create singleton de port série série SerialPort ; //decalre une nouvelle classe qui remplira notre classe publique de la boîte de liste déroulante Port {public string Name {get ; set;} public int Value {get ; set;} public Port (int n, chaîne j’ai) {nom = n ; Valeur = i ; {} public MotorRemote() {InitializeComponent();} ' private void OnWindowLoad (object sender, EventArgs e) {//populate zone de liste déroulante avec les ports série disponiblesSi (avalablePorts.Length > 0) {//create une liste d’objets pour remplir la zone de liste déroulante avec liste < Port > portsList = gcnew List < Port > (); pour (int i = 0; j’ai < avalablePorts.Length; i ++) {portsList.Add (nouveau Port (avalablePorts [i], j’ai));}} void UpdateMotors() {//message taille constent const byte messageType = 2; //read la motorOneSpeed de 1 octet curseurs //motor = (byte)tbMotorOne.Value ; //motor motorTwoSpeed de 2 octets = (byte)tbMotorTwo.Value ; //create et remplir un tableau d’octets comme notre message byte [] serialMessage = {messageType, motorOneSpeed, motorTwoSpeed}; //send Message série. Écrire (serialMessage, 0, serialMessage.Length) ; } private SliderOneChange void (object sender, EventArgs e) {UpdateMotors();} ' private void SliderTwoChange (object sender, EventArgs e) {UpdateMotors();}
Avis : L’événement de OnClose() n’est pas nécessaire sur tous les ordinateurs. Cependant, il empêche l’application de quitter un port COM orphelin lorsque l’utilisateur ferme il. Sans c’est possible, vous devrez redémarrer votre ordinateur pour retrouver l’accès à ce port. Pour ajouter l’événement OnClose créez un gestionnaire d’événements hors du formulaire principal, comme vous le faisiez pour l’événement OnWindowLoad cette fois en utilisant l’événement FormClosed plutôt que l’événement Load. Dans le gestionnaire d’ajouter la série. Close() ; pour fermer une connexion série ouverte.
Si vous créez accidentellement supplémentaires vous ne finissez pas à l’aide de gestionnaires d’événements ne vous inquiétez pas trop. Ils n’affectera pas la fonction de la demande et peuvent être supprimées en cliquant sur le contrôle associé et en supprimant le gestionnaire d’événements dans le menu de boulon de foudre.
Téléchargement du projet WinForms : https://goo.gl/rop4zl