ساختن چندین پورت به طور داینامیک و خواندن از پورتها
سلام
من با دستور زیر پورت داینامیک می سازم
ds = obj.select_PortAll(out except);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{ _serialPort = new SerialPort(ds.Tables[0].Rows[i][1].ToString(), 9600, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_serialPort.WriteTimeout = 500;
_serialPort.Open();
حالا می خوام وقتی اطلاعاتی از پورتم اومد بخونم
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) {
_serialPort.PortName = ((System.IO.Ports.SerialPort)(sender)).PortName;
if (!_serialPort.IsOpen)
{
_serialPort.DtrEnable = true;
try
{
روی این خط بهم میگهaccess is deneid
و پورت رو باز نمیکنه
_serialPort.Open();
}
catch (Exception E)
{
_serialPort.Close();
}
}
string data = _serialPort.ReadExisting()
نقل قول: ساختن چندین پورت به طور داینامیک و خواندن از پورتها
جوابش رو پیدا کردم
ds = obj.select_PortAll(out except);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
_serialPort = new SerialPort(ds.Tables[0].Rows[i][1].ToString(), 9600, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_serialPort.WriteTimeout = 500;
if (!_serialPort.IsOpen)
{ // COM.ReadTimeout = 500;
_serialPort.DtrEnable = true; try
{ _serialPort.Open(); } catch (Exception E) { _serialPort.Close(); } } }
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender;sp.ReadExisting()
{
نقل قول: ساختن چندین پورت به طور داینامیک و خواندن از پورتها
روی همزمانی مشکل داره
کسی نمی دونه باید چیکار کنیم؟
نقل قول: ساختن چندین پورت به طور داینامیک و خواندن از پورتها
بسته به اینکه اون کانت شما چند باشه ، یکی از پورتهای سریالی رو استفاده میکنید که قبلا باز شده و مورد استفاده پروسس دیگه ای هست
پورت سریال Single Use هست.
موفق باشید.