Införa Wixel USB trådlös modul (10 / 10 steg)
Steg 10: Uppdatering - några exempelkod Visual Studio C#
Jag har installerat och frustrerande lärt sig att använda Visual C#.
Här är koden som gör vad de ahk demo program gör.
Jag har satt den kodstycket nedan, se zip-filen längst ner för hela projekt.
>>> börjar på nästa rad <<<---
med hjälp av systemet.
använder System.Collections.Generic;
använder System.ComponentModel;
med hjälp av System.Data;
med hjälp av System.Drawing;
använder System.Linq;
använder System.Text;
använder System.Windows.Forms;
använder System.IO.Ports;
använder System.Media;
namnområdet SerialIO
{
offentliga partiell klass SerialIOform: Form
{
string [PortNames] = {};
int BaudRateDefault = 9600;
Paritet ParityDefault = Parity.None;
int DataBitsDefault = 8;
StopBits StopBitsDefault = StopBits.One;
Handshake HandshakeDefault = Handshake.None;
bool RTSdefault = false;
bool DTRdefault = false;
CONST string MessagePortError = "Fel öppnar Port";
Skapa en ny SerialPort-objektet med standardinställningarna.
SerialPort IOport = ny SerialPort();
Skapa timer för att gör saker när började
Timer DoItNow = ny Timer();
offentliga SerialIOform()
{
InitializeComponent();
Ange standardinställningar för port och kontrollera om det finns portar
SerialIOPortSetup();
Installationsprogrammet för timer
DoItNow.Interval = 500. Två gånger per sekund
DoItNow.Tick += nya EventHandler(DoItNow_Tick);
}
Standardinställningarna & Dropdown
privata void SerialIOPortSetup()
{
PortNames = SerialPort.GetPortNames();
om (PortNames.Length! = 0)
{
Ställ in standardvärden
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;
Fylla i Dropdown
SerialPortComboBox.Items.Clear();
SerialPortComboBox.Items.AddRange(PortNames);
SerialPortComboBox.SelectedIndex = 0;
MessagesLabel.Text = "";
StartButton.Text = "Starta";
}
annat
{
SerialPortComboBox.Items.Clear();
MessagesLabel.Text = "inga portar hittade! Anslut och tryck på Refresh";
StartButton.Text = "Uppdatera";
}
}
privata void SerialIOform_Load (objekt avsändare, EventArgs e)
{
}
privata void SerialPortComboBox_SelectedIndexChanged (objekt avsändare, EventArgs e)
{
nära gamla hamnen
om (IOport.IsOpen)
IOport.Close();
Ange att markerade porten
IOport.PortName = SerialPortComboBox.SelectedItem.ToString();
Kontrollera port giltig
försök
{
IOport.Open();
MessagesLabel.Text = ""; tydlig gamla fel msg
}
fånga
{
MessagesLabel.Text = MessagePortError;
}
Nära det så det inte är öppet när du gör ingenting,
Sparar problem när port unplugged
om (IOport.IsOpen)
IOport.Close();
}
privata void StartButton_Click (objekt avsändare, EventArgs e)
{
om (StartButton.Text == "Uppdatera")
{
SerialIOPortSetup();
}
annat if (StartButton.Text == "Stop")
{
Stoppa timern
DoItNow.Stop();
IOport.Close();
StartButton.Text = "Starta";
}
annat / / måste vara "Start"
{
om (IOport.IsOpen) / / bilbälte, port bör vara stängd
IOport.Close();
Kontrollera port giltig, behöver göra det igen som enheten kan vara urkopplad
försök {
IOport.Open();
}
fånga {
MessagesLabel.Text = MessagePortError;
hemkomst.
}
StartButton.Text = "Stoppa";
Porten öppnas, Start timer för att göra saker
DoItNow.Start();
}
}
void DoItNow_Tick (objekt avsändare, EventArgs e)
{
Stoppa timern medan bearbetning händelse
DoItNow.Stop();
Ställa in kryssrutor till IOport inställningar
DCDcheckBox.Checked = IOport.CDHolding;
DSRcheckBox.Checked = IOport.DsrHolding;
PIP om Ställ
om (DCDbeepCheckBox.Checked & & DCDcheckBox.Checked)
SystemSounds.Asterisk.Play();
om (DSRbeepCheckBox.Checked & & DSRcheckBox.Checked)
SystemSounds.Beep.Play();
Växla om blink kontrolleras
om (DTRblinkCheckBox.Checked)
DTRcheckBox.Checked =! DTRcheckBox.Checked;
om (RTSblinkCheckBox.Checked)
RTScheckBox.Checked =! RTScheckBox.Checked;
Ange IOport till utdatainställningar
IOport.DtrEnable = DTRcheckBox.Checked;
IOport.RtsEnable = RTScheckBox.Checked;
Starta om timer
DoItNow.Start();
}
privata void CancelButton_Click (objekt avsändare, EventArgs e)
{
om (IOport.IsOpen)
IOport.Close();
bli av med IOport??
Exit
SerialIOform.ActiveForm.Close();
}
privata void DCDbeepCheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi testar kontrollerade staten någon annanstans
}
privata void DSRbeepCheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi testar kontrollerade staten någon annanstans
}
privata void DTRblinkCheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi testar kontrollerade staten någon annanstans
}
privata void DTRBlinkCheckBox_CheckedChanged (objekt avsändare, EventArgs e)
Visual Studio fick sin nickers i en knut när jag döptes DTRBlink kryssrutan till DTRblink
och nu frågar för en DTRBlink version. ???
{
behöver inte göra saker, vi testar kontrollerade staten någon annanstans
}
privata void RTSblinkCheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi testar kontrollerade staten någon annanstans
}
privata void DTRcheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi ställs staten någon annanstans
}
privata void RTScheckBox_CheckedChanged (objekt avsändare, EventArgs e)
{
behöver inte göra saker, vi ställs staten någon annanstans
}
//
//
} / / SerialIOForm
} / / SerialIO namnområde
>>> sista raden ovan <<<---