tugoboss
Интересующийся
Offline
|
|
« : 07-01-2010 20:51 » |
|
Здравствуйте!
Сам я программист-схемотехник устройств на микроконтроллерах. Пишу на языке С.
Постоянно встает задача, связать свои устройства с компьютером. Нужно создать: - несложное оконное приложение - с парой кнопок - работа с COM-портом - данные от устройства визуализировать в виде графика, меняющего в реальном времени.
Сейчас изучаю С++, идёт сложновато.
Подскажите, какую среду выбрать для написания программ?
Коллега советует Microsoft Studio 6.0 и тип проекта "Приложение MFC". Студия нагенерила кучу кода в пустом проекте, нифига не понятно.
Что делать? - изучать С++ дальше и учить MFC - использовать какую-то другую среду и библиотеку визуализации (есть какие то бесплатны). Но на Студию надо переходить когда-нибудь полюбому. - ваш вариант?
Времени особенно нет, нужно сделать чтобы хоть как-то работала программа, она по сути тестовая.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #1 : 07-01-2010 20:57 » |
|
tugoboss, думаю, что с MFC забираться долго придется. Для быстро подойдет Delphi или Borland C++ Builder. Бесплатных версий не знаю. MS VC с MFC тоже не бесплатная, замечу.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #2 : 07-01-2010 21:01 » |
|
tugoboss, с нуля действительно будет долговато разбираться... А так - MFC это самое оно. Если что спрашивай - подскажу, включая и по 6 студии )
|
|
|
Записан
|
|
|
|
tugoboss
Интересующийся
Offline
|
|
« Ответ #3 : 07-01-2010 21:10 » |
|
Спасибо, коллеги! Значит нужно собраться с силами Алексей1153++, что посоветуете почитать для быстрого старта (в моей ситуации)? Книги по С++ есть, читаю. Кстати, не смог найти ни одной книги по среде Visual Studio 6.0. По более поздним есть и много. Дельфи это ж Паскаль, немного в сторону...
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #4 : 07-01-2010 21:35 » |
|
Ещё в качестве быстрого варианта может подойти .NET (VisualBasic или C#) - всё-таки, там попроще с управлением ресурсами, да и в целом, меньше лишних деталей. А для пары кнопок, работы с COM-портом и рисования графиков в .NET найдётся всё, что нужно. Но, конечно, это средство посовременнее, и не везде подойдёт.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 08-01-2010 05:56 » |
|
tugoboss, ну как бы 6-я студия считается устаревшей (ну есть чуток ), а вообще - читать там нечего, книг не знаю. Создаёшь проект MFC - и вперёд .NET - быстро проектировать, но медленно будет работать, а кроме того будет не везде запускаться или придётся тащить с собой немалый по объёму фреймфорк. Лично я добровольно за .NET не сяду. Ну а попробовать тебе никто не мешает )
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #6 : 08-01-2010 08:27 » |
|
.NET - быстро проектировать, но медленно будет работать Этим летом я выяснил и доказал заказчику, что данное утверждение - не более чем сплетни, распускаемые завистниками Скорость работы ниже, чем у кода на C++, примерно на 1-3%, и стиль кодирования больше влияет на производительность решения, чем разница в эффективности компиляторов. Ещё добавить к этому грамотную стратегию сборки мусора, и получится решение, аналогичное решению на C++, но с гораздо меньшими трудозатратами на написание и сопровождение.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #7 : 08-01-2010 08:44 » |
|
Dimka, не начинай холивар скорость работы любого проекта в первую очередь определяется квалификацией программера. именно из неё вытекают и стиль кодирования, и стратегии, и прочая муть. на великолепном борландовском компилере умудряются лабать монстров, которые грузятся по полчаса. в то время как тот же GlassFish на тормозной джаве с её виртуальной машиной спокойно тянет корпоративный документооборот по сабжу. tugoboss, разбираться легче на примере. нагугли примеры на C++ для работы с ком-портом, задача у тебя типовая, не удивлюсь, если нароешь готовый монитор ком-порта с исходниками, и не один. выбери наиболее сходный с твоей задачей, и начинай потихоньку подкручивать под себя код. а конкретные детали реализации ребята всегда подскажут.
|
|
|
Записан
|
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #8 : 08-01-2010 08:50 » |
|
tugoboss, думаю, что с MFC забираться долго придется. Для быстро подойдет Delphi или Borland C++ Builder. Бесплатных версий не знаю. MS VC с MFC тоже не бесплатная, замечу.
Ром, а ты не путаешь? разве MS 2008 exPress платная? или на ней нельзя такое написать?
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #9 : 08-01-2010 09:29 » |
|
Игорь, она бесплатная, но в ней нет MFC.
зы В смысле - нет мастера проектов для создания приложений с использованием MFC.
|
|
« Последнее редактирование: 08-01-2010 09:33 от Джон »
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #10 : 08-01-2010 09:45 » |
|
Джон, т.е. в ней нельзя создать форму средствами виндового апи, кинуть на неё пару кнопок, создать и вывести панель, запустить таймер, открыть ком-порт как файл на чтение, по таймеру опрашивать комп-порт и отрисовывать график на панели? я вообще не очень понимаю, зачем тут MFC, но С++ - не мой диагноз, к счастью
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #11 : 08-01-2010 14:24 » |
|
Нет, речь не о том, что это можно сделать. Ессно это можно. Просто Рома поставил акцент именно на том, что Студия с поддержкой MFC - платная. Ты же имел ввиду экспрес версию, в которой её (MFC) нет.
А логика тут простая. Если уж поставлено условие С++ и Студия, то выбор тут небогатый - чистый Win API и MFC. Второй позволяет решать задачи построения UI гораздо проще и быстрее. Собственно когда говорят о вижулстудии и С++, то практически всегда подразумевают MFC. Догма.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Вад
|
|
« Ответ #12 : 08-01-2010 18:10 » |
|
Кстати, поддержка .NET в Express-студии, если мне память не изменяет, полная, с полноценным редактором ресурсов и т.п. (собственно, наверное, с MFC - это такой пиар-ход дотНета )
|
|
|
Записан
|
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #13 : 08-01-2010 18:54 » |
|
Джон, да ему же не менеджер скинов писать. панель, две кнопки (старт/стоп), чтение ком-порта и отрисовка по таймеру. понравится язык - воткнётся в MFC, torrents.ru никто пока не отменял. а там - всё есть. но на данном этапе... у парня - конкретная задача, не надо там лишнего городить, имхо захочет - нагородит сам.
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #14 : 08-01-2010 19:38 » |
|
Игорь, Я просто отреагировал на:
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #15 : 08-01-2010 20:33 » |
|
Джон, прости, друже, я просто нервенный какой-то в последнее время
|
|
|
Записан
|
|
|
|
tugoboss
Интересующийся
Offline
|
|
« Ответ #16 : 14-01-2010 11:47 » |
|
Спасибо, нашел примеры, работаю с СОМ-портом. Как по-простому нарисовать график? У меня 24 датчика, соотв. 24 отсчета по горизонтали. Обычный график - линия, соединяющая точки.
Можно максимум просто(пока): всё в одном окне, нажимаю кнопку - график обновляется.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #17 : 14-01-2010 11:52 » |
|
tugoboss, данные как хранишь ?
можно применить std::vector<BYTE>
а рисовать на контексте при помощи CDC::PolyLine , предварительно рассчитав нужный огрызок значений в виде CPoint-точек
|
|
« Последнее редактирование: 14-01-2010 12:19 от Алексей1153++ »
|
Записан
|
|
|
|
tugoboss
Интересующийся
Offline
|
|
« Ответ #18 : 14-01-2010 11:55 » |
|
Данные складываю в двумерный массив. Но это старые привычки, может можно как-то по-умнее, учитывая, что датчиков у меня много.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #19 : 14-01-2010 12:00 » |
|
примени вектор векторов - меньше путаницы будет для данного случая
std::vector< std::vector<DATAELEMENT> > m_Array;
где DATAELEMENT - структура одного элемента данных.
m_Array.Resize(N); - установишь 6 лучей данных
Для PolyLine тоже можно вектор вместо массива применить
std::vector<CPoint>
только при передаче в функцию осторожнее с размерами и синхронизировать нужно, если поток не один
Ещё - тебе в реальном времени желательно графики показывать или можно и позже ?
|
|
« Последнее редактирование: 14-01-2010 12:20 от Алексей1153++ »
|
Записан
|
|
|
|
tugoboss
Интересующийся
Offline
|
|
« Ответ #20 : 14-01-2010 12:31 » |
|
Спасибо, буду разбираться. Реалтайм не жесткий, задержка в 0.5 секунды допустима.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #21 : 14-01-2010 12:33 » |
|
за полсекунды можно много наворотить ) На среднем причём компе.
|
|
|
Записан
|
|
|
|
|