Свежие обсуждения
Компьютеры

Програмированием на высоком уровне хочу заняться :

1 7

ВА общем как-то пришла потребность написать программу не под AVR а под более умную железку - например РС. Когда-то совсем давно я конечно что-то писал на Turbo Pascal - но это было давно, с тех пор только на ассемблере и пишу. Но вы сами понимаете - писать прогу работоспособную под Wынь на ассемблере - это для совсем завернутых экстремалов. Посему прошу совета - какой компилятор мне стоит избрать ?

Требования :
1) Легкодоставаем сам и таблетка к нему от жадности создателей.
2) Результат его работы - работает в Win NT / Win 2000 / Win XP без установки дополнительных библиотек - тоесть на выходе 1 экзешник.
3) К нему должно быть русскоязычное описание довльно вменяемое для ламера.

Задача:

Есть некое USB устройство (ну скажем осциллограф) и есть к нему некоторый драйвер (промышленный) и есть описание функций вроде как которые можно вызывать в этом драйвере. Требуется - читать данные из устройства и изображать осциллограммы на экране.

 

Это, уважаемый товарищ, смотря на каком языке программировать хотите.

 

Учитавая, что:
Wladimir_TS: Когда-то совсем давно я конечно что-то писал на Turbo Pascal
Могу посоветовать Delphi (конечно же платный продукт, инсталяшку надо искать на дисках) или FreePascal + Lazarus (бесплатный, open source, ссылки для скачивания можно взять на freepascal.org и lazarus.freepascal.org соответственно). Delphi создаёт отдельный автономный EXE-шник, но для работы с базами данных может потребоваться установка BDE. FreePascal - кроссплатформенный компилятор, может создавать программы не только под WIn, но и под Linux, и множество других систем.
Что касается русскоязычного руководства, то здесь есть некоторые проблемы. Можно просто искать книги по программированию на Delphi, большая часть этой информации без изменений или с незначительной корректировкой также подойдёт для Lazarus. А ещё русскоязычный форум на freepascal.ru.

 

Тут по лазарусу типа учебника:
http://wiki.lazarus.freepascal.org/Lazarus_Tutorial/ru

 

У Борланда мне нравится встроенная "Помощь", хоть и по английски, зато четко описано и почти на каждую функцию есть пример ее использования. Дельфи я выучил по встроенной помощи, хотя с английским у меня очень слабо!
Да и сейчас пишу в Дельфи, т.к. в нем можно очень быстро "нарисовать" и интерфейс.
Больший набор может дать язык Си. Под Си есть Си Билдер, который так же, как и в Дельфи позволяет легко "нарисовать" интерфейс.

Что касается русскоязычной помощи, то по Дельфи и паскалю в интернете не сложно найти примеры решения нужных задач с описанием.
Есть и специальные сайты, вроди "Королевство Delphi"...

 

Wladimir_TS
Требуется - читать данные из устройства и изображать осциллограммы на экране.
Смотря какие требование к отображению. Есть большая вероятность, что http://www.gnuplot.info избавит от необходимости изобретать велосипед и потребуется лишь простенькая консольная программа.

 

У меня gnuplot есть, кстати.
Я так понимаю, Ваша идея заключается в том, чтобы брать данные с устройства простенькой программой, затем передавать их в gnuplot?
А сам я решил, что на фиг лазарус, буду перл учить. Учебников туча, в том числе на самом сайте перла, да и сам интерпретатор имеется. Обращаться к портам из перла тоже реально, видимо, раз один товарищ из него через COM-порт телетайпом управлял.

 

Num Lock
Ну да, программа может по данным от устройства генерить файл с графиком -- текстовый, в виде пар x, y, и через пайп передавать gnuplot-у команду а-ля plot 'plot.dat' with lines. Тут есть пара ньюансов, но в целом всё очень просто. А по возможностям в плане рисования графиков gnuplot уделывает вхлам любой самописный велосипед.

 

Знаю, игрался с gnuplot когда-то, много её функций перепробовал. Так что это хорошая мысль её использовать.
Но, как я понял, есть одно ограничение: движущиеся осциллограммы она ведь выводить не будет? Чтобы вывести следующий кадр, её надо закрыть, а затем снова запустить с новыми данными?
Или существует способ её заставить движущиеся графики выводить в реальном времени?

 

Num Lock
Или существует способ её заставить движущиеся графики выводить в реальном времени?
- Существует, да собственно никаких ухищрений и не надо. Пишем прогу, которая циклически обновляет файл с координатами и после каждого обновления печатает на stdout команду plot... и флашит stdout (т.е. fflush(stdout) в Cи). Запускаем прогу с перенаправлением вывода (через пайп) на gluplot, т.е. что-то типа "myprogram | pgnuplot -" (это если под виндой, как Wladimir_TS хочет -- там два варианта exe: wgnuplot и pgnuplot). Знак "-" после gnuplot нужен для приёма команд со stdin, т.е. в данном случае с пайпа. Конечно, интервал между командами должен быть таким, чтобы gnuplot успевал отрисовать график. Примерно так. Может и другие способы есть, я особо не пытался разбираться.