roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 апр 2025, 09:32

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


Правила форума


Правила раздела OpenRobotics



Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: [liborfa.so] Pure C API
СообщениеДобавлено: 27 июл 2009, 22:53 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Библиотека работает как под linux, так и под windows.

Лицензия: MIT
Репозиторий исходного кода: http://hg.vehq.ru/liborfa/
Архив последней версии: http://hg.vehq.ru/liborfa/archive/tip.zip

Для сборки требуется CMake версии 2.6 или старше (очень удобная система для кроссплатформенной разработки).

Вложение:
Комментарий к файлу: Документация.
refman.pdf [1.62 МиБ]
Скачиваний: 10


Проверка работы на висте 32.
Код:
PS C:\Users\Vovan> C:\Users\Vovan\lsorfa.exe
Usage: C:\Users\Vovan\lsorfa.exe /dev/ttyS0
PS C:\Users\Vovan> C:\Users\Vovan\lsorfa.exe COM40
open_and_configure: can't open device "COM40": ═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы.

Can't open the port: COM40
PS C:\Users\Vovan> C:\Users\Vovan\lsorfa.exe \\.\COM40
Protocol: V1.0

   UID Version Start Count
------ ------- ----- -----
0x0000     1.0  0x00     1
0x0020     1.0  0x02     8
0x0001     1.0  0x0A     2
0x0060     1.0  0x0C     4
0x0031     1.1  0x10     2
0x0040     1.0  0x12     2
0xFF00     1.0  0x14     1
orfa_close() returned: 1
PS C:\Users\Vovan> notepad lsorfa-runlog.txt



Начал потихоньку писать чисто сишную библиотеку.
По сути это минимальная обертка над ком-портом.

Пока разбираюсь как бы лучше интерфейс написать, нужно ваше мнение.
Вот заготовка:
/* текст удален */

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 28 июл 2009, 02:49 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:oops: всякие штуки для определения версии вроде не особо нужны.
и по мелочам:
эта обвёртка вообще нужна или просто хочется?
зачем i2c добавлена?
почему не с++?
для каких контроллеров и компиляторов или без привязки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 28 июл 2009, 16:13 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Да, версия пока не очень нужна, но в протоколе есть.
К тому же я собираюсь выкинуть REGIO (R/W) из протокола версии 1.1.
Эта библиотека будет поддерживать протокол 1.1 (это урезанный 1.0, более строгий, но совместимый).

> эта обвёртка вообще нужна или просто хочется?
Главная задача — парсинг входного потока, формирование запросов просто бонус.

> зачем i2c добавлена?
Это же основа протокола.

> почему не с++?
Потому что гладиолус.

> для каких контроллеров и компиляторов или без привязки?
Нет привязки к контроллеру, на нем просто должна быть ORFA собранная с libserialgate.a.
Это серверная часть, и в первую очередь пишу под линукс, потом портирую.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 29 июл 2009, 01:12 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:crazy: фреймворк... понятно. :wink: исчезаю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 29 июл 2009, 05:24 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
При чем тут фреймворк? Обычная библиотека...

/* портировал парсер из pyor,
* захостил http://hg.vehq.ru/liborfa/
* (что-то админка реп поломалась, и странный трейс показывет)
*/

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 29 июл 2009, 05:44 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
http://ru.wikipedia.org/wiki/Фреймворк
в данном случае ORFA это фреймворк :) я уже заметил, в какой ветке этот топик, исчезааааааю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 29 июл 2009, 09:19 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Я так и не увидел где это библиотека переросла во фреймворк.
Вот ORFA да, фреймворк: бери, пиши модули, а каркас уже готовый.
А это только библиотека связи, не больше. Хотя в нее и будет входить интроспектор (упрощенный, в питонячей либе я его излишне усложнил), но только потому, что без него обойтись нельзя — это часть ядра.
Ты же не назовешь библиотеку сокетов фреймворком? :)

Добавлено спустя 2 минуты 47 секунд:
Ой, опять я невнимательно читаю :)

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 12:38 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
ай ай яй
срочно переделать
Код:
static inline void orfa_free_reply(orfareply *reply) {
   free(reply->data);
   free(reply);
}

вот в это
Код:
static inline void orfa_free_reply( orfareply **reply )
{
    if( !reply )
        return;

    if( !(*reply) )
        return;

    if( *reply->data )
        free( *reply->data );
   
    free( *reply );

    *reply = NULL;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 12:54 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Сергей, в твоем коде тоже ошибка. :D

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 13:04 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Поправил :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 13:30 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Сергей писал(а):
reply = NULL;

А смысл?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 13:41 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
может подразумевалось *reply = NULL ? Тогда смысл есть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 14:19 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
И к чему такие сложности?
Да и сейчас того кода уже нет.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 17:04 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
boez писал(а):
может подразумевалось *reply = NULL ? Тогда смысл есть

да, описался просто. поправил.
Vooon, где ты тут сложности увидел?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [liborfa.so] Pure C API
СообщениеДобавлено: 30 июл 2009, 17:41 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Посмотри последнюю версию по ссылке плиз.

Я просто не понимаю зачем передавать указатель на указатель, когда мне нужно освободить память занимаемую ответом.
Для этого же достаточно просто указателя.

И сейчас я убрал «магию» с указателем на данные. Т.к. максимальный размер ответа известен заменил *data на data[REPLY_MAX].

_________________
Linux user | Firefox user


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

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


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

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


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

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