Большой Воронежский Форум
» Программирование>C# Com-port и HEX
ant0n 15:19 10.01.2009
вопрос по COM порту.
Требуется силами C# отправить в ком порт HEX значения, не подскажете, как это сделать?
В случае, если требуется например, отправить значения [0x5E] или [0x3E]
то сложностей не возникает достаточно лишь отправить соответствующий символ:

serialPort1.Write(">");

serialPort1.Write("^");


загвоздка в случае, если например, требуется отправить [0x02]
конструкции вроде:
int a = 02;
string b = String.Format("{0:X}", a);

не проходят(( [Ответ]
X0R 15:41 10.01.2009
Не подойдет?
Код:
public void Write(
	byte[] buffer,
	int offset,
	int count
)
Параметры
buffer
Тип: System.Byte []
Массив байтов, данные из которого записываются в порт.
offset
Тип: System.Int32
Отсчитываемое от нуля смещение в массиве buffer (в байтах), с которого начинается копирование байтов в порт.
count
Тип: System.Int32
Количество записываемых байтов. [Ответ]
ant0n 16:24 10.01.2009
XOR а при использовании serialPort1.Write() по идее он ждет от нас значения типа string?
XOR если не затруднит, напиши пример использования с 0х02, и если есть какой нибудь материал по данному вопросу скинь ссылки. [Ответ]
andshev 18:36 10.01.2009
Код:
            byte[] bytesToWrite = new byte[] { 0x02 };
            serialPort1.Write(bytesToWrite, 0, bytesToWrite.Length);
[Ответ]
X0R 19:21 10.01.2009
ant0n, MSDN http://msdn.microsoft.com/ru-ru/default.aspx [Ответ]
ant0n 11:15 12.01.2009
andshev,XOR большое спасибо,с отправкой разобрался, разбираюсь с чтением,похоже с этим будет немного вязко. [Ответ]
ant0n 15:36 24.02.2009
Доброго времени суток.
Подскажите, как производить чтение данных из ком порта не по нажатию клавиши(т.е по событию инициируемого пользователем), а автоматически по мере поступления этих самых данных. [Ответ]
xxx-men 16:02 24.02.2009
почитай тут [Ответ]
olexus 16:13 24.02.2009
ant0n, нужно переопределить обработчик прерывания от ком-порта [Ответ]
ant0n 16:46 24.02.2009
xxx-men, аналогичной ссылки нет только на C#, olexus можно по подробнее как это реализовать? [Ответ]
olexus 22:39 24.02.2009
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) [Ответ]
ant0n 12:19 26.02.2009
буду пробовать.спасибо. [Ответ]
ant0n 17:55 09.03.2009
Доброго времени суток.
Olexus, конструкция вида :
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
textBox1.Text=”Данные поступили”;
}
Не срабатывает, пробовал и так:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
this.Invoke(new EventHandler(DoUpdate));
}
private void DoUpdate(object s, EventArgs e)
{
textBox1.Text = "ReadPOrt!";
}

Результат один, обработчик не срабатывает когда данные поступают в порт(проверяю с помощью нажатия клавиши чтения порта)
Или для данного обработчика нужна еще какая нибудь обработка? [Ответ]
Вверх