Разработка системы для анализа неисправностей в работе радиолокационного оборудования

Характеристика области применения системы для анализа работы радиолокационного оборудования. Изучение методики тестирования программного обеспечения, которое может работать автономно и в составе других программных продуктов. Описание листинга программы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.12.2015
Размер файла 3,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

int iPK_OSO_BOGOCH_930; /* БОГОЧ-930 - 4

- 5 бит в iPK_OSO */

int iPK_OSO_BOTVCH_935; /* БОТВЧ-935 - 6

- 7 бит в iPK_OSO */

int iPK_OSO_BOSO_931; /* БОСО-931 - 8

- 9 бит в iPK_OSO */

int iPK_OSO_YOCN27_1973; /* ЯОСН27-1973 - 10

- 11 бит в iPK_OSO */

int iPK_OSO_YOCN8_1968; /* ЯОСН8-1968 - 12

- 13 бит в iPK_OSO */

int iPK_OSO_YOCN5_KRP_1980; /* ЯОСН5-КРП-1980 - 14

- 15 бит в iPK_OSO */

int iPK_OSO_SIGNAL; /* Сигналы ОСО - 16

- 17 бит в iPK_OSO */

int iPK_OSO_SIGNAL_BOGOCH_930_BCO; /* БОГОЧ-930 -

БЦО 0 - 1 бит в iPK_OSO_SIGNAL */

int iPK_OSO_SIGNAL_BOTVCH_935_BOVCH; /* БОТВЧ-935 -

БОВЧ 2 - 3 бит в iPK_OSO_SIGNAL */

int iPK_OSO_SIGNAL_BOSO_931_BCO; /* БОСО-931 -

БЦО 4 - 5 бит в iPK_OSO_SIGNAL */

int iPK_OSO_SIGNAL_YOSN27_1973_BCO; /* ЯОСН27-1973 -

БЦО 6 - 7 бит в iPK_OSO_SIGNAL */

int iPK_OSO_SIGNAL_YOSN8_1968_BOVCH; /* ЯОСН8-1968 -

БОВЧ 8 - 9 бит в iPK_OSO_SIGNAL */

int iPK_OSO_SIGNAL_YOSN5_KRP_1980_BOVCH;/* ЯОСН5-КРП-1980 -

БОВЧ 10 - 11 бит в iPK_OSO_SIGNAL */

int iPK_BOSVCH; /* БОСВЧ - 2 -

3 бит в iPK */

int iPK_PE_SVCH; /* ПЭ-СВЧ - 4 -

5 бит в iPK */

int iPK_PE_SVCH_Y0SN5_KRP_1980; /* Ячейки Я0СН5-КРП-

1980 - 0 - 1 бит в iPK_PE_SVCH */

int iPK_PE_SVCH_Y0SN8_1986; /* Ячейки Я0СН8-1986

- 2 - 3 бит в iPK_PE_SVCH */

int iPK_PE_SVCH_PE_TVCH; /* Прибор ПЭ-ТВЧ

- 4 - 5 бит в iPK_PE_SVCH */

int iPK_INFO; /* Инф. обмен ПК - 6 -

7 бит в iPK */

int iPK_SIGNAL; /* Сигналы - 8 -

9 бит в iPK */

int iPK_SIGNAL_BOSVCH_PE_SVCH; /* Cигналы БОСВЧ - ПЭ-

СВЧ - 0 - 1 бит в iPK_SIGNAL */

/*** Результат функционального контроля АР-ПК ***/

int iAR_PK;

/*** Результат функционального контроля АС-16 ***/

int iAS_16[2];

int iAS_16_B0PI_909_01; /* Блок Б0ПИ-909-01

- 0 - 11 бит в iAS_16[ 0] */

int iAS_16_B0PI_909; /* Блок Б0ПИ-909

- 12 - 15 бит в iAS_16[ 0] */

int iAS_16_FAR_A[NUM_MODUL_PHAR]; /* Модули ФАР-А №1-16

- 0 в iAS_16[1] - 31 бит в iAS_16[ 1] */

int iAS_16_Y0SUL64_1866; /* Ячейка Я0СУЛ64-1866

№1-12 - 0 - 23 бит в iAS_16_FAR_A[№ - 1] */

int iAS_16_YOSUL64_1888; /* Ячейка Я0СУЛ64-1888

- 24 - 25 бит в iAS_16_FAR_A[№ - 1] */

int iAS_16_FAR_A_FLASH; /* Флэш-память

- 26 - 27 бит в iAS_16_FAR_A[№ - 1] */

}

stFcSide[_NUM_SIDE_];

/*** Результат функционального контроля ПСС-А ***/

int iPSS_A;

int iPSS_A_B0PSS_932; /* Блок Б0ПСС-932

- 0 - 1 бит в int iPSS_A */

int iPSS_A_Y14MDM15U_1941; /* Ячейка Я14МДМ15У-

1941 - 2 - 3 бит в int iPSS_A */

int iPSS_A_Y14MDM5U_5_1943; /* Ячейка Я14МДМ5У-5-

1943 - 4 - 5 бит в int iPSS_A */

int iPSS_A_Y14SNPSS_A_1975; /* Ячейка Я14СНПСС-А-

1975 - 6 - 7 бит в int iPSS_A */

int iPSS_A_Y140UR_1954; /* Ячейки Я140УР-1954

- 8 - 11 бит в int iPSS_A */

int iPSS_A_MOD_KOMMUTAC; /* Модуль

коммутационный - 12 - 13 бит в int iPSS_A */

/*** Результат функционального контроля 3П96-1 ***/

int i3P96_1;

int i3P96_1_PE_RM21; /* Прибор ПЭ-РМ21 - 0

- 7 бит в i3P96_1 */ /* Он же ВИП - питает ВУМ */

int i3P96_1_PE_RM21_BP_60_20; /* Блок БП-60-20

- 0 - 7 бит в i3P96_1_PE_RM21 */

int i3P96_1_PE_RM21_BP2_27_30; /* Блок БП2-27-30

- 8 - 15 бит в i3P96_1_PE_RM21 */

int i3P96_1_PE_RM21_M_2KSHP12; /* Модуль М-2К.ШП.12

- 16 - 23 бит в i3P96_1_PE_RM21 */

int i3P96_1_PE_RM51; /* Прибор ПЭ-РМ51 - 8

- 11 бит в i3P96_1 */

int i3P96_1_PE_RM51_FV; /* Блок ФВ

- 0 - 3 бит в i3P96_1_PE_RM51 */

int i3P96_1_PE_RM51_KZI_1_50HZ_4A; /* Блок КЗИ-1 50Гц 4А

- 4 - 7 бит в i3P96_1_PE_RM51 */

int i3P96_1_PE_RM51_KZI_1_50HZ_10A; /* Блок КЗИ-1 50Гц 10А

- 8 - 11 бит в i3P96_1_PE_RM51 */

int i3P96_1_PE_RM43; /* Прибор ПЭ-РМ43 - 12

- 13 бит в i3P96_1 */

int i3P96_1_PE_RM43_BPU_27_22_4_2; /* Блок БПУ-27-22/4/2

- 0 - 7 бит в i3P96_1_PE_RM43 */

int i3P96_1_PE_RM43_BP2_27_30; /* Блок БП2-27-30

- 8 - 15 бит в i3P96_1_PE_RM43 */

/*** Результат функционального контроля АРМ ***/

int iARM;

/*** Результат функционального контроля линий связи по граням ***/

struct FCSIDELINES_

{

/* Результат функционального контроля информационных линий */

int iINFO;

int iINFO_1_ARM_PPK; /* Информационный обмен

осн. АРМ - ППК - 0 - 1 бит в iINFO */

int iINFO_2_ARM_PPK; /* Информационный обмен

рез. АРМ - ППК - 2 - 3 бит в iINFO */

int iINFO_1_ARM_PK; /* Информационный обмен

осн. АРМ - ПК - 4 - 5 бит в iINFO */

int iINFO_2_ARM_PK; /* Информационный обмен

рез. АРМ - ПК - 6 - 7 бит в iINFO */

int iINFO_1_PPK_AS_16; /* Информационный обмен

осн. ППК - АС-16 - 8 - 9 бит в iINFO */

int iINFO_2_PPK_AS_16; /* Информационный обмен

рез. ППК - АС-16 - 10 - 11 бит в iINFO */

/* Результат функционального контроля сигнальных линий связи */

int iSIGNAL;

int iSIGNAL_PPK_PK_F0TI; /* Cигналы F0 и Tи

от ППК в ПК - 0 - 1 бит в iSIGNAL */

int iSIGNAL_PPK_PSS_A_TIT0TARM; /* Cигналы Tи, T0,

Tарм от ППК в ПСС-А - 2 - 3 бит в iSIGNAL */

int iSIGNAL_PK_PSS_A_TI; /* Cигналы Tи

от ПК в ПСС-А - 4 - 5 бит в iSIGNAL */

}

stFcSideLines[_NUM_SIDE_];

/*** Результат функционального контроля информационных линий связи ***/

int iINFO;

int iINFO_1_ARM_PSS_A; /* Информационный обмен

осн. АРМ - ПСС-А - 0 - 1 бит в iINFO */

int iINFO_2_ARM_PSS_A; /* Информационный обмен

рез. АРМ - ПСС-А - 2 - 3 бит в iINFO */

/*** Результат функционального контроля сигнальных линий связи ***/

int iSIGNAL;

int iSIGNAL_PSS_A_ARM_TARM; /* Cигнал Tарм от ПСС-А в

АРМ - 0 - 1 бит в iSIGNAL */

}

FUNCTIONALCONTROL;

Тесты 1.1, 1.2, 1.3 служат для проверки диалогового окна “3Ц-96-2”. Для теста 1.1 в соответствующие разряды величин из структуры функционального контроля записываются значения “00”, означающие исправность основных элементов, из которых состоит изделие 3Ц96-2. Для теста 1.2 в соответствующие разряды величин из структуры функционального контроля записываются значения “01”, означающие неисправность основных элементов, из которых состоит изделие 3Ц96-2. И наконец, для теста 1.3 в соответствующие разряды величин из структуры функционального контроля записываются значения “11”, означающие отказ основных элементов, из которых состоит изделие 3Ц96-2. Результаты исполнения тестов видны на экране монитора. Ниже приводятся скриншоты экрана монитора при выполнении тестов.

Аналогично, тесты 2.1, 2.2, 2.3 служат для проверки диалогового окна “ПРИБОР АС-16”, тесты 3.1, 3.2, 3.3 служат для проверки диалогового окна “ПРИБОР ОСО”, тесты 4.1, 4.2, 4.3 служат для проверки диалогового окна “ПРИБОР ОСО-ПК”, тесты 5.1, 5.2, 5.3 служат для проверки диалогового окна “3П96-1”, тесты 6.1, 6.2, 6.3 служат для проверки диалогового окна “ИЗДЕЛИЕ ПК”, тесты 7.1, 7.2, 7.3 служат для проверки диалогового окна “ИЗДЕЛИЕ ППК”, тесты 8.1, 8.2, 8.3 служат для проверки диалогового окна “ПРИБОР ПСС-А”, тесты 9.1, 9.2, 9.3 служат для проверки диалогового окна “ПРИБОР ВУМ”.

Тест 1.1

Рис. 31

Тест 1.2

Рис. 32

Тест 1.3

Рис. 33

ТЕСТ 2.1

Рис. 34

ТЕСТ 2.2

Рис. 35

ТЕСТ 2.3

Рис. 36

ТЕСТ 3.1

Рис. 37

ТЕСТ 3.2

Рис. 38

ТЕСТ 3.3

Рис. 39

ТЕСТ 4.1

Рис. 40

ТЕСТ 4.2

Рис. 41

ТЕСТ 4.3

Рис. 42

ТЕСТ 5.1

Рис. 43

ТЕСТ 5.2

Рис. 44

ТЕСТ 5.3

Рис. 45

ТЕСТ 6.1

Рис. 46

ТЕСТ 6.2

Рис. 47

ТЕСТ 6.3

Рис. 48

ТЕСТ 7.1

Рис. 49

ТЕСТ 7.2

Рис. 50

ТЕСТ 7.3

Рис. 51

ТЕСТ 8.1

Рис. 52

ТЕСТ 8.2

Рис. 53

ТЕСТ 8.3

Рис. 54

ТЕСТ 9.1

Рис. 55

ТЕСТ 9.2

Рис. 56

ТЕСТ 9.3

Рис. 57

Кроме модульного тестирования, для программы использовались системное тестирование на стенде изделия 3Ц-96-2, когда во время работы всего изделия включались и выключались поочередно его составные элементы, при этом контролировалось изменение цвета соответствующего прямоугольника на соответствующем диалоговом окне.

2.3 Результаты отладки

Результатом отладки является текст работоспособной программы, не содержащей ошибок, выявленных в результате тестирования.

Текст файла main.cpp

#include <QtGui/QApplication>

#include "fk.h"

#include <QtGui>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

setlocale(LC_ALL, "Russian");

QTextCodec* codec = QTextCodec::codecForName("Windows-1251");

QTextCodec::setCodecForTr(codec);

QTextCodec::setCodecForCStrings(codec);

QTextCodec::setCodecForLocale(codec);

fk w;

w.show();

return a.exec();

}

Текст файла fk.cpp

#include "fk.h"

#include "ui_fk.h"

#include <QMessageBox>

#include <QtGui>

#include "structFK.h"

#include "p96_1.h"

#include "ppk.h"

#include "as_16.h"

#include "pk.h"

#include "pss_a.h"

#include "info.h"

#include "sxema.h"

int nomer_ppk=0;

int nomer_as_16=0;

int nomer_pk=0;

int priz_radio=1;

QString

p1g="c:/FKO/images/FK/1.bmp",

p1r="c:/FKO/images/FK/1r.bmp",p1o="c:/FKO/images/FK/1o.bmp",

p2g="c:/FKO/images/FK/2.bmp",

p2r="c:/FKO/images/FK/2r.bmp",p2o="c:/FKO/images/FK/2o.bmp",

p3g="c:/FKO/images/FK/3.bmp",

p3r="c:/FKO/images/FK/3r.bmp",p3o="c:/FKO/images/FK/3o.bmp",

p4g="c:/FKO/images/FK/4.bmp",

p4r="c:/FKO/images/FK/4r.bmp",p4o="c:/FKO/images/FK/4o.bmp",

p5g="c:/FKO/images/FK/5.bmp",

p5r="c:/FKO/images/FK/5r.bmp",p5o="c:/FKO/images/FK/5o.bmp",

p6g="c:/FKO/images/FK/6.bmp",

p6r="c:/FKO/images/FK/6r.bmp",p6o="c:/FKO/images/FK/6o.bmp",

p7g="c:/FKO/images/FK/7.bmp",

p7r="c:/FKO/images/FK/7r.bmp",p7o="c:/FKO/images/FK/7o.bmp",

p8g="c:/FKO/images/FK/8.bmp",

p8r="c:/FKO/images/FK/8r.bmp",p8o="c:/FKO/images/FK/8o.bmp",

p9g="c:/FKO/images/FK/9.bmp",

p9r="c:/FKO/images/FK/9r.bmp",p9o="c:/FKO/images/FK/9o.bmp",

p10g="c:/FKO/images/FK/10.bmp",

p10r="c:/FKO/images/FK/10r.bmp",p10o="c:/FKO/images/FK/10o.bmp",

p11g="c:/FKO/images/FK/11.bmp",

p11r="c:/FKO/images/FK/11r.bmp",p11o="c:/FKO/images/FK/11o.bmp",

p12g="c:/FKO/images/FK/12.bmp",

p12r="c:/FKO/images/FK/12r.bmp",p12o="c:/FKO/images/FK/12o.bmp",

p13g="c:/FKO/images/FK/13.bmp",

p13r="c:/FKO/images/FK/13r.bmp",p13o="c:/FKO/images/FK/13o.bmp",

p14g="c:/FKO/images/FK/14.bmp",

p14r="c:/FKO/images/FK/14r.bmp",p14o="c:/FKO/images/FK/14o.bmp",

p15g="c:/FKO/images/FK/15.bmp",

p15r="c:/FKO/images/FK/15r.bmp",p15o="c:/FKO/images/FK/15o.bmp",

p16g="c:/FKO/images/FK/16.bmp",

p16r="c:/FKO/images/FK/16r.bmp",p16o="c:/FKO/images/FK/16o.bmp",

p17g="c:/FKO/images/FK/17.bmp",

p17r="c:/FKO/images/FK/17r.bmp",p17o="c:/FKO/images/FK/17o.bmp",

p18g="c:/FKO/images/FK/18.bmp",

p18r="c:/FKO/images/FK/18r.bmp",p18o="c:/FKO/images/FK/18o.bmp",

p22g="c:/FKO/images/FK/22.bmp",

p22r="c:/FKO/images/FK/22r.bmp",p22o="c:/FKO/images/FK/22o.bmp",

p46g="c:/FKO/images/FK/46.bmp",

p46r="c:/FKO/images/FK/46r.bmp",p46o="c:/FKO/images/FK/46o.bmp",

p47g="c:/FKO/images/FK/47.bmp",

p47r="c:/FKO/images/FK/47r.bmp",p47o="c:/FKO/images/FK/47o.bmp",

p48g="c:/FKO/images/FK/48.bmp",

p48r="c:/FKO/images/FK/48r.bmp",p48o="c:/FKO/images/FK/48o.bmp";

QString str_sxema_my;

QString str_text_my;

QStringList str_sxema;

QStringList str_text;

QString namefiledoc,namefilepdf;

#define siz_buf 541 //количество слов во входном файле FKO.dat

FUNCTIONALCONTROL stFuncControl;//структура функционального контроля

int mas[siz_buf];//Массив слов во входном файле FKO.dat

//////////////////////////////////////////////////////////////////////////

fk::fk(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::fk)

{

//Грузим то, что нарисовали в fk.ui (общий вид )

ui->setupUi(this);

//Открываем файл для считывания имени программы, связанной с doc

QFile file1("c:\\FKO\\vspomfile\\progdoc.txt");

file1.open(QIODevice::ReadOnly);

namefiledoc = file1.read(100);//количество цифр и еще /r/n

//Открываем файл для считывания имени программы, связанной с pdf

QFile file2("c:\\FKO\\vspomfile\\progpdf.txt");

file2.open(QIODevice::ReadOnly);

namefilepdf = file2.read(100);//количество цифр и еще /r/n

//Открываем файл

QFile file("c:\\FKO\\vspomfile\\FKO.txt");

if (!file.open(QIODevice::ReadOnly)) {

QMessageBox::critical(this, tr("Error"), tr("Could not open file"));

return;

}

//Считываем из файла

QByteArray line;

for(int i=0;i<siz_buf;i++)

{

line = file.read(12);//количество цифр(10) и еще /r/n

mas[i]=atoi(line);

}

//Формируем структуру функционального контроля

memcpy(&(stFuncControl.stFcSide[0].iPPK),&(mas[0]),sizeof(stFuncControl));

//Анализируем stFuncControl и на кнопки накладываем картинки

proc();

//Связываем сигналы-слоты при нажатии на кнопки-приборы

//3П96-1

connect(ui->pushButton1,SIGNAL(clicked()),this,SLOT(proc_button1()));

//АС-16

connect(ui->pushButton3,SIGNAL(clicked()),this,SLOT(proc_button3()));

connect(ui->pushButton4,SIGNAL(clicked()),this,SLOT(proc_button4()));

connect(ui->pushButton7,SIGNAL(clicked()),this,SLOT(proc_button7()));

connect(ui->pushButton8,SIGNAL(clicked()),this,SLOT(proc_button8()));

//ПК

connect(ui->pushButton10,SIGNAL(clicked()),this,SLOT(proc_button10()));

connect(ui->pushButton12,SIGNAL(clicked()),this,SLOT(proc_button12()));

connect(ui->pushButton13,SIGNAL(clicked()),this,SLOT(proc_button13()));

connect(ui->pushButton15,SIGNAL(clicked()),this,SLOT(proc_button15()));

//ППК

connect(ui->pushButton11,SIGNAL(clicked()),this,SLOT(proc_button11()));

connect(ui->pushButton14,SIGNAL(clicked()),this,SLOT(proc_button14()));

//ПСС-А

connect(ui->pushButton16,SIGNAL(clicked()),this,SLOT(proc_button16()));

//Радио-кнопки

connect(ui->radioButton1,SIGNAL(clicked()),this,SLOT(proc_radio()));

connect(ui->radioButton2,SIGNAL(clicked()),this,SLOT(proc_radio()));

connect(ui->radioButton3,SIGNAL(clicked()),this,SLOT(proc_radio()));

ui->radioButton1->setChecked(true);

//пример печати

}

/////////////////////////////////////////////////////////////////////////////

fk::~fk()

{

delete ui;

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_radio()

{

QPalette pal=palette();

if(ui->radioButton1->isChecked())

{

pal.setColor(backgroundRole(),QColor(qRgb(208,196,170)));

priz_radio=1;

p18g="c:/FKO/images/FK/18.bmp";

p18r="c:/FKO/images/FK/18r.bmp";p18o="c:/FKO/images/FK/18o.bmp";

p22g="c:/FKO/images/FK/22.bmp";

p22r="c:/FKO/images/FK/22r.bmp";p22o="c:/FKO/images/FK/22o.bmp";

p46g="c:/FKO/images/FK/46.bmp",

p46r="c:/FKO/images/FK/46r.bmp";p46o="c:/FKO/images/FK/46o.bmp";

p47g="c:/FKO/images/FK/47.bmp",

p47r="c:/FKO/images/FK/47r.bmp";p47o="c:/FKO/images/FK/47o.bmp";

p48g="c:/FKO/images/FK/48.bmp",

p48r="c:/FKO/images/FK/48r.bmp";p48o="c:/FKO/images/FK/48o.bmp";

}

if(ui->radioButton2->isChecked())

{

pal.setColor(backgroundRole(),QColor(qRgb(185,220,250)));

priz_radio=2;

p18g="c:/FKO/images/FK/18_.bmp";

p18r="c:/FKO/images/FK/18_r.bmp";p18o="c:/FKO/images/FK/18_o.bmp";

p22g="c:/FKO/images/FK/22_.bmp";

p22r="c:/FKO/images/FK/22_r.bmp";p22o="c:/FKO/images/FK/22_o.bmp";

p46g="c:/FKO/images/FK/46_.bmp",

p46r="c:/FKO/images/FK/46_r.bmp";p46o="c:/FKO/images/FK/46_o.bmp";

p47g="c:/FKO/images/FK/47_.bmp",

p47r="c:/FKO/images/FK/47_r.bmp";p47o="c:/FKO/images/FK/47_o.bmp";

p48g="c:/FKO/images/FK/48_.bmp";

p48r="c:/FKO/images/FK/48_r.bmp";p48o="c:/FKO/images/FK/48_o.bmp";

}

if(ui->radioButton3->isChecked())

{

pal.setColor(backgroundRole(),QColor(qRgb(192,192,192)));

priz_radio=3;

p18g="c:/FKO/images/FK/18__.bmp";

p18r="c:/FKO/images/FK/18__r.bmp";p18o="c:/FKO/images/FK/18__o.bmp";

p22g="c:/FKO/images/FK/22__.bmp";

p22r="c:/FKO/images/FK/22__r.bmp";p22o="c:/FKO/images/FK/22__o.bmp";

p46g="c:/FKO/images/FK/46__.bmp",

p46r="c:/FKO/images/FK/46__r.bmp";p46o="c:/FKO/images/FK/46__o.bmp";

p47g="c:/FKO/images/FK/47__.bmp",

p47r="c:/FKO/images/FK/47__r.bmp";p47o="c:/FKO/images/FK/47__o.bmp";

p48g="c:/FKO/images/FK/48__.bmp";

p48r="c:/FKO/images/FK/48__r.bmp";p48o="c:/FKO/images/FK/48__o.bmp";

}

setPalette(pal);

proc();

}

////////////////////////////////////////////////////////////////////////////////////

void fk::proc_button1()

{

if(priz_radio==1)

{

P96_1 p96_1;

p96_1.exec();

}

if(priz_radio==2)

{

str_text_my="c:\\FKO\\text\\P96_1\\P96_1.txt";

info info;

info.exec();

}

if(priz_radio==3)

{

/*

ShellExecute(NULL, (LPWSTR)"open",

(LPWSTR)"c:\\FKO\\sxema\\P96_1\\P96_1.bmp", NULL, NULL,SW_SHOWNORMAL);

*/

str_sxema_my="c:\\FKO\\sxema\\P96_1\\P96_1.bmp";

SXEMA sxema;

sxema.exec();

}

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button3()

{

nomer_as_16=1;

AS_16 as_16;

as_16.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button4()

{

nomer_as_16=3;

AS_16 as_16;

as_16.exec();

}

////////////////////////////////////////////////////////////////////////////

void fk::proc_button7()

{

nomer_as_16=2;

AS_16 as_16;

as_16.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button8()

{

nomer_as_16=4;

AS_16 as_16;

as_16.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button10()

{

nomer_pk=1;

PK pk;

pk.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button12()

{

nomer_pk=3;

PK pk;

pk.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button13()

{

nomer_pk=2;

PK pk;

pk.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button15()

{

nomer_pk=4;

PK pk;

pk.exec();

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button11()

{

if(priz_radio==1)

{

nomer_ppk=1;

PPK ppk;

ppk.exec();

}

if(priz_radio==2)

{

}

if(priz_radio==3)

{

m_process = new QProcess(this);

//с помощью программы открываем файл pdf

str_sxema<<"c:\\FKO\\sxema\\PPK\\PPK.pdf";

m_process->start(namefilepdf,str_sxema);

}

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc_button14()

{

nomer_ppk=2;

PPK ppk;

ppk.exec();

}

////////////////////////////////////////////////////////////////////////////

void fk::proc_button16()

{

if(priz_radio==1)

{

PSS_A pss_a;

pss_a.exec();

}

if(priz_radio==2)

{

m_process = new QProcess(this);

str_text<<"c:\\FKO\\text\\PSS_A\\PSS_A.doc";

//с помощью программы открываем файл doc

m_process->start(namefiledoc,str_text);

}

if(priz_radio==3)

{

}

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc1(int a,QPushButton *but,QString G,QString O,QString R)

{

if(a==ISPR)

{

QPixmap pix(G);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

if(a==OTKAZ)

{

QPixmap pix(R);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

{

QPixmap pix(O);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

}

////////////////////////////////////////////////////////////////////////////

void fk::proc2(int b,int c,QPushButton *but,QString G,QString O,QString R)

{

if((b==ISPR)||(c==ISPR))

{

QPixmap pix(G);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

if((b==NEISPR)||(c==NEISPR))

{

QPixmap pix(O);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

// if((b==OTKAZ)||(c==OTKAZ))

{

QPixmap pix(R);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

}

/////////////////////////////////////////////////////////////////////////////

void fk::proc3(int b,int c,QPushButton *but,QString G,QString O,QString R)

{

if((b==ISPR)&&(c==ISPR))

{

QPixmap pix(G);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

if((b==OTKAZ)&&(c==OTKAZ))

{

QPixmap pix(R);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

{

QPixmap pix(O);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

}////////////////////////////////////////////////////////////////////////////

void fk::proc()

{

int i,b,c,a[4],d[4],k,b1,b2,b3,e[4];

//3П96-1..................................................

//три группы приборов в 3П96-1

//если в какой-то группе отказ, то отказ

//иначе если в какой-то группе неисправность, то неисправность

b1=stFuncControl.i3P96_1&0xff;

b2=stFuncControl.i3P96_1&0xf00;

b3=stFuncControl.i3P96_1&0x3000;

if(stFuncControl.i3P96_1==0) b=0;

else if((b1==0xff)||(b2==0xf00)||(b3==0x3000)) b=3;

else b=1;

proc1(b,ui->pushButton1,p1g,p1o,p1r);

//AC-16...................................................

for(k=0;k<4;k++)

{

b1=stFuncControl.stFcSide[k].iAS_16[0];

b2=stFuncControl.stFcSide[k].iAS_16[1];

if((b1==0)&&(b2==0)) a[k]=ISPR;

else

{

a[k]=NEISPR;

for(i=0;i<0xffff;i+=2)

{

if(((b1>>i)&0x3)==OTKAZ)

a[k]=OTKAZ;

}

for(i=0;i<31;i+=2)

{

if(((b2>>i)&0x3)==OTKAZ)

a[k]=OTKAZ;

}

}

}

// AC-16 1

proc1(a[0],ui->pushButton3,p3g,p3o,p3r);

// AC-16 2

proc1(a[1],ui->pushButton7,p7g,p7o,p7r);

// AC-16 3

proc1(a[2],ui->pushButton4,p4g,p4o,p4r);

// AC-16 4

proc1(a[3],ui->pushButton8,p8g,p8o,p8r);

// AP-ПК........................................................

for(k=0;k<4;k++)

{

b=stFuncControl.stFcSide[k].iAR_PK;

if(b==0) a[k]=ISPR;

else

{

a[k]=NEISPR;

for(i=0;i<31;i+=2)

{

if(((b>>i)&0x3)==OTKAZ)

a[k]=OTKAZ;

}

}

}

// AP-ПК 1

proc1(a[0],ui->pushButton2,p2g,p2o,p2r);

// AP-ПК 2

proc1(a[1],ui->pushButton6,p6g,p6o,p6r);

// AP-ПК 3

proc1(a[2],ui->pushButton5,p5g,p5o,p5r);

// AP-ПК 4

proc1(a[3],ui->pushButton9,p9g,p9o,p9r);

// AC-16 и ППК информационная связь ....................................

for(k=0;k<4;k++)

{

a[k]=(stFuncControl.stFcSideLines[k].iINFO & 0x300)>>8;//основной канал

d[k]=(stFuncControl.stFcSideLines[k].iINFO & 0xC00)>>10;//резервный канал

}

// AC-16 1 и ППК1 1 информационная связь

proc2(a[0],d[0],ui->pushButton18,p18g,p18o,p18r);

// AC-16 2 и ППК2 2 информационная связь

proc2(a[1],d[1],ui->pushButton20,p18g,p18o,p18r);

// AC-16 3 и ППК1 3 информационная связь

proc2(a[2],d[2],ui->pushButton19,p18g,p18o,p18r);

// AC-16 4 и ППК2 4 информационная связь

proc2(a[3],d[3],ui->pushButton21,p18g,p18o,p18r);

// ПК ...................................................................

for(k=0;k<4;k++)

{

b=stFuncControl.stFcSide[k].iPK;

if(b==0) a[k]=ISPR;

else

{

a[k]=NEISPR;

for(i=0;i<0x3ff;i+=2)

{

if(((b>>i)&0x3)==OTKAZ)

a[k]=OTKAZ;

}

}

}

// ПК1

proc1(a[0],ui->pushButton10,p10g,p10o,p10r);

// ПК2

proc1(a[1],ui->pushButton13,p13g,p13o,p13r);

// ПК3

proc1(a[2],ui->pushButton12,p12g,p12o,p12r);

// ПК4

proc1(a[3],ui->pushButton15,p15g,p15o,p15r);

// ППК .................................................................

for(k=0;k<4;k++)

{

b=stFuncControl.stFcSide[k].iPPK;

if(b==0) a[k]=ISPR;

else

{

a[k]=NEISPR;

for(i=0;i<0x3ffff;i+=2)

{

if(((b>>i)&0x3)==OTKAZ)

a[k]=OTKAZ;

}

}

}

// ППК1

proc3(a[0],a[2],ui->pushButton11,p11g,p11o,p11r);

// ППК2

proc3(a[1],a[3],ui->pushButton14,p14g,p14o,p14r);

//сигнальные линии связи ПК и ПСС-А(4-5бит)..............................

for(k=0;k<4;k++)

{

a[k]=(stFuncControl.stFcSideLines[k].iSIGNAL & 0x30) >> 4;

}

// ПК1 и ПСС-А*/

proc1(a[0],ui->pushButton22,p22g,p22o,p22r);

// ПК3 и ПСС-А*/

proc1(a[2],ui->pushButton25,p22g,p22o,p22r);

// ПК2 и ПСС-А*/

proc1(a[1],ui->pushButton26,p22g,p22o,p22r);

// ПК4 и ПСС-А*/

proc1(a[3],ui->pushButton29,p22g,p22o,p22r);

//сигнальные линии связи ППК и ПСС-А (2-3бит).............................

for(k=0;k<4;k++)

{

a[k]=(stFuncControl.stFcSideLines[k].iSIGNAL & 0xC) >> 2;

}

// ППК1 1 и ПСС-А*/

proc1(a[0],ui->pushButton23,p22g,p22o,p22r);

// ППК1 3 и ПСС-А*/

proc1(a[2],ui->pushButton24,p22g,p22o,p22r);

// ППК2 2 и ПСС-А*/

proc1(a[1],ui->pushButton27,p22g,p22o,p22r);

// ППК2 4 и ПСС-А*/

proc1(a[3],ui->pushButton28,p22g,p22o,p22r);

//информац. линии связи ПК и АРМ(4-5бит).................................

for(k=0;k<4;k++)

{

a[k]=(stFuncControl.stFcSideLines[k].iINFO & 0x30) >> 4;

d[k]=(stFuncControl.stFcSideLines[k].iINFO & 0xC0) >> 6;

}

// ПК1 и АРМ*/

proc2(a[0],d[0],ui->pushButton48,p48g,p48o,p48r);

// ПК2 и АРМ*/

proc2(a[1],d[1],ui->pushButton52,p48g,p48o,p48r);

// ПК3 и АРМ*/

proc2(a[2],d[2],ui->pushButton51,p48g,p48o,p48r);

// ПК4 и АРМ*/

proc2(a[3],d[3],ui->pushButton55,p48g,p48o,p48r);

//информац. линии связи ППК и АРМ(0-1,2_3 бит)................................

for(k=0;k<4;k++)

{

a[k]= stFuncControl.stFcSideLines[k].iINFO & 0x3;

d[k]=(stFuncControl.stFcSideLines[k].iINFO & 0xC) >> 2;

}

// ППК1 1 и АРМ*/

proc2(a[0],d[0],ui->pushButton49,p48g,p48o,p48r);

// ППК1 3 и АРМ*/

proc2(a[2],d[2],ui->pushButton50,p48g,p48o,p48r);

// ППК2 2 и АРМ*/

proc2(a[1],d[1],ui->pushButton53,p48g,p48o,p48r);

// ППК2 4 и АРМ*/

proc2(a[3],d[3],ui->pushButton54,p48g,p48o,p48r);

// ППC-A.................................................................

c=stFuncControl.iPSS_A;

if(c==0) b=ISPR;

else

{

b=NEISPR;

for(i=0;i<31;i+=2)//0x3fff

{

if(((c>>i)&0x3)==OTKAZ)

b=OTKAZ;

}

}

proc1(b,ui->pushButton16,p16g,p16o,p16r);

// ARM..................................................................

c=stFuncControl.iARM;

if(c==0) b=ISPR;

else

{

b=NEISPR;

for(i=0;i<31;i+=2)//0x3fff

{

if(((c>>i)&0x3)==OTKAZ)

b=OTKAZ;

}

}

proc1(b,ui->pushButton17,p17g,p17o,p17r);

// ПСС-А и АРМ сиг.линии...................................................

b=stFuncControl.iSIGNAL & 0x3;//0-1 бит

proc1(b,ui->pushButton47,p47g,p47o,p47r);

// ПСС-А и АРМ информ.линии..................................................

b=stFuncControl.iINFO & 0x3;//осн. 0-1 бит

c=stFuncControl.iINFO & 0xC;//рез. 2-3 бит

proc2(b,c,ui->pushButton46,p46g,p46o,p46r);

}

Текст файла fk.h

#ifndef FK_H

#define FK_H

#include <QMainWindow>

#include <QtGui>

namespace Ui {

class fk;

}

class fk : public QMainWindow

{

Q_OBJECT

public:

explicit fk(QWidget *parent = 0);

~fk();

void proc();

void proc3(int b,int c,QPushButton *but,QString G,QString O,QString R);

void proc2(int b,int c,QPushButton *but,QString G,QString O,QString R);

void proc1(int a,QPushButton *but,QString G,QString O,QString R);

private slots:

void proc_button1();

void proc_button3();

void proc_button4();

void proc_button7();

void proc_button8();

void proc_button10();

void proc_button11();

void proc_button12();

void proc_button13();

void proc_button14();

void proc_button15();

void proc_button16();

void proc_radio();

private:

Ui::fk *ui;

QProcess * m_process;

};

#endif // FK_H

Текст файла as_16.cpp

#include "as_16.h"

#include "ui_as_16.h"

#include <QtGui>

#include "structFK.h"

extern int nomer_as_16;

int priz_radio_AS_16=0;

extern FUNCTIONALCONTROL stFuncControl;//структура функционального контроля

QString

p1AS_16g="c:/FKO/images/AS_16/1AS_16.bmp",

p1AS_16r="c:/FKO/images/AS_16/1AS_16r.bmp",p1AS_16o="c:/FKO/images/AS_16/1AS_16o.bmp",

p7AS_16g="c:/FKO/images/AS_16/7AS_16.bmp",

p7AS_16r="c:/FKO/images/AS_16/7AS_16r.bmp",p7AS_16o="c:/FKO/images/AS_16/7AS_16o.bmp",

p9AS_16g="c:/FKO/images/AS_16/9AS_16.bmp",

p9AS_16r="c:/FKO/images/AS_16/9AS_16r.bmp",p9AS_16o="c:/FKO/images/AS_16/9AS_16o.bmp",

p13AS_16g="c:/FKO/images/AS_16/13AS_16.bmp",

p13AS_16r="c:/FKO/images/AS_16/13AS_16r.bmp",p13AS_16o="c:/FKO/images/AS_16/13AS_16o.bmp";

AS_16::AS_16(QWidget *parent) :

QDialog(parent),

ui(new Ui::AS_16)

{

//Грузим то, что нарисовали в as_16.ui

ui->setupUi(this);

//Создаем виджет рисунка, и кладем его в лайаут

wgt1 = new QPaintWidget(this);

wgt2 = new QPaintWidget(this);

wgt3 = new QPaintWidget(this);

wgt4 = new QPaintWidget(this);

wgt5 = new QPaintWidget(this);

wgt6 = new QPaintWidget(this);

wgt7 = new QPaintWidget(this);

wgt8 = new QPaintWidget(this);

wgt9 = new QPaintWidget(this);

wgt10 = new QPaintWidget(this);

wgt11 = new QPaintWidget(this);

wgt12 = new QPaintWidget(this);

wgt13 = new QPaintWidget(this);

wgt14 = new QPaintWidget(this);

wgt15 = new QPaintWidget(this);

wgt16 = new QPaintWidget(this);

ui->gridLayout1->addWidget(wgt1);

ui->gridLayout2->addWidget(wgt2);

ui->gridLayout3->addWidget(wgt3);

ui->gridLayout4->addWidget(wgt4);

ui->gridLayout5->addWidget(wgt5);

ui->gridLayout6->addWidget(wgt6);

ui->gridLayout7->addWidget(wgt7);

ui->gridLayout8->addWidget(wgt8);

ui->gridLayout9->addWidget(wgt9);

ui->gridLayout10->addWidget(wgt10);

ui->gridLayout11->addWidget(wgt11);

ui->gridLayout12->addWidget(wgt12);

ui->gridLayout13->addWidget(wgt13);

ui->gridLayout14->addWidget(wgt14);

ui->gridLayout15->addWidget(wgt15);

ui->gridLayout16->addWidget(wgt16);

//Анализируем stFuncControl и на кнопки накладываем картинки

proc();

//Радио-кнопки

connect(ui->radioButton2_AS_16,SIGNAL(clicked()),this,SLOT(proc_radio()));

connect(ui->radioButton3_AS_16,SIGNAL(clicked()),this,SLOT(proc_radio()));

ui->radioButton2_AS_16->setChecked(true);

}

AS_16::~AS_16()

{

delete ui;

}

////////////////////////////////////////////////////////////////////////////////////

void AS_16::proc_radio()

{

QPalette pal=palette();

if(ui->radioButton2_AS_16->isChecked())

{

pal.setColor(backgroundRole(),QColor(qRgb(185,220,250)));

priz_radio_AS_16=2;

}

if(ui->radioButton3_AS_16->isChecked())

{

pal.setColor(backgroundRole(),QColor(qRgb(192,192,192)));

priz_radio_AS_16=3;

}

setPalette(pal);

}

////////////////////////////////////////////////////////////////////////////////////

void AS_16::proc1(int a,QPushButton *but,QString G,QString O,QString R)

{

if(a==ISPR)

{

QPixmap pix(G);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else

if(a==OTKAZ)

{

QPixmap pix(R);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

else//if(a==NEISPR)

{

QPixmap pix(O);

but->setIcon(QIcon(pix));

but->setIconSize(pix.size());

}

}

////////////////////////////////////////////////////////////////////////////////////

void AS_16::procA_1(unsigned short a,int *Nispr,int *Nneispr,int *Notkaz)

{

if((a&0x3)==ISPR)(*Nispr)++;

else if((a&0x3)==OTKAZ)(*Notkaz)++;

else (*Nneispr)++;

}

////////////////////////////////////////////////////////////////////////////////////

int AS_16::procA(int i,//грань

int j)//ячейка ЯОСУЛ64-1866

//ИСПРАВНО,НЕИСПРАВНО, ОТКАЗ для ЯОСУЛ64-1866

{

//анализируем A3,A4,A5,A6,A7,A9,A10,A11,A12,A13,A14,A15

//Пусть Nispr - число ячеек с ИСПРАВНО

//Пусть Nneispr - число ячеек с НЕИСПРАВНО

//Пусть Notkaz - число ячеек с ОТКАЗ

//Каких ячеек больше,тот и общий признак.

//Если одинаковое число, то общий признак для худшего варианта

int b=0,Nispr=0,Nneispr=0,Notkaz=0,k;

for(k=0;k<24;k=k+2)

{

procA_1((stFuncControl.stFcSide[i].iAS_16_FAR_A[j]&(0x3<<k))>>k,&Nispr,&Nneispr,&Notkaz);

}

if((Notkaz>=Nispr)&&(Notkaz>=Nneispr)) b=OTKAZ;

else if(Nneispr>=Nispr) b=NEISPR;

else b=ISPR;

return b;

}

////////////////////////////////////////////////////////////////////////////////////

void AS_16::proc()

{

int b,i;

b=-1;

i=nomer_as_16-1;

//...БОПИ 909-01..........................................................

b=stFuncControl.stFcSide[i].iAS_16[0]&0x3;

proc1(b,ui->pushButton1_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909-01..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0xc)>>2;

proc1(b,ui->pushButton2_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909-01..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0x30)>>4;

proc1(b,ui->pushButton3_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909-01..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0xc0)>>6;

proc1(b,ui->pushButton4_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909-01..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0x300)>>8;

proc1(b,ui->pushButton5_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909-01..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0xc00)>>10;

proc1(b,ui->pushButton6_AS_16,p1AS_16g,p1AS_16o,p1AS_16r);

//...БОПИ 909..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0x3000)>>12;

proc1(b,ui->pushButton7_AS_16,p7AS_16g,p7AS_16o,p7AS_16r);

//...БОПИ 909..........................................................

b=(stFuncControl.stFcSide[i].iAS_16[0]&0xc000)>>14;

proc1(b,ui->pushButton8_AS_16,p7AS_16g,p7AS_16o,p7AS_16r);

//...ЯОСУЛ64-1888(А2) 1..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[0]&(0x3000000>>24);

proc1(b,ui->pushButton9_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 2..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[1]&(0x3000000>>24);

proc1(b,ui->pushButton10_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 3..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[2]&(0x3000000>>24);

proc1(b,ui->pushButton11_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 4..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[3]&(0x3000000>>24);

proc1(b,ui->pushButton12_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 5..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[4]&(0x3000000>>24);

proc1(b,ui->pushButton17_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 6..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[5]&(0x3000000>>24);

proc1(b,ui->pushButton18_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 7..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[6]&(0x3000000>>24);

proc1(b,ui->pushButton19_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 8..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[7]&(0x3000000>>24);

proc1(b,ui->pushButton20_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 9..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[8]&(0x3000000>>24);

proc1(b,ui->pushButton25_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 10..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[9]&(0x3000000>>24);

proc1(b,ui->pushButton26_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 11..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[10]&(0x3000000>>24);

proc1(b,ui->pushButton27_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 12..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[11]&(0x3000000>>24);

proc1(b,ui->pushButton28_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 13..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[12]&(0x3000000>>24);

proc1(b,ui->pushButton33_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 14..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[13]&(0x3000000>>24);

proc1(b,ui->pushButton34_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 15.........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[14]&(0x3000000>>24);

proc1(b,ui->pushButton35_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1888(А2) 16..........................................................

b=stFuncControl.stFcSide[i].iAS_16_FAR_A[15]&(0x3000000>>24);

proc1(b,ui->pushButton36_AS_16,p9AS_16g,p9AS_16o,p9AS_16r);

//...ЯОСУЛ64-1866 1. .........................................................

b=procA(i,0);

proc1(b,ui->pushButton13_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 2. .........................................................

b=procA(i,1);

proc1(b,ui->pushButton14_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 3. .........................................................

b=procA(i,2);

proc1(b,ui->pushButton15_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 4. .........................................................

b=procA(i,3);

proc1(b,ui->pushButton16_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 5. .........................................................

b=procA(i,4);

proc1(b,ui->pushButton21_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 6. .........................................................

b=procA(i,5);

proc1(b,ui->pushButton22_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 7. .........................................................

b=procA(i,6);

proc1(b,ui->pushButton23_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 8. .........................................................

b=procA(i,7);

proc1(b,ui->pushButton24_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 9. .........................................................

b=procA(i,8);

proc1(b,ui->pushButton29_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 10. .........................................................

b=procA(i,9);

proc1(b,ui->pushButton30_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 11. .........................................................

b=procA(i,10);

proc1(b,ui->pushButton31_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 12. .........................................................

b=procA(i,11);

proc1(b,ui->pushButton32_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 13. .........................................................

b=procA(i,12);

proc1(b,ui->pushButton37_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 14. .........................................................

b=procA(i,13);

proc1(b,ui->pushButton38_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 15. .........................................................

b=procA(i,14);

proc1(b,ui->pushButton39_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

//...ЯОСУЛ64-1866 16. .........................................................

b=procA(i,15);

proc1(b,ui->pushButton40_AS_16,p13AS_16g,p13AS_16o,p13AS_16r);

}

Текст файла as_16.h

#ifndef AS_16_H

#define AS_16_H

#include <QDialog>

#include <QMainWindow>

#include "qpaintwidget.h"

#include <QtGui>

namespace Ui {

class AS_16;

}

class AS_16 : public QDialog

{

Q_OBJECT

public:

explicit AS_16(QWidget *parent = 0);

~AS_16();

void proc();

void proc1(int a,QPushButton *but,QString G,QString O,QString R);

void procA_1(unsigned short a,int *Nispr,int *Nneispr,int *Notkaz);

int procA(int i,int j);

private slots:

void proc_radio();

private:

Ui::AS_16 *ui;

QPaintWidget *wgt1,*wgt2,*wgt3,*wgt4,

*wgt5,*wgt6,*wgt7,*wgt8,

*wgt9,*wgt10,*wgt11,*wgt12,

*wgt13,*wgt14,*wgt15,*wgt16;

};

#endif // AS_16_H

Текст файла qpaintwidget.cpp

#include "qpaintwidget.h"

#include <QPainter>

#include <QPicture>

#include <QMessageBox>

#include <QDebug>

#include "structFK.h"

extern int nomer_as_16;

extern FUNCTIONALCONTROL stFuncControl;//структура функционального контроля

QPaintWidget::QPaintWidget(QWidget * parent) : QWidget(parent)

{

}

void QPaintWidget::proc_QPaintWidget(int number_far)

{

int i,ii,b,j;

QPainter p(this); // Создаём новый объект рисовальщика

p.setPen(QPen(Qt::black,2,Qt::SolidLine)); // Настройки рисования:перо

p.setFont(QFont("Arial",9,QFont::Bold)); // Настройки рисования:шрифт

//рисование прямоугольников

p.drawRect(1,1,width()-2,height()-2);

for(i=0;i<6;i++)

{

b=(stFuncControl.stFcSide[nomer_as_16-1].iAS_16_FAR_A[number_far-1]&(0x3<<(2*i)))>>(2*i);

if(b==ISPR) p.setBrush(QBrush(QColor(0, 255, 128)/*Qt::green*/,Qt::SolidPattern));

else

if(b==NEISPR) p.setBrush(QBrush(Qt::yellow,Qt::SolidPattern));

else

if(b==OTKAZ) p.setBrush(QBrush(Qt::red,Qt::SolidPattern));

else

p.setBrush(QBrush(QColor(192, 192, 192),Qt::SolidPattern));

p.drawRect(8+i*35,7,30,23);

}

for(i=0;i<6;i++)

{

b=(stFuncControl.stFcSide[nomer_as_16-1].iAS_16_FAR_A[number_far-1]&(0x3<<(2*(i+6))))>>(2*(i+6));

if(b==ISPR) p.setBrush(QBrush(QColor(0, 255, 128)/*Qt::green*/,Qt::SolidPattern));

else

if(b==NEISPR) p.setBrush(QBrush(Qt::yellow,Qt::SolidPattern));

else

if(b==OTKAZ) p.setBrush(QBrush(Qt::red,Qt::SolidPattern));

else

p.setBrush(QBrush(QColor(192, 192, 192),Qt::SolidPattern));

p.drawRect(8+i*35,7+30,30,23);

}

//рисование А1...А16

for(ii=0;ii<12;ii++)

{

if(ii<6){i=ii;j=0;} else {i=ii-6; j=1;}

QPoint point1 = QPoint( 8+3+i*35, 7+15+j*30 );

switch(ii)

{

case 0:p.drawText( point1, " A3" ); break;

case 1:p.drawText( point1, " A4" ); break;

case 2:p.drawText( point1, " A5" ); break;

case 3:p.drawText( point1, " A6" ); break;

case 4:p.drawText( point1, " A7" ); break;

case 5:p.drawText( point1, " A9" ); break;

case 6:p.drawText( point1, "A10" ); break;

case 7:p.drawText( point1, "A11" ); break;

case 8:p.drawText( point1, "A12" ); break;

case 9:p.drawText( point1, "A13" ); break;

case 10:p.drawText( point1, "A14" ); break;

case 11:p.drawText( point1, "A15" ); break;

}

}

}

int schet_number_far=0;

void QPaintWidget::paintEvent(QPaintEvent *) {

schet_number_far++;

if(schet_number_far>16)schet_number_far=1;

proc_QPaintWidget(schet_number_far);

}

Текст файла qpaintwidget.h

#ifndef QPAINTWIDGET_H

#define QPAINTWIDGET_H

#include <QWidget>

class QPaintEvent;

class QPaintWidget : public QWidget

{

Q_OBJECT

public:

QPaintWidget(QWidget * parent = 0);

protected:

void paintEvent(QPaintEvent *);

void proc_QPaintWidget(int number_far);

};

#endif // QPAINTWIDGET_H

Построение и тексты файлов oco.cpp, oco.h, oco_pk.cpp, oco_pk.h, p96_1.cpp, p96_1.h, pk.cpp, pk.h, ppk.cpp, ppk.h, pss_a.cpp, pss_a.h, vum.cpp,vum.h аналогичны файлам fk.cpp, fk.h.

3. Экология и охрана труда

Мной была выбрана тема «Влияние радиоволн на окружающую среду», поскольку мне было интересно, как нахождение рядом с приборами, генерирующими СВЧ, влияет на мое здоровье и здоровье моих коллег.

Радиоволны -- электромагнитное излучение с длинами волн в электромагнитном спектре длиннее инфракрасного света. Радиоволны имеют частоту от 3 кГц до 300 ГГц, и соответствующую длину волны от 1 миллиметра до 100 километров. Как и все другие электромагнитные волны, радиоволны распространяются со скоростью света. Естественными источниками радиоволн являются молнии и астрономические объекты. Искусственно созданные радиоволны используются для стационарной и мобильной радиосвязи, радиовещанияя. радиолокации и других навигационных систем, спутников связи, компьюторных сетей и других бесчисленных приложений. Различные частоты радиоволн по-разному распространяются в атмосфере Земли: длинные волны могут покрыть часть Земли очень последовательно, более короткие волны могут отражаться от ионосферы и распространяются по всему миру, и с ещё более короткими длинами радиоволны изгибаются или отражаются очень слабо и распространяются в пределах прямой видимости[ https://ru.wikipedia.org/wiki/Радиоволны].

Радиоволновая гигиена, или радио гигиена, -наука, решающая задачи по учету вредного действия энергии электромагнитных полей (ЭМП) во всем диапазоне радиоволн от десятков тысяч герц до тысяч гигагерц. Специфические свойства электромагнитных излучений СВЧ, особенно на участках сантиметровых и дециметровых волн, ставят этот диапазон в отношении биологической эффективности в особое положение. Техника радио гигиены включает в себя три основных аспекта: нормирование, т.е. определение на основе клинико-физиологических и биологических данных необходимого перечня биологически эффективных параметров воздействующего фактора (электромагнитного поля), предельно допустимых значений каждого из этих параметров и форму их представления. Обнаружения биологически значимых параметров и защиту-систему мероприятий инженерного плана, направленную на предотвращение или снижение до минимума вредных последствий воздействия. Превышение уровня или дозы предельно допустимых значений является основанием для проведения защитных мероприятий, которые оказываются наиболее трудоемкой и практически важной частью общей программы биологической защиты. Кроме организации и пропаганды определенных мер предосторожности, во многих случаях приходится применять сложные технические сооружения, снижающие уровень до необходимого минимума в границах защищаемого объекта. Применение подобных сооружений связанно с затратой более или менее значительных средств. Правильное нормирование, своевременное обнаружение и реализация защитных мероприятий позволяет устранить вредное воздействие радио излучений на окружающую среду[ http://www.ordinarytech.ru/].

Кожный покров человека, точнее, его внешние слои, абсорбирует (поглощает) радиоволны, вследствие чего выделяется тепло, которое абсолютно точно можно зафиксировать экспериментально. Максимально допустимое повышение температуры для человеческого организма составляет 4 градуса. хотя отдельные части тела (к примеру, глазные яблоки) вследствие меньшего снабжения кровью менее приспособлены к отводу тепла. Среди нетепловых негативных эффектов - ухудшение кровообращения, затруднение деятельности головного мозга и генетические мутации[ medbe.ru].

Длина волны, на которой происходит излучение радиолокационного модуля, является совершено секретной информацией. Тестирование проводится на частотах мирного времени.

Во время работы радиолокационного модуля на корабле по громкой связи проходит предупреждение об опасности выхода на палубу личного состава.

Тестирование радиолокационной аппаратуры на стенде предпрятия проводится в помещении, находящемся на первом этаже, с изолированными стенами и потолком. В этом помещении нет магнитного поля, нет связи по мобильным телефонам. Излучение аппаратуры не всегда проводится по эфиру, для длительной работы инженеров есть возможность работы с помощью изолированного кабеля.

Работающие с радиолокационным модулем имеют категорию вредности работы и обязаны раз в год проходить медицинское обследование.

Заключение

В итоге моего дипломного проекта была разработана программа «Экспертная система анализа неисправностей радиолокационной аппаратуры», которая полностью соответствует всем представленным требованиям и в будущем сможет помочь инженерам в поиске и исправлении неисправностей в работе блоков, входящих в состав радаров, располагающихся на кораблях. Также программа реализует возможность просмотра электрических схем приборов и документации по ним.

Список литературы

http://raspletin.com/ - официальный сайт ОАО «ГСКБ «Алмаз-Антей»

ГОСТ 34. Разработка автоматизированной системы управления (АСУ).

https://ru.wikipedia.org/wiki/Алгоритм

2005 год, автореферат по филологии, Пономарев, Василий Васильевич

https://ru.wikipedia.org/wiki/Интерфейс

https://ru.wikipedia.org/wiki/Отладка_программы

https://ru.wikipedia.org/wiki/Радиоволны

http://www.ordinarytech.ru/

medbe.ru

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.