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();
}
}
}