реклама на сайте
подробности

 
 
> Прошу помощи в написании простой тестовой программы, Пошаговое обучение программированию в VS2010
Alla_student
сообщение Oct 12 2012, 00:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Здравствуйте!

Хочу сразу признаться - опыта не было в написании программ на VS (C++). Есть опыт в написании на C. Но по долгу службы приходится обучаться этому ремеслу. Летом в небольшие промежутки свободного времени проштудировала книжки предложенные здесь для прочтения - в голове сумбур. Для наведения порядка ... в моей голове и реального обучению, лучше начинать писать небольшую программу. Так, как рядом (на работе) спецов нет, хочу попросить вас, уважаемые форумчане, помочь в написании программы - примера. Я не прошу написать всю программу (хотя полный текст ее был более удобен для изучения и повторения), а хотя бы части, функциональные блоки программы. Мне будет удобно, изучая эти блоки, понять приемы визуального программирования и соответсвенно написать свою. Теперь к требованиям этой тестовой - учебной программе:
Программа или блоки программы дложны быть написаны нв Visual Studio желательно более старшей версии - 2010 (но не старше). Можно и в предыдущих вплоть до VC6.0. Гланое условие - без использования NET. После запуска программы, она должна работать (открыть порт COM1 со стандартной установкой: старт; 8бит; стоп скорость 9600 бод, если будет предварительный выбор порта с установкой параметров- то еще лучше) и принимать три байта: 1й байт всегда стартовая метка CA, второй - B1 отображается на панели светодиодов сменой картики светодиод зажен или нет, третий B2 отображается на графике ось ординат от 0 до 255. Ось абцисс - номер пакета от 0 до 255, при превышении номера пакета 255 - опять с нуля и стирается старый график. Программа так же должна уметь передавать по COM порту данные при нажатии кнопки send - два байта: первый - стартовый CA, второй - байт данных устанавливатся битовым полем Checkbox. При запуске программы должна открыться база SQL и внее должны записываться принимаемые данные соответственно по полям: N - номер пакета (long?), B1 байт данных (char), второй байт данных B2 (char). При выходе из программы база закрывается.
Из всего выше перечисленного хочется понять как работать:
1) Работа с COM портом. Прием и передача простых 2-х и 3-х байтовых пакетов.
2) Работа с базой данных SQL инициализация, открытие, запись (желательно чтение) полей, закрытие. Возможно что то я не учла.
3) Вывод форматированных данных в окно большим шрифтом (что то типа индикатора, дисплея).
4) Вывод бинарных данных в поле имитирующее светодиоды.
5) Опрос поля Checkbox (хотелось конечно, чтобы было поле выключателей OFF/ON).
6) Работа с Plot функцикей - вывод графика.
Дополнительно - этого нет выше:
7) Вывод принятых данных в виде лога (в скролинговое окно - забыла как оно точно называется) и в тектовый файл, который то же надо открыть или создать, если его нет, ну и закрыть после работы с ним.

Прошу, кто имеет немного свободного времени, помочь в написании этих блоков программы, желательно с небольшими комментариями. Пускай не сразу все, а по кусочкам.. Я думаю это многим поможет, не только мне, в написании своих первых программ на VS, да и не только.
Заранее Спасибо!
Далее в виде изображения требования к программе:

Сообщение отредактировал Alla_student - Oct 12 2012, 00:22
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fox1
сообщение Oct 15 2012, 10:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 3-05-06
Из: Нижний Новгород
Пользователь №: 16 725



Насчет SECURITY_ATTRIBUTES sm.gif))

lpSecurityAttributes - pointer to the SECURITY_ATTRIBUTES structure which specifies if the descriptor returned can be inherited by the child procedures. If lpSecurityAttributes is NULL, the descriptor cannot be inherited.

Windows NT: lpSecurityDescriptor member of the SECURITY_ATTRIBUTES structure defines the protection descriptor for the object. If lpSecurityAttributes is NULL the object gets the default protection descriptor. The system of the end file must support the protection on files and folders for this parameter to apply this effect to the files.

Windows 95: lpSecurityDescriptor member of the SECURITY_ATTRIBUTES structure is ignored.

lpSecurityDescriptor Адрес дескриптора безопасности для объекта, который контролирует совместное владение им. Если этот член равен NULL, то для объекта назначается дескриптор безопасности по умолчанию для текущего процесса.

lpSecurityDescriptor

A pointer to a SECURITY_DESCRIPTOR structure that controls access to the object. If the value of this member is NULL, the object is assigned the default security descriptor associated with the access token of the calling process. This is not the same as granting access to everyone by assigning a NULL discretionary access control list (DACL). By default, the default DACL in the access token of a process allows access only to the user represented by the access token.

For information about creating a security descriptor, see Creating a Security Descriptor.


у меня же там многозадачность ... три независимых потока .... а порт один ... и асинхронность важна ... Overlapped I/O sm.gif)

Overlapped I/O is not as straightforward as nonoverlapped I/O, but allows more flexibility and efficiency. A port open for overlapped operations allows multiple threads to do I/O operations at the same time and perform other work while the operations are pending. Furthermore, the behavior of overlapped operations allows a single thread to issue many different requests and do work in the background while the operations are pending.


По поводу дизайнера форм - все там есть (можно конечно это назвать это дизайнером диалогов, сути не меняет), под MFC вы можете создать SDI, MDI и Dialog Based приложение.

Создание приложения MFC
http://msdn.microsoft.com/ru-ru/library/9es9d1k4.aspx

книжек по MFC полно
купить
http://www.ozon.ru/context/detail/id/90544/

скачать
http://rutracker.org/forum/viewtopic.php?t=89854
http://rutracker.org/forum/viewtopic.php?t=991026
http://c2p.ru/cpp/a-meshkov-yu-tixomirov-visual-c-i-mfc.html

ни чего в MFC сложного нет sm.gif))
да ... кода будет много ... C# намного проще
да и систем без FrameWorkа давно уже нет sm.gif)))
он везде нужен sm.gif))

вот готовое

CSerialPort v1.27 An MFC class for Win32 serial ports
http://www.naughter.com/serialport.html

Serial library for C++
http://www.codeproject.com/Articles/992/Serial-library-for-C

CSerialCom - A Simple Class for Implementing Serial Communication in Win-9X/2000
http://www.codeproject.com/Articles/2973/C...ementing-Serial

Dynamic LED Control
http://www.codeproject.com/Articles/2654/Dynamic-LED-Control

Static LED Control
http://www.codeguru.com/cpp/controls/contr...LED-Control.htm

An MFC Chart Control with Enhanced User Interface
http://www.codeproject.com/Articles/317712...-User-Interface

VCTERM
http://msdn.microsoft.com/en-us/library/ms...v=vs.71%29.aspx
http://melfarihi.free.fr/mfc/general/vcterm/

A communication class for serial port
http://www.codeguru.com/cpp/i-n/network/se...serial-port.htm

MFC class for serial communication
http://www.codeforge.com/article/490

Sending Commands in Visual C++ ( With MFC ) to ADR Interfaces
http://ontrak.net/mfc.htm




Сообщение отредактировал fox1 - Oct 15 2012, 13:14
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 16 2012, 10:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(fox1 @ Oct 15 2012, 14:46) *
Windows NT: lpSecurityDescriptor member of the SECURITY_ATTRIBUTES structure defines the protection descriptor for the object. If lpSecurityAttributes is NULL the object gets the default protection descriptor. The system of the end file must support the protection on files and folders for this parameter to apply this effect to the files.

lpSecurityDescriptor Адрес дескриптора безопасности для объекта, который контролирует совместное владение им. Если этот член равен NULL, то для объекта назначается дескриптор безопасности по умолчанию для текущего процесса.
Так и есть. И чем он 'дескриптор безопасности по умолчанию для текущего процесса' не угодил?

Цитата
у меня же там многозадачность ... три независимых потока .... а порт один ...
MultiThreading != MultiTasking. Независимые потоки не требуют наследуемых дескрипторов портов, и установки безопасности по умолчанию их тоже устроят.

Цитата
и асинхронность важна ... Overlapped I/O sm.gif)
Вам да, а вот ТС нет. Я не говорю, что Overlapped IO вообще не нужен - просто он не нужен в задаче ТС

Цитата
По поводу дизайнера форм - все там есть (можно конечно это назвать это дизайнером диалогов, сути не меняет), под MFC вы можете создать SDI, MDI и Dialog Based приложение.
Залез в VS2010, создал приложение MFC. Дизайнера форм (в понимании RAD системы) не нашел - банальный редактор диалогов. Но есть развитые визарды, которые автоматически создают все необходимые классы и переменные для всех контролов диалога. С ActiveX работать умеет. Так что для создания приложения для ТС подойдет.

Цитата
ни чего в MFC сложного нет sm.gif))
С этим никто не спорит
Цитата
да ... кода будет много ... C# намного проще
В этом и суть - MFC отмирает в пользу .NET причем с рекордной скоростью. Изучать его сейчас с нуля смысла нет - можно не успеть применить на практике полученные знания rolleyes.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 16 2012, 11:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(XVR @ Oct 16 2012, 13:47) *
Залез в VS2010, создал приложение MFC. Дизайнера форм (в понимании RAD системы) не нашел - банальный редактор диалогов.

Дизайнер форм есть (точно такой же как в C#), но нужно создавать не MFC приложение, а Windows Form Application.
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 16 2012, 11:24
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Артём_ @ Oct 16 2012, 15:21) *
Дизайнер форм есть (точно такой же как в C#), но нужно создавать не MFC приложение, а Windows Form Application.
fox1 нашел там какой то дизайнер форм для MFC приложения, вот я и в недоумении wacko.gif
Для WFA там дизайнер конечно есть, но это тот самый .NET, о который тут сломано столько копий rolleyes.gif
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Oct 20 2012, 12:33
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Вопрос по QT -> QT c официального сайта Nokia скачивается как еволюшин 30 дней, можно его как то подлечить на предмет продления жизненного цикла?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alla_student   Прошу помощи в написании простой тестовой программы   Oct 12 2012, 00:10
- - fox1   Ну уж если так хочется на Visual C++ (на C# намног...   Oct 12 2012, 05:17
- - XVR   Жуть. Пляски с SecurityDescriptor не нужны - вы ж...   Oct 12 2012, 09:18
|- - Alla_student   Цитата(XVR @ Oct 12 2012, 12:18) Жуть. П...   Oct 12 2012, 10:44
|- - SyncLair   Цитата(XVR @ Oct 12 2012, 13:18) К ТС - п...   Oct 20 2012, 15:50
|- - Alla_student   Цитата(SyncLair @ Oct 20 2012, 19:50) Под...   Oct 20 2012, 16:15
|- - SyncLair   Цитата(Alla_student @ Oct 20 2012, 20:15)...   Oct 20 2012, 16:42
- - fox1   SecurityDescriptor обязателен начиная с Windows XP...   Oct 12 2012, 11:22
|- - Alla_student   Цитата(fox1 @ Oct 12 2012, 14:22) Securit...   Oct 12 2012, 11:30
|- - XVR   Цитата(fox1 @ Oct 12 2012, 15:22) Securit...   Oct 12 2012, 11:58
|- - Alla_student   Цитата(XVR @ Oct 12 2012, 14:58) ... Угу,...   Oct 12 2012, 13:15
|- - XVR   Цитата(Alla_student @ Oct 12 2012, 17:15)...   Oct 13 2012, 09:18
|- - Alla_student   Цитата(XVR @ Oct 13 2012, 13:18) ... Вам ...   Oct 13 2012, 12:41
||- - RabidRabbit   Цитата(Alla_student @ Oct 13 2012, 16:41)...   Oct 15 2012, 05:34
||- - XVR   Цитата(Alla_student @ Oct 13 2012, 16:41)...   Oct 15 2012, 08:00
||- - Alla_student   Цитата(XVR @ Oct 15 2012, 11:00) Запросы ...   Oct 15 2012, 10:03
|- - _pv   RE: Прошу помощи в написании простой тестовой программы   Oct 13 2012, 13:23
|- - Alla_student   Цитата(_pv @ Oct 13 2012, 16:23) ну с под...   Oct 13 2012, 18:26
|- - _pv   Цитата(Alla_student @ Oct 14 2012, 00:26)...   Oct 13 2012, 19:49
- - fox1   Ок )) Начните с создания приложения Visual С++ MF...   Oct 12 2012, 11:41
- - fox1   SecurityDescriptor обязателен начиная с Windows XP...   Oct 12 2012, 12:29
|- - RabidRabbit   Цитата(fox1 @ Oct 12 2012, 16:29) Это код...   Oct 12 2012, 13:00
|- - _Артём_   Цитата(RabidRabbit @ Oct 12 2012, 16:00) ...   Oct 12 2012, 13:17
- - Genadi Zawidowski   Вот так выглядела моя программа, написанная по пох...   Oct 12 2012, 16:12
|- - Alla_student   Цитата(Genadi Zawidowski @ Oct 12 2012, 20...   Oct 12 2012, 21:39
- - Genadi Zawidowski   Да не пропал я... Вы упомянули о хотении добавлят...   Oct 13 2012, 21:08
|- - Alla_student   Вопрос ко всем: Насколько я поняла, в VS2010 конст...   Oct 15 2012, 00:04
|- - XVR   -- дубль получился   Oct 16 2012, 10:57
- - RabidRabbit   Зачем сразу CMAKE, когда QT'шный qmake замечат...   Oct 20 2012, 18:31
|- - SyncLair   Цитата(RabidRabbit @ Oct 20 2012, 22:31) ...   Oct 20 2012, 18:51
|- - Alla_student   Цитата(RabidRabbit @ Oct 20 2012, 21:31) ...   Oct 21 2012, 14:27
|- - Cosmojam   Цитата(Alla_student @ Oct 21 2012, 17:27)...   Oct 21 2012, 15:54
- - Владимир Иванов   очень интересно   Oct 21 2012, 15:34
- - яман-тау   Может здесь что нибудь найдете   Oct 21 2012, 16:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016