Потреловалось написать эмулятор железки которая работает через серийные порты.
Нашёл софтинку:
com0com
Возникла проблема с вычиткой данных с ком.порта.
Может быть кто-то сталкивался с проблемой?
Вычитываю так:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
namespace SerialPortTester
{
class Program
{
static void Main(string[] args)
{
SerialPort port = new SerialPort("COM_B0", 9600, Parity.None, 8, StopBits.One);
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
Console.ReadLine();
}
static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//Даже и не вызывается :(
}
}
}
Тесты в Hyperterminal'e всё нормально работает.
p.s. письмо разработчику написал.
Здравствуйте, Norex, Вы писали:
N>Возникла проблема с вычиткой данных с ком.порта.
N>Может быть кто-то сталкивался с проблемой?
N>Вычитываю так:
N>N> SerialPort port = new SerialPort("COM_B0", 9600, Parity.None, 8, StopBits.One);
N>
а что за "COM_B0"? это порт созданный этим имитатором порта?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Morpheus_, Вы писали:
M_>Здравствуйте, Norex, Вы писали:
N>>Возникла проблема с вычиткой данных с ком.порта.
N>>Может быть кто-то сталкивался с проблемой?
N>>Вычитываю так:
N>>N>> SerialPort port = new SerialPort("COM_B0", 9600, Parity.None, 8, StopBits.One);
N>>
M_>а что за "COM_B0"? это порт созданный этим имитатором порта?
Да. Вообще-то я его переименовал, ввиду ограничений .NET'a.
В оригинале он назывался CNCA0 & CNCB0, но класс SerialPort проверяет, что бы PortName начинался с "COM/com" иначе выдаёт ArgumentException.
Здравствуйте, Norex, Вы писали:
...
SerialPort port = new SerialPort(@"\\.\COM_B0", 9600, Parity.None, 8, StopBits.One);
...
Так должно работать.
N>p.s. письмо разработчику написал.
У разработчика об этом в FAQ написано.