roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 ноя 2024, 21:20

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 123 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 28 дек 2009, 23:07 
Не в сети

Зарегистрирован: 04 апр 2008, 13:44
Сообщения: 266
Откуда: г.Петрозаводск
Братья по роботоразуму ,подскажите .дальномеры Шарповские на постороннюю засветку реагируют?ну там лампы всякие, экраны ,пульты ДУ.

_________________
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 28 дек 2009, 23:26 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
statistic писал(а):
Цитата:
с т.з. программы это таки два ком порта

Я имею в виду мне для БТ тот же класс в C# использовать- SerialPort?Только ставить в конструкторе не один,а две штуки и потом один включать при передаче,а второй при приёме .Так?

Что-то я не понял о чем идет речь :( . В классе SerialPort нет перегруженного конструктора на 2 portName.
Если всеже нужно работать с 2-мя портами одновременно то нужно создать 2 объекта класса SerialPort. А чтоб совсем все было хорошо (избежать конфликтов при одновременном приеме) лучше сделать класс наследник от SerialPort, переопределить метод DataReceived (сделать проверку заполнения буфера по таймеру),создавать и работать с объектами класса наследника.

А разъем ты классный нашел :good: . Я из-за него покупал дата-кабель.

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 28 дек 2009, 23:40 
Не в сети

Зарегистрирован: 04 апр 2008, 13:44
Сообщения: 266
Откуда: г.Петрозаводск
Цитата:
то нужно создать 2 объекта класса SerialPort.

Именно это я и хотел сказать ,просто в терминологии не силён.
Цитата:
лучше сделать класс наследник от SerialPort

А вот здесь и дальше вы как то не понятно выругалися,что мне прям в угол встать захотелось.Ничо не понял ,новичок-с! :oops: Но учусь потихоньку.

_________________
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 28 дек 2009, 23:43 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
D1mcon писал(а):
создать 2 объекта класса SerialPort

об этом и речь
D1mcon писал(а):
избежать конфликтов при одновременном приеме

поясните, пожалуйста, откуда там возьмутся конфликты.

Добавлено спустя 30 секунд:
P.S. statistic опередил чуток :D

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 28 дек 2009, 23:52 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
2statistic
Да нет я не ругался :) Просто у SerialPort есть реальный баг - при одновременной работе с несколькими открытыми портами возникают конфликты, поэтому забиваем на событие получение данных, создаем таймер в нем проверяем значение поля bytereceived, если не 0 читаем буфер. В итоге все нормально работает и нет необходимости создания делегата для извлечения данных из буфера SerialPort. Это все по собственному опыту.

2MiBBiM
При создании SerialPort он автоматически создает поток, в котором он читает и передает данные. Если много открытых портов возрастает вероятность одновременного использования некоторого объекта всеми объектами SerialPort -> всеми потоками, вот здесь и подводный камень, так просто данные из потока не извлекаются, и объкты в потоках если не Static (и не SingleTone) имеют локальные копии, следовательно либо:
1) Конфликт при обращении к разделяемым ресурсам
2) Неявное модифицирование некоторого объекта -> получения неожидаемого результата.

По опыту: конфликты могут проявиться и при 2 портах, особенно если данные одного нужно передать другому.

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 00:57 
Не в сети

Зарегистрирован: 04 апр 2008, 13:44
Сообщения: 266
Откуда: г.Петрозаводск
Это как-то так должно выглядеть?
Код:
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();
        }
    }
}

и пожалуйста ,мож кто знает:
Цитата:
Братья по роботоразуму ,подскажите .дальномеры Шарповские на постороннюю засветку реагируют?ну там лампы всякие, экраны ,пульты ДУ.

_________________
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 09:44 
Не в сети

Зарегистрирован: 04 апр 2008, 13:44
Сообщения: 266
Откуда: г.Петрозаводск
to D1mcon А если например обработка таймера начнётся как раз при приёме данных в буфер?От этого ошибки не будут происходить?

_________________
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 13:42 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
Нет, у меня с этим не было проблем. :)
Про шарпы смотри по форуму, по-моему это уже много раз обсуждалось :)
Про приведенный выше код:
Логика правильная, но можно потом и целую строку читать.
Работа с таймером избавит вас от некоторых проблем. Для начала это лучшее решение.

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 14:21 
Не в сети

Зарегистрирован: 04 апр 2008, 13:44
Сообщения: 266
Откуда: г.Петрозаводск
ОК.Опробую ваш вариант.Это у меня получится три порта в употреблении.Один на МК(rs232),и два на ВТ для связи с компом.

_________________
жизнь это компьютерная игра:сценарий так себе, зато графика потрясающая!
удиви печень:выпей воды!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 15:16 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
Что-то не пойму, зачем Вам столько портов?:) Поясните. :)

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 16:39 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
в разъем от lg-600 5-ти контактный miniusb входит как родной, причем он ещё и с двух сторон зажимается защелками разъема. :)
а вот большой usb-a толстоват :( но напильничком можно попробовать.
наконец-то появилось решение компактного юсб-хост переходника :)
D1mcon, наверняка по одному управлять ботом, а двум другим - держать коннект по БТ с ББ

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 17:09 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
а зачем два порта для обмена по блютусу?
там же только один используется для обмена

первый порт если устройство инициирует соединение, второй порт если компьютер инициализирует соединение.
один порт мастер второй порт слэйв.

обычно комп инициализирует соединение и на КПК используется слэйв копорт.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 19:53 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
чтобы не иметь головняков с перманентным открыванием/закрыванием порта при двухстороннем обмене?

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 20:16 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
Что-то я вас совсем не понимаю :pardon: Зачем постоянно что-то открывать и закрывать :)
Не догоняю, поясните. :)
2MiBBiM что кроется за секретной аббревиатурой ББ

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проект "PDAonBoard"
СообщениеДобавлено: 29 дек 2009, 20:22 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
MiBBiM писал(а):
чтобы не иметь головняков с перманентным открыванием/закрыванием порта при двухстороннем обмене?

нет
2 порта используются для разделения мастер/слэйв


ББ это аббревиатура от Большой Брат
главный компьютер который за всеми нами следит.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 123 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO