c# programlama dili ile Teknofest 20′ Roket yarışması -Roket yer istasyonu Interface kodları ve görünümü
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace SerialPortReading_Interface{
public partial class a : Form{
public a(){
InitializeComponent();
// aktif olan portları göstermesi için combobox1 :
var ports = SerialPort.GetPortNames();
comboBox1.DataSource = ports;
// 2. combobox için :
// ilk olarak bağlantı hızlarını giriyoruz.
comboBox2.Items.AddRange(new string[] {“300″,”600″,”1200″,”2400″,”4800″,”9600”});
// combobox 3 te yer alacak olan databids sayıları :
var databids = (new string[] { “1”, “2”, “3”, “4”, “5”, “6”,”7″,”8″ });
comboBox3.Items.AddRange(databids); // comport bağlantısı için gerekli ayarları yapmış olduk.
}
private void label1_Click(object sender, EventArgs e){
}
private void label2_Click(object sender, EventArgs e){
}
private void Form1_Load(object sender, EventArgs e){
}
private void timer1_Tick(object sender, EventArgs e)
{
try{
string bilgi = serialPort1.ReadLine();
string[] pot = bilgi.Split('*');
textBox1.Text = pot[1]; // irtifa
textBox2.Text = pot[0]; // koordinat
textBox3.Text = pot[2]; // kurtarma // aldığımız verileri3'e bölerek çalıştırmış oluyoruz pot dizisinden ilk elemanı list1 ikinci elemanı list2 üçüncü elemanı list4'e atıyoruz split yardımıyla.
serialPort1.DiscardInBuffer(); // veri koptuğunda okumaya çalışıp hata vermemesi için temizliyicek.
}
catch (ExecutionEngineException){
}
}
private void button1_Click(object sender, EventArgs e){
timer1.Start(); // ÇALIŞTIRMAK İÇİN.
try
{
// serialport'un bağlantısını gerçekleştirmek için.
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Convert.ToInt16(comboBox2.Text);
serialPort1.DataBits = Convert.ToInt16(comboBox3.Text);
// eğer bağlantı sağlanmışsa bilgi verilmesi ile ilgili;
if (!serialPort1.IsOpen)
{
serialPort1.Open();
sinyal.Visible = true;
sinyal.Text = "Başarıyla bağlantı kuruldu.";
sinyal.ForeColor = Color.Green;
}
}
catch (Exception){
// eğer bağlantı kurulmazsa :
sinyal.Visible = true;
sinyal.Text = "Maalesef bağlantı kurulamadı.";
sinyal.ForeColor = Color.Red;
}
}
private void button2_Click(object sender, EventArgs e)
{
// timer ve serialportu durdurmak için :
timer1.Stop();
serialPort1.DiscardInBuffer();
serialPort1.Close();
sinyal.Visible = true;
sinyal.Text = "Bağlantı sonlandırıldı.";
sinyal.ForeColor = Color.Red;
textBox1.Text = ""; // texboxların içindeki bilgiyi temizlemek için kullanılır.
}
private void button3_Click(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
private void button5_Click(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void label5_Click(object sender, EventArgs e)
{
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button5_Click_1(object sender, EventArgs e)
{
textBox2.Clear();
}
private void button6_Click(object sender, EventArgs e)
{
}
private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button3_Click_1(object sender, EventArgs e)
{
textBox3.Clear();
}
private void textBox2_TextChanged_1(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
}
}
