Обслуживание кнопок и потенциометров (1061576)
Текст из файла
Обслуживание кнопок и потенциометров
-
Создадим новый проект с диалоговым окном. Пусть оно выглядит примерно так:
-
Факт нажатия на кнопки интерфейсной платы или поворот потенциометров не являются событиями для среды Windows. Чтобы сохранять соответствие между состоянием аппаратных средств на плате и экранных форм на диалоговой панели, необходимо достаточно часто опрашивать эти элементы и обновлять изображение на экране компьютера. Для этого вполне подойдет программный таймер, рассмотренный ранее. Назовем его MY_TIMER. В начало программы вставим фрагмент:
//-----------------------
#include "urc220.h"
CURC220 urc; // Создание объекта интерфейсной платы
int init_1_device(); // Прототип функции инициализации
#define MY_TIMER 100 //номер таймера
int mes_ini=-1;// выполнена ли инициализация платы
UCHAR in0=0,in1=0,in2=0,in3=0; //состояние кнопки
//-----------------------
-
Добавим четыре файла для работы с интерфейсной платы. В конец текста нашей программы допишем функцию инициализации int init_1_device(){…}.
-
В функции инициализации диалога установим граничные значения индикаторов и запустим таймер:
// TODO: Add extra initialization here
///////////////////////////////////////////////
SetTimer(MY_TIMER,50,NULL); //физическая установка таймера
m_adc_0.SetRange(0,1023);// Установка мин-макс индикатора
m_adc_1.SetRange(0,1023);// Установка мин-макс индикатора
//////////////////////////////////////////
-
Основные действия производим при каждом срабатывании таймера.
void CADCDlg::OnTimer(UINT_PTR nIDEvent)
// Срабатывание таймера
{
if(mes_ini<0) return;// Если плата не подсоединена, то завершаем
urc.DeviceRead(); // Чтение состояния платы
for(int j=0;j<8;j++)
urc.DeviceSetOutput(j, 0); // Предварительно гасим все светодиоды
// Установка чек-боксов при нажатии кнопок
urc.DeviceGetInput(0,&in0);// Чтение состояния кнопки 0
CheckDlgButton (IDC_IN_0, !in0);// Установка чек-бокса вход 0
urc.DeviceGetInput(1,&in1);// Чтение состояния кнопки 1
CheckDlgButton (IDC_IN_1, !in1);// Установка чек-бокса вход 1
urc.DeviceGetInput(2,&in2);// Чтение состояния кнопки 2
CheckDlgButton (IDC_IN_2, !in2);// Установка чек-бокса вход 2
urc.DeviceGetInput(3,&in3);// Чтение состояния кнопки 3
CheckDlgButton (IDC_IN_3, !in3);// Установка чек-бокса вход 3
// Зажигание пар светодиодов при нажатии кнопок
if(in0==0){urc.DeviceSetOutput(0,1);urc.DeviceSetOutput(1,1);}
if(in1==0){urc.DeviceSetOutput(2,1);urc.DeviceSetOutput(3,1);}
if(in2==0){urc.DeviceSetOutput(4,1);urc.DeviceSetOutput(5,1);}
if(in3==0){urc.DeviceSetOutput(6,1);urc.DeviceSetOutput(7,1);}
//Установка позиции индикатора 0
USHORT adc2;// Позиция потенциометра
urc.DeviceGetADC (2,&adc2); //Считывание позиции потенциометра
m_adc_0.SetPos(adc2); // Установка индикатора
char PosizP0[5]; // буфер для результата
itoa(adc2,PosizP0,10); // перевести целое значение в строку
CString strP0; strP0 = PosizP0; // замена типа аргумента
SetDlgItemText(IDC_STATIC_ADC_0, strP0); //Вывести строку в объект
USHORT adc3;// Позиция потенциометра 1
urc.DeviceGetADC (3,&adc3); //Считывание позиции потенциометра
m_adc_1.SetPos(adc3); // Установка индикатора
char PosizP1[5]; // буфер для результата
itoa(adc3,PosizP1,10); // перевести целое значение в строку
CString strP1; strP1 = PosizP1; // замена типа аргумента
SetDlgItemText(IDC_STATIC_ADC_1, strP1); //Вывести строку в объект
urc.DeviceWrite();// Запись в плату
CDialog::OnTimer(nIDEvent);
}
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














