using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Afis_4x7seg { public partial class Form1 : Form { public Form1() { InitializeComponent(); } System.Drawing.Graphics zona_desen; int x0, y0, w; private void afis_7seg(Graphics desen, int px0, int py0, int dig_w, int dig) { System.Drawing.Pen cr_verde, cr_gri; cr_verde = new System.Drawing.Pen(System.Drawing.Color.Red, dig_w / 4); cr_gri = new System.Drawing.Pen(System.Drawing.Color.WhiteSmoke, dig_w / 4); UInt16[] digit = new UInt16[10] { 123, 40, 93, 109, 46, 103, 119, 41, 127, 111 }; int[] px = new int[7] { px0, px0, px0, px0 + dig_w, px0, px0 + dig_w, px0 }; int[] px_f = new int[7] { px0 + dig_w, px0, px0 + dig_w, px0 + dig_w, px0, px0 + dig_w, px0 + dig_w }; int[] py = new int[7] { py0, py0, py0 + dig_w, py0, py0 + dig_w, py0 + dig_w, py0 + 2 * dig_w }; int[] py_f = new int[7] { py0, py0 + dig_w, py0 + dig_w, py0 + dig_w, py0 + 2 * dig_w, py0 + 2 * dig_w, py0 + 2 * dig_w }; UInt16 nr = digit[dig]; int i; // sterg digit for (i = 6; i >= 0; i--) desen.DrawLine(cr_gri, px[i], py[i], px_f[i], py_f[i]); for (i = 6; i >= 0; i--) { UInt16 bit = Convert.ToUInt16((nr >> (i)) & 1); if (bit == 1) desen.DrawLine(cr_verde, px[i], py[i], px_f[i], py_f[i]); } } private void afis_val() { int val_a = System.Convert.ToUInt16(Convert.ToInt16(this.numericUpDown1.Value)); int val; val = val_a % 10; afis_7seg(zona_desen, x0 + w + 7 * w / 2, y0, w, val); val_a = val_a / 10; val = val = val_a % 10; afis_7seg(zona_desen, x0 + w * 3, y0, w, val); val_a = val_a / 10; val = val = val_a % 10; afis_7seg(zona_desen, x0 + w + w / 2, y0, w, val); val_a = val_a / 10; val = val = val_a % 10; afis_7seg(zona_desen, x0, y0, w, val); } string txt, val_af; //int semaf, seg, poz_car, dig, dig0, dig1,dig2,dig3; //int[,]car ; static String[] Nume_porturi = new String[11]; private void Form1_Load(object sender, EventArgs e) { zona_desen = this.CreateGraphics(); x0 = 175; y0 = 75; w = 20; // Listez porturile seriale Nume_porturi = System.IO.Ports.SerialPort.GetPortNames(); this.Porturi_s.Items.Clear(); //Adaug porturile exixtente for (int i = 0; i < Nume_porturi.Length; i++) { this.Porturi_s.Items.Add(Nume_porturi[i]); } //Pozitionarea listei pe primul element this.Porturi_s.SelectedIndex = 0; this.label1.Text = "Conectati-va la portul serial!"; val_af = "AX4,2345"; } private void numericUpDown1_ValueChanged(object sender, EventArgs e) { afis_val(); val_af = "AX4,"+this.numericUpDown1.Value.ToString(); if (this.serialPort1.IsOpen) { this.serialPort1.Write(val_af); this.label3.Text = "Tx=" + val_af; //txt = ""; txt = this.serialPort1.ReadExisting(); this.label1.Text = "Rx=" + txt; } } private void but_con_Click(object sender, EventArgs e) { afis_val(); if (!this.serialPort1.IsOpen) { this.serialPort1.PortName = System.Convert.ToString(this.Porturi_s.Items[this.Porturi_s.SelectedIndex]); this.serialPort1.Open(); this.label1.Text = "Portul a fost deschis"; } else { this.label1.Text = "Portul este deja deschis deschis"; } val_af = "AX4," + this.numericUpDown1.Value.ToString(); this.serialPort1.Write(val_af); } private void but_dec_Click(object sender, EventArgs e) { this.serialPort1.Close(); this.label1.Text = "Portul este deconectat!"; } } }