- •1.1 Задание для работы
- •1.2 Теоретические сведения
- •1.2.1 Устройства в Спектр-2
- •1.2.2 Структура устройства
- •1.2.3 Тактовая функция
- •1.2.4 Экспортируемые функции
- •1.3 Содержание отчета
- •1.4 Варианты задания
- •1.5 Приложение А Настройки проекта Visual Studio для создания библиотеки
- •1.6 Приложение Б Алгоритм создания устройства
4
#define ILS_MY_2ND_DEVICE 7001
// –––––––––––––––––––––––- и т.д. для всех устройств int dev0;
LPSYSPARAM sysp;
DWORD __stdcall devGetDevices(
int n0, // Индекс первого устройства (получаем от основной программы) LPSYSPARAM _sysp,//Указатель на параметры системы (общие для всех библиотек) SA_PROC* saproc, // Указатель на основной массив процедур устройств HIMAGELIST himl // Набор иконок всех устройств
)
{
int i;
// Инициализируем глобальные переменные полученными данными sysp = _sysp;
dev0 = n0;
/* Очень удобно задать индекс, соответствующий самому первому устройству в вашей библиотеке, и использовать его при определении порядкового номера устройства. Например, порядковый номер
ILS_MY_1ST_DEVICE-ILS_NULL=0 (отсчет с нуля) А при обращении к ресурсу устройства (например, иконке) используется собственно индекс, например ILS_MY_1ST_DEVICE
*/
// Вызываем служебную функцию инициализации
lpDeviceBase* devs = init_base_device( n0, MAX_DEVS, saproc );
//Заполняем массив указателей на базовое устройство адресами производных устройств devs[ILS_MY_1ST_DEVICE-ILS_NULL] = new my1stdevice; devs[ILS_MY_2ND_DEVICE-ILS_NULL] = new my2nddevice;
//–––––––––––––––––––––––- и т.д. для всех устройств
//Заполняем наш сектор иконок
for (i = n0; i < n0+ MAX_DEVS; i++) ImageList_ReplaceIcon(himl, i,
LoadIcon(hInst, MAKEINTRESOURCE(i+ILS_NULL-n0))); return 1; // Нормальное завершение
}
Более подробно процесс написания устройств приведен в файле userdll2.doc
в папке spectr/doc.
1.3Содержание отчета
Отчет к лабораторной работе должен содержать:
1.Текст задания, вариант.
2.Листинг программы.
3.Скриншот подтверждения верной работы устройства.
5
1.4Варианты задания
Для определения варианта используется номер студенческого билета (последняя цифра) N и номер в списке журнала группы k. X = k%11;
Вариант |
Устройство |
|
Описание |
|
|
Количество |
Количество |
(x) |
|
|
|
|
|
входов |
выходов |
1 |
Выбор |
|
На каждом |
такте |
N |
1 |
|
|
максимума |
|
выбирается |
|
|
|
|
|
|
|
максимальное |
|
|
|
|
|
|
|
значение и выдается |
|
|
||
|
|
|
на выход |
|
|
|
|
2 |
Деление |
на |
Входные |
отсчеты |
N |
N |
|
|
константу |
|
делятся на константу |
|
|
||
|
|
|
(N) и подаются на |
|
|
||
|
|
|
соответствующие |
|
|
||
|
|
|
выходы |
|
|
|
|
3 |
Инвертер |
|
Все входные отсчеты |
N |
N |
||
|
|
|
меняют |
знак |
и |
|
|
|
|
|
подаются на выход |
|
|
||
4 |
Интегратор |
|
Входные |
отсчеты |
N |
N |
|
|
|
|
накапливаются |
и |
|
|
|
|
|
|
подаются |
|
на |
|
|
|
|
|
соответствующие |
|
|
||
|
|
|
выходы |
|
|
|
|
5 |
Ограничитель |
Если уровеньотсчета |
N |
N |
|||
|
уровня |
|
на соответствующем |
|
|
||
|
|
|
выходе больше N, то |
|
|
||
|
|
|
он равен N |
|
|
|
|
6 |
Перемножитель |
Перемножаются |
N |
1 |
|||
|
|
|
отсчеты |
со |
всех |
|
|
|
|
|
входовиподаютсяна |
|
|
||
|
|
|
выход |
|
|
|
|
7 |
Сумматор |
|
Суммируются |
|
N |
1 |
|
|
|
|
отсчеты |
со |
всех |
|
|
|
|
|
входовиподаютсяна |
|
|
||
|
|
|
выход |
|
|
|
|
8 |
Усилитель |
|
Отсчет с |
каждого |
N |
N |
|
|
|
|
входа усиливается в |
|
|
||
|
|
|
k раз |
|
|
|
|
9 |
ГТИ |
|
Генерируется |
|
0 |
1 |
|
|
|
|
тактовый |
сигнал с |
|
|
6
|
|
шириной |
N+1 и |
|
|
|
|
периодом 2*(N+1)+1 |
|
|
|
10 |
Генератор |
Генерируется сигнал |
0 |
1 |
|
|
Синус |
с частотой |
сигнала |
|
|
|
|
N*1000 Гц |
|
|
|
11 |
Генератор |
Генерируется сигнал |
0 |
1 |
|
|
Пилообразный |
с периодом N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.5 Приложение А Настройки проекта Visual Studio для создания библиотеки
Необходимо создать пустой проект.
В настройках проекта необходимо выбрать платформу «WIN32». После этого «Свойства конфигурации» - «Общие» и в пункте «Тип конфигурации» выбрать «Динамическая библиотека (.dll)».
Рисунок 2 Выбор типа конфигурации
Затем там во вкладке «Дополнительно»в пункте «Набор символов»выбрать«Не задано»
7
Рисунок 3 Настройки набора символов
После этого во вкладке «С/С++» - «Общие» в пункте «Дополнительные каталоги включаемых файлов» указать путь до папки include, которая находится в папке sdk.
Рисунок 4 Путь к дополнительным заголовочным файлам
В разделе "Свойства конфигурации -> Компоновщик -> Ввод" добавить в "Дополнительные зависимости" библиотеку comctl32.lib;
А в разделе «Файл определения модуля» указать имя файла .def