Реферат: Компьютерное моделирование для исследования физических явлений в нефтедобыче

case CH_RFP:

fnmrtLoadGradChannel(ndev+1,(XBPInt16)buf,len,0,0);

break;

default:

return -1;

}

return 0;

}

Организация класса работы с устройствами

Для работы с устройствами был разработан отдельный класс – CHardWare . В связи с имеющимися различными уровнями доступа для удобства было разработано три уровня абстракции работы с устройствами.

1. Ввод/вывод слов в регистры устройств

2. Ввод/вывод команд и данных в память устройств спектрометра

3. Ввод/вывод массивов в память устройств

Пример использования различных уровней абстракции для записи данных в устройство

1. Ввод/вывод слов в регистры устройств

void CHardWare::OUTWORD(WORD adr,WORD val);
void CHardWare::INWORD(WORD adr,WORD *val);

2. Ввод/вывод команд и данных в память устройств спектрометра

DWORD CHardWare::writeword(UINT ndev, WORD val);
DWORD CHardWare::readword(UINT ndev, WORD *val);
DWORD CHardWare::resetaddr(UINT ndev);
DWORD CHardWare::incraddr(UINT ndev);

3. Ввод/вывод массивов в память устройств

int CHardWare::GetMemSize(UINT ndev);
int CHardWare::GetMask(UINT ndev);
int CHardWare::WriteBuf(UINT ndev,PWORD buf,int len);
int CHardWare::ReadBuf(UINT ndev,PWORD buf,int len);

Программная часть

Рисунок 4. Структура программы тестирования спектрометра

Режим 1. Запись данных на устройство, чтение данных с устройства, проверка (сравнение записанных и считанных данных).

Режим 2. Запись данных на устройство, чтение данных с устройства, проверка, повтор до обнаружения первой ошибки.

Режим 3. Запись или чтение на указанный адрес порта ввода/вывода однократно.

Режим 4. Циклическое повторение записи или чтения с интервалом, указанным пользователем.

Если организовать запуск функции тестирования в основном потоке, то во время её выполнения работа с интерфейсом программы, включая кнопку Стоп , будут недоступны, а так же не будет производиться прорисовка результатов выполнения. Режим стресс-тестирования (режим 2) может занять длительное время, а режим циклического тестирования (режим 4) вообще не сможет быть остановлен. Поэтому при нажатии кнопки Пуск в зависимости от указанных пользователем параметров тестирующая функция запускается в отдельном потоке.

void Cmain::OnStart()

{

DWORD ExitCode;

CString pusk; //состояние кнопки пуск

К-во Просмотров: 441
Бесплатно скачать Реферат: Компьютерное моделирование для исследования физических явлений в нефтедобыче