0
                        
                    
                    خواندن از پورت Com توسط اسکنر بارکد
سلام ...
دوستان کسی میتونه منو راهنمایی کنه که چطور میتونم از Com 5 وقتی اسکنر بارکد اسکن کرد اون مقدار اسکن شده را درون یک متغیر بریزم با C# ؟؟
ممنون از دوستان اگه کسی بتونه راهنمایی کنه ؟؟
3 پاسخ
                                    
                                    0
                                    
                                    
                                
                                ممنون از جواب شما من همین کدها را دارم و بارکد اسکنر من روی کامپورت 5 هستش اما هی میگه پورت در حال استفاده هیتش و زمانی که اسکن میکنم چیزی اسکن نمیکنه ..... که داخل تکست باکس نشون بده .....
                                    
                                    0
                                    
                                    
                                
                                این بار از کلمه using برای خواندن استفاده کنید برای مثال
using (SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One))
{
    port.Open();
    port.Write("n");
}
                                    
                                    
                                    0
                                    
                                    
                                
                                با سلام به شما Itpro ای عزیز.
برای این کار شما می توانید یک فرم داشته باشید که یک دکمه و کادر متن داشته باشد و سپس کد زیر را برای آن بنویسید. کد زیر برای خواندن و نوشتن با com1 تنظیم شده است.
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;
using System.Threading;
using System.IO.Ports;
namespace BCReader
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SerialPort _serialPort;
        // delegate is used to write to a UI control from a non-UI thread
        private delegate void SetTextDeleg(string text);
        private void Form1_Load(object sender, EventArgs e)
        {
            // all of the options for a serial device
            // can be sent through the constructor of the SerialPort class
            // PortName = "COM1", Baud Rate = 19200, Parity = None, 
            // Data Bits = 8, Stop Bits = One, Handshake = None
            _serialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
            _serialPort.Handshake = Handshake.None;
            _serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
            _serialPort.ReadTimeout = 500;
            _serialPort.WriteTimeout = 500;
            _serialPort.Open();
        }
        private void btnStart_Click(object sender, EventArgs e)
        {
            // Makes sure serial port is open before trying to write
            try
            {
                if (!_serialPort.IsOpen)
                    _serialPort.Open();
                _serialPort.Write("SI\r\n");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
            }
        }
        void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Thread.Sleep(500);
            string data = _serialPort.ReadLine();
            this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { data });
        }
        private void si_DataReceived(string data)
        {
            textBox1.Text = data.Trim();
        }
    }
}