roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Управление роботом через bluetooth
СообщениеДобавлено: 29 май 2010, 11:51 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
Здравствуйте. Хочу написать программу для кпк с использованием bluetooth. Может у кого нибудь есть исходники или сами помогут?Буду благодарен любой помощи
Спасибо


Последний раз редактировалось @vlad@ 01 июн 2010, 20:38, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите программа с bluetooth для кпк
СообщениеДобавлено: 29 май 2010, 12:04 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Вы для начала укажите операционку вашего КПК и среду разработки в которой работать умеете.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите программа с bluetooth для кпк
СообщениеДобавлено: 29 май 2010, 14:03 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
Кпк asus p535 WM6. Работаю в Visual studio 2008 C#


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите программа с bluetooth для кпк
СообщениеДобавлено: 01 июн 2010, 20:37 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
И так написал прогу, получается что действую через виртуальный ком порт.Вот программа:
private void config()
{
port.PortName = "COM7";
port.WriteTimeout = 500;
port.ReadTimeout = 500;
port.BaudRate = 115200;
port.Open();
}
private void forward()
{
port.WriteLine("0x01");
}
private void Form1_Load(object sender, EventArgs e)
{
config();
}

Но не работает((Виртуальный кпк гооворит что порт закрыт. В риальном вот что выдает:
в
System.IO.Ports.SerialPort.ThrowIfClose
d()
в
System.IO.Ports.SerialPort.Write(String text)
в
System.IO.Ports.SerialPort.WriteLine(string text)
в robot.Form1.pitureBox1_click(object sender, EventArgs e)
в
System.Windows.Forms.Control.WnProc(WM wm, Int32 lParam)
в
System.Windows.Forms.Control._Intern alWmProc(WM wm, Int32 wParam, Int32 lParam)
в
Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
в
System.Windows.Forms.Application.Run(Form fm)
в robot.Program.Main()
Все com порты перебрал...В чем может быть причина?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 01 июн 2010, 20:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А на КПК нет утилиты по обзору СОМ-портов? Чтобы глянуть где что? Модуль вообще подружить не забыли с КПК?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 03:18 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
System.IO.Ports.SerialPort.GetPortNames() возвращает string[] со всеми портами в системе.
:) если он хоть какие-то порты вернул, значит деле в настройках (BaudRate, DataBits, StopBits,...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 15:12 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
В моей программе есть небольшая утила по обзору com портов. Попробовал все-ничего...Блютуз включал, но нисчем не соеденял. ЧТо делать дальше-вообще не знаю

Добавлено спустя 3 минуты 14 секунд:
Angel71 да имеется такая сточка какк string[] ports = System.IO.Ports.SerialPort.GetPortNames(); Возратила несколько портов, пробовал все-прога всеравно вылетает при попытке передать число.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 15:13 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Так ничего и не должно работать. Сначала с КПК найдите в окружении этот модуль, законнектитесь с ним, введите пин код, как только два устройства подружатся - у вас должен появится СОМ-порт новый, "Исходящее соединение", если как на винде будет. Вот через него и работайте. А поиск новых устройств и пин-коды через службу СОМ-порта конечно никогда не будут работать :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 15:22 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
Angel71 все настройки имеются-хотя не факт что правильные.
port.PortName = "COM7";
port.WriteTimeout = 500;
port.ReadTimeout = 500;
port.BaudRate = 115200;
port.Open();

=DeaD= спасибо, щас проверим...

Добавлено спустя 2 минуты 35 секунд:
Правдо блютуза еще нету(модуля) щас попробую с другим кпк соедениться. Но потом конечно куплю=)

Добавлено спустя 4 минуты 1 секунду:
Неа, новый com порт при сопряжении 2 кпк не появился...Щас попробую через старые работать. 1,7,6,4,2,9


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 15:24 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Тяжело без модуля искать ком-порт на котором этот модуль зацеплен :crazy:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 15:36 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
ну я имею ввиду блютуза для кпк нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 02 июн 2010, 16:16 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:) ну... про все эт вы сильно горячитесь. из основных ещё есть DataBits, StopBits, Parity, Handshake. есть и другие параметры, но на них споткнуться при попытке открыть порт кажись нереально.
второй нюанс, а вы случаем не забыли в кэтчь закинуть:
InvalidOperationException
ArgumentOutOfRangeException
ArgumentException
IOException
UnauthorizedAccessException
тогда и к гадалке ходить не прийдётся, сразу будет понятно чего не соединяет, да и прога отучится вылетать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 03 июн 2010, 00:58 
Не в сети

Зарегистрирован: 18 апр 2010, 11:04
Сообщения: 14
Спасибо уезжал на весь день-с портами пока что не успел попробовать. За ваш кусочек кода тоже спасибо, не пробовал=)ЗАвтро все постараюсь проверить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 03 июн 2010, 01:19 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:) ну код выглядел бы примерно так, а то был список эксэпшинов из msdn`а
Код:
try
{
    if (!port.IsOpen && "" != port.PortName) port.Open();
}
catch (InvalidOperationException)
{
    //The specified port is open.
}
catch (ArgumentOutOfRangeException)
{
    //One or more of the properties for this instance are invalid.
    //For example, the Parity, DataBits, or Handshake properties are not valid values;
    //the BaudRate is less than or equal to zero;
    //the ReadTimeout or WriteTimeout property is less than zero and is not InfiniteTimeout.
}
catch (ArgumentException)
{
    //The port name does not begin with "COM".
    //- or -
    //The file type of the port is not supported.
}
catch (IOException)
{
    //The port is in an invalid state.
    //- or -
    //An attempt to set the state of the underlying port failed. For example, the parameters passed from this SerialPort object were invalid.
}
catch (UnauthorizedAccessException)
{
    //Access is denied to the port.
}
finally { //... }

при закрытии может только вот этот нарисоваться InvalidOperationException (The specified port is not open)


Последний раз редактировалось Vooon 03 июн 2010, 18:22, всего редактировалось 1 раз.
[code=cs]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом через bluetooth
СообщениеДобавлено: 03 июн 2010, 11:36 
Не в сети
Аватара пользователя

Зарегистрирован: 19 фев 2007, 19:18
Сообщения: 108
Откуда: msk
очень очень давно делал для ИК, когда они еще были.

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net.Sockets;
using System.Net;


namespace IrDa
{
    public partial class Form1 : Form
    {
        System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();

        public Form1()
        {
            InitializeComponent();
            button1.Enabled = false;
            try
            {
                Cursor.Current = Cursors.WaitCursor;
               
                sp.PortName = "COM6";
                sp.BaudRate = 115200;
                sp.Parity = System.IO.Ports.Parity.None;
                sp.StopBits = System.IO.Ports.StopBits.One;
                sp.DataBits = 8;
                sp.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(sp_DataReceived);
                sp.Open();
                button1.Enabled = true;
                Cursor.Current = Cursors.Default;
            }
            catch (Exception ex)
            {
                if (sp.IsOpen) { sp.Close(); }
                MessageBox.Show(ex.Message);
            }
        }

        void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            label1.Text = sp.ReadExisting();
        }

        private void Form1_Closing(object sender, CancelEventArgs e)
        {
            if (sp.IsOpen) { sp.Close(); }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            sp.WriteLine("hello");

            Cursor.Current = Cursors.Default;
        }

       
    }
}


Последний раз редактировалось Vooon 03 июн 2010, 18:21, всего редактировалось 1 раз.
[code=cs]


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

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


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

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


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

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