![]() |
roboforum.ruТехнический форум по робототехнике. |
|
statistic писал(а):с т.з. программы это таки два ком порта
Я имею в виду мне для БТ тот же класс в C# использовать- SerialPort?Только ставить в конструкторе не один,а две штуки и потом один включать при передаче,а второй при приёме .Так?
. В классе SerialPort нет перегруженного конструктора на 2 portName.
. Я из-за него покупал дата-кабель.то нужно создать 2 объекта класса SerialPort.
лучше сделать класс наследник от SerialPort
Но учусь потихоньку.D1mcon писал(а):создать 2 объекта класса SerialPort
D1mcon писал(а):избежать конфликтов при одновременном приеме

Просто у SerialPort есть реальный баг - при одновременной работе с несколькими открытыми портами возникают конфликты, поэтому забиваем на событие получение данных, создаем таймер в нем проверяем значение поля bytereceived, если не 0 читаем буфер. В итоге все нормально работает и нет необходимости создания делегата для извлечения данных из буфера SerialPort. Это все по собственному опыту.using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace ПроверкаКом
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (serialPort1.BytesToRead != 0) textBox1.Text =""+ serialPort1.ReadByte();
}
}
}Братья по роботоразуму ,подскажите .дальномеры Шарповские на постороннюю засветку реагируют?ну там лампы всякие, экраны ,пульты ДУ.

но напильничком можно попробовать.
Зачем постоянно что-то открывать и закрывать
MiBBiM писал(а):чтобы не иметь головняков с перманентным открыванием/закрыванием порта при двухстороннем обмене?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0