PureBasic для PC

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
PICmaker
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Ср дек 12, 2007 21:46:06
Откуда: Георгиевск

Сообщение PICmaker »

Я незнаю какой у вас интернет
Если резиновый почти халявный и быстрый(WiFi, ADSL) то лучше выкинте что сами качали на narod.ru
Нет повести печальнее на свете чем повесть о заклинившем ресете
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

У меня Диал-Ап и линия не лучшего качества.
Так что скачиваю такой объём с помощью ReGet'а примерно за час, но на заливку уйдёт намного больше. :(
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Появилась новая верися 4.30. http://purebasic.com/download.php3
Ivan_83
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср июл 30, 2008 21:34:17

Сообщение Ivan_83 »

Я бы им с радостью пользоватся, году в 2001, когда уткнулся в производительность бейсика и в то, что нужно было искать обьявление АПИ и писать их самому.

Но перешёл на мс си, теперь вижал студия, и никакой бейсик не нужен.
И все обьявления всегда есть, и вставки на асме на-те, и примеров куча, и производительность и размеры файлов, и кросс платформенность при использовании библиотек (хотя я всё своё предпочитаю или от ОС).
Я уже молчу про средства профилирования.
И темболее про средства разработки и отладки.
Слабо себе представляю отладку многопоточных приложений с асинхронным в/в в чём то отличном от си.


ИМХО опоздал этот бейсик лет на 10.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Я не спорю, если Си прекрасно знаешь, то никакие бейсики не нужны.
Но во первых Си изучить сложнее чем PureBasic.
Например, этот бейсик я изучил по имеющимся примерам в дистрибутиве и справке, но я сомневаюсь что только по справке удастся Си полностью изучить. Хотя кто знает, может и ошибаюсь.
Но одно знаю точно, как ни крути, но во многих случаях написать прогу на бейсике проще. Как говорили в одной известной рекламе "Если нет разницы, то зачем платить больше?"

вставки на асме на-те, и примеров куча, и производительность и размеры файлов, и кросс платформенность при использовании библиотек
Всё это и PureBasic поддерживает.
Можно использовать asm вставки.
Почти две тысячи примеров здесь http://www.purearea.net/pb/CodeArchiv/CodeArchiv.html
Минимальный размер исполняемого файла от 2 Кб. Минимальный размер исполняемого файла с окном от 10 Кб.
Скорость работы исполняемого файла тоже высокая. В конце этой страницы есть таблица.
Поддерживаются следующие ОСи: Windows, AmigaOS, MacOS и Linux


Код: Выделить всё

И темболее про средства разработки и отладки. 
Слабо себе представляю отладку многопоточных приложений с асинхронным в/в в чём то отличном от си
Здесь не соглашусь.
PureBasic имеет прекрасный отладчик, который неплохо отлаживает как обычные так и многопоточные приложения.
Мне проиходилось писать программы с несколькими потоками и я не замечал каких либо сложностей в отладке фоновых потоков.
pro_grammer
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср ноя 26, 2008 11:45:19

Сообщение pro_grammer »

Ivan_83 писал(а): нужно было искать обьявление АПИ и писать их самому.

Но перешёл на мс си, теперь вижал студия, и никакой бейсик не нужен.
И все обьявления всегда есть,


Самое интересное, что PureBasic вообще не нужны ни какие объявления для API,и не нужны заголовочные файлы - все АПИ он считает своими родными функциями. Только надо добавить в конце функции знак подчёркивания и всё!

Код: Выделить всё

 MessageBox_(0,"Hi","About",#MB_OK)


Вот эта строчка чудесно компилируется одним нажатием кнопки, ехе файл будет размером ок 2 кб, и полученная программа запустится на любой Win платформе, и от задумки написать эту стоку и до конечного экзешника пройдёт не более 10 секунд.Что ещё надо не профессионалу, пишущему вспомогательные проги для "дома и семьи"?

Ни какой вижел студио на это не способен - там только запуск среды и настройка проекта займут несколько минут.
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

есть вопрос как работать с USB в PureBasic
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Специальных функций для этого нет.
Всё зависит от того, с каким USB устройством предполагается работать.
Если это виртуальный COM порт, то проблем нет, работаем как с обычным.
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

Я тут ночью зашол на форум по пурику почитал мысли гуру на эту тему однозначных мыслей нет все в тумане и запутано мне нужно управлять гдето 14 или 15 выходов например светодиды зажечь потушить желательно чтоб скорочть реакции была не самая медленая я вот нашол в нете люди используют для нечто подобного управляемый контролер Arduino Duemilanove в его основе mega168
[urlhttp://www.linuxcenter.ru/shop/embedded/arduino/microcontroller_board_arduino_duemilanove_ATmega168/[/url] ево описание вот и я так думаю без контролера скорей всего нечего неполучится я нашол на форуме по пурику разработку товарища калиграфа помоиму так там был програматор с юсб в нем был использован телефонный дата кабель чтоб реализовать виртуальный ком порт вот надо творить чтото подобное
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

помоиму так там был програматор с юсб в нем был использован телефонный дата кабель чтоб реализовать виртуальный ком порт вот надо творить чтото подобное
Если нужен виртуальный COM порт, то проблем нет, так как с ним можно работать как с реальным.
А с COM портом, работать довольно просто. :)
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

Обзавелся отладочной платой с мегой 168 там стоид преобразователь интерфеса UCB чип FTDI короче виртуальный com порт получается собствено раскажите как с ним работать и библиотеки бы желательно хотелось получить.
Заранее благодарен
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Работа с виртуальным портом почти ничем не отличается от работы с "железным". Так-же открываем порт и ведём диалог с устройством.

Вот небольшой пример

Код: Выделить всё

; Формируем строку открытия порта. Данные расположены так.
; Имя_порта: скорость, чётность, количество_бит, длительность_стоп_бита.
Port.s="COM1: 9600, N, 8, 1"
; Открываем порт. Если порт удалось открыть, то в переменную "id" будет записанно число НЕ равное нулю
id=ComOpen(Port, #HandShakeModeNone, 255, 255 )

If id=0
 MessageRequester("Ошибка", "Не удалось открыть порт", #MB_OK|#MB_ICONERROR)
 End
EndIf

Out.c=10 ; Это число передаём устройству
ComWrite(id, @Out, 1) ; Отправка байта устройству через COM порт

Delay(200) ; Ждём 200 миллисекунд, за это время устройство должно ответить

If ComInputBufferCount(id)>0 ; Устройство ответило
 In.c=0
 ComRead(id, @In, 1) ; Читаем из порта первый принятый байт
 MessageRequester("", "Принят байт "+Str(In), #MB_OK|#MB_ICONINFORMATION)
Else ; Устройство не передело байт
 MessageRequester("", "Устройство не ответило", #MB_OK|#MB_ICONWARNING)
EndIf

ComClose(id) ; Закрываем порт

End


Программа упрощена до предела.
Она открывает порт COM1, при скрости обмена 9600 бод. проверка чётности отсутствует. количество бит в пакете - 8. длительность стоп-бита - 1.

Далее программа отсылает в порт число 10 и ждёт 200 мс. пока усторойство будет "переваривать" информацию и отвечать. В качестве ответа может быть байт с любым значением.

Для компиляции программы нужна библиотека дополнительных функций MVCOM, которая собствено и работает с портом.
Она находится в архиве MVCOM_Lib_For_PB4.RAR, содержимое которого нужно извлечь в папку с программой PureBasic, чтобы установить библиотеку.


PS.
Для администрации.
А почему запрещена загрузка документов с расширением RTF?
Вложения
MVCOM_Lib_For_PB4.rar
Библиотека функций, для работы с COM портом.
(15.89 КБ) 557 скачиваний
MVCOM_DOC.rar
Описание на русском функций библиотеки MVCOM
(7.88 КБ) 584 скачивания
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

однако косяк в 5 строке
constant not found #HandShakeModeNone

эта строка полностью
id=ComOpen(Port, #HandShakeModeNone, 255, 255 )
вопрос решил забраской файла MvComRes.res куда положено но серавно неработает пишит ошибка неудалось открыть порт
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

ошибка неудалось открыть порт
Виртуальному порту какой номер присвоела система?
Наверное не COM1...

В общем, сверни все окна чтобы был виден "рабочий стол".
Дальше кликни правой кнопкой мышки по значку "Мой компьютер" и в появившемся меню выбери "Свойства".
Откроется окно.
Перейди на вкладку "оборудование" и щёлкни по кнопке "Диспетчем устройств".
В открывшемся окне поищи раздел "Порты (COM и LPT)".
В этом разделе должен быть виртуальный COM порт.
Посмотри какой у него номер (например, COM4) и введи его в строке 3 программы.
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

сом5 поставил этот порт отправляю это число там 10 установлено вроде было выдает нет ответа устройства ну принципи работает тока заставить само устройство понимать эту команду и потвержадь ее получение
При приходе команды с програмы моргает светодиод подключенный к выходу 13 контролера
int led = 13; //Светодиод
тоесть это идет сигнал о приходе команды проста она несоответствует необходимой получается так
Странная вешь творится в среде разработке програм для arduino есть така функция последовательный монитор короче я выбираю там скорость бмена с контролером 9600 и посылаю число 11 он отвечает Set slat to 1. и зажигает светодиод подключеный к ножке 1 контролера посылаю код 00 выдает такое сообщение Set bank to 0. и тушит светодиод а на прогу в пурике некак неведется кроме как подмигивает светодиодом подключенной к ноге 13 вроде проясняется посылаю код 111 в контролеры получаю сооюшение
Set slat to 1. Set bank to Fire cue 1 Это значит что устанавливаем лог 1 на слоте 1 загораится и горит светодиод на ноге 2 кнтролера в нашем случае это a0 = 2; для примера a1 = 3; b1 = 6; b2 = 7; дальше идет выбор банка и кратковременая подача лог 1 на канал на время установленое в задержке int cueHigh = 400; для того чтоб теберь сбросить все на исходную тоесть потушить светодиод (отключить слот) вбиваю код 000 пробовал тоже повторить в пурике ноль реакции. Какие будут предложения ???????????
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Как я понял, эта программа должна получать не один байт, а 3, может в этом проблема?
Вполне возможно что из-за этого она ведёт себя некорректно.

Я думаю что отлаживать связь с компьютером лучше на какой-нибуть простой программе, которая просто принимает один байт и отсылает его назад, ну и для контроля отображает на индикаторе.
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

вот что мне выдала програмулина слежения за ком портом

запись
Порт открыт процессом "javaw.exe" (PID: 7236)

31 31 31 30 30 30 111000
сначала записую три 111 потом три нуля

чтение

53 65 74 20 73 6C 61 74 20 74 6F 20 31 2E 20 53 Set slat to 1. S
65 74 20 62 61 6E 6B 20 74 6F 20 00 2E 20 46 69 et bank to .. Fi
72 65 20 63 75 65 20 31 0D 0A 53 65 74 20 73 6C re cue 1..Set sl
61 74 20 74 6F 20 30 2E 20 53 65 74 20 62 61 6E at to 0. Set ban
6B 20 74 6F 20 00 2E 20 46 69 72 65 20 63 75 65 k to .. Fire cue
20 30 0D 0A 0..

теперь записую только по одному числу выбор только слота
запись
Порт открыт процессом "javaw.exe" (PID: 7236)

31 30 10
сначала записал 1 потом 0, вкл слот 1 /выкл слот1

чтение

53 65 74 20 73 6C 61 74 20 74 6F 20 31 2E 20 53 Set slat to 1. S
65 74 20 62 61 6E 6B 20 74 6F 20 00 et bank to .

Порт закрыт
Какие будут предложения по созданию управляющей программы на пурике ????

А вот уже из пурика записую 1 в порт ответа непоследовало
Порт открыт процессом "PureBasic_Compilation6.exe" (PID: 7756)
04 .

Порт закрыт
Последний раз редактировалось alexval2006 Ср фев 25, 2009 13:06:08, всего редактировалось 1 раз.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Т. е. нужно сделать аналогичную программе javaw.exe?
alexval2006
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб мар 10, 2007 20:05:39
Откуда: валуйки
Контактная информация:

Сообщение alexval2006 »

ну по идеи да кстати у меня эта прога скорей всего есть на яве в паке с ардуино там много каких то файлов на яве
вот как представлена цифра 2 а потом 000
запись
Порт открыт процессом "javaw.exe" (PID: 520)
32 30 30 30 2000

ответ

53 65 74 20 73 6C 61 74 20 74 6F 20 32 2E 20 53 Set slat to 2. S
65 74 20 62 61 6E 6B 20 74 6F 20 00 2E 20 46 69 et bank to .. Fi
72 65 20 63 75 65 20 30 0D 0A 53 65 74 20 73 6C re cue 0..Set sl
61 74 20 74 6F 20 30 at to 0

есть пример на визулал бейсике работы с аналоговыми портами контролера
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Сообщение PB_EXPERT »

Я так понял что обмениватся нужно только текстовыми сообщениями.
Вот программа типа терминальной.
Изображение

Выбираем порт.
В поле Данные, передаваемые устройству вводим отправляемый текст и жмём на кнопку Отправить.
Вложения
COM_IO.rar
(14.48 КБ) 560 скачиваний
Ответить

Вернуться в «Интеграция с ПК»