50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

خواندن از پورت Com توسط اسکنر بارکد

سلام ...

دوستان کسی میتونه منو راهنمایی کنه که چطور میتونم از Com 5 وقتی اسکنر بارکد اسکن کرد اون مقدار اسکن شده را درون یک متغیر بریزم با C# ؟؟

ممنون از دوستان اگه کسی بتونه راهنمایی کنه ؟؟

پرسیده شده در 1395/01/24 توسط

3 پاسخ

0

ممنون از جواب شما من همین کدها را دارم و بارکد اسکنر من روی کامپورت 5 هستش اما هی میگه پورت در حال استفاده هیتش و زمانی که اسکن میکنم چیزی اسکن نمیکنه ..... که داخل تکست باکس نشون بده .....

پاسخ در 1395/01/24 توسط
0

این بار از کلمه using برای خواندن استفاده کنید برای مثال

using (SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One))
{
    port.Open();
    port.Write("n");
}
پاسخ در 1395/01/24 توسط
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();
        }

    }
}

پاسخ در 1395/01/24 توسط

پاسخ شما