Результаты отладки.
Разработка системы для анализа неисправностей в работе радиолокационного оборудования
Connect (ui→radioButton2_AS16, SIGNAL (clicked ()), this, SLOT (proc_radio ())); A=(stFuncControl.stFcSideLines. iINFO & 0×300)>>8;//основной канал. Сигнальные линии связи ПК и ПСС-А (4−5бит)… Void fk: proc3(int b, int c, QPushButton *but, QString G, QString O, QString R). Void fk: proc2(int b, int c, QPushButton *but, QString G, QString O, QString R). Namefilepdf = file2. read… Читать ещё >
Результаты отладки. Разработка системы для анализа неисправностей в работе радиолокационного оборудования (реферат, курсовая, диплом, контрольная)
Результатом отладки является текст работоспособной программы, не содержащей ошибок, выявленных в результате тестирования.
Текст файла main.cpp.
#include.
#include «fk.h» .
#include.
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.
#include.
#include «structFK.h» .
#include «p961.h» .
#include «ppk.h» .
#include «as16.h» .
#include «pk.h» .
#include «pss_a.h» .
#include «info.h» .
#include «sxema.h» .
int nomer_ppk=0;
int nomer_as16=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:FKOvspomfileprogdoc.txt»);
file1.open (QIODevice:ReadOnly);
namefiledoc = file1. read (100);//количество цифр и еще /r/n.
//Открываем файл для считывания имени программы, связанной с pdf.
QFile file2(«c:FKOvspomfileprogpdf.txt»);
file2.open (QIODevice:ReadOnly);
namefilepdf = file2. read (100);//количество цифр и еще /r/n.
//Открываем файл.
QFile file («c:FKOvspomfileFKO.txt»);
if (!file.open (QIODevice:ReadOnly)) {.
QMessageBox:critical (this, tr («Error»), tr («Could not open file»));
return;
}.
//Считываем из файла.
QByteArray line;
for (int i=0;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).
{.
P961 p961;
p961.exec ();
}.
if (priz_radio==2).
{.
str_text_my="c:FKO extP96_1P961.txt" ;
info info;
info.exec ();
}.
if (priz_radio==3).
{.
/*.
ShellExecute (NULL, (LPWSTR)" open" ,.
(LPWSTR)" c: FKOsxemaP96_1P961.bmp", NULL, NULL, SW_SHOWNORMAL);
*/.
str_sxema_my="c:FKOsxemaP96_1P961.bmp" ;
SXEMA sxema;
sxema.exec ();
}.
}.
void fk: proc_button3().
{.
nomer_as16=1;
AS16 as16;
as16.exec ();
}.
void fk: proc_button4().
{.
nomer_as16=3;
AS16 as16;
as16.exec ();
}.
void fk: proc_button7().
{.
nomer_as16=2;
AS16 as16;
as16.exec ();
}.
void fk: proc_button8().
{.
nomer_as16=4;
AS16 as16;
as16.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: FKOsxemaPPKPPK. 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 extPSS_APSS_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®;
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®;
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®;
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.i3P961&0xff;
b2=stFuncControl.i3P961&0xf00;
b3=stFuncControl.i3P961&0×3000;
if (stFuncControl.i3P961==0) b=0;
else if ((b1==0xff)||(b2==0xf00)||(b3==0×3000)) b=3;
else b=1;
proc1(b, ui->pushButton1,p1g, p1o, p1r);
//AC-16…
for (k=0;k<4;k++).
{.
b1=stFuncControl.stFcSide[k]. iAS16[0];
b2=stFuncControl.stFcSide[k]. iAS16[1];
if ((b1==0)&&(b2==0)) a[k]=ISPR;
else.
{.
a[k]=NEISPR;
for (i=0;i<0xffff;i+=2).
{.
if (((b1>>i)&0×3)==OTKAZ).
a[k]=OTKAZ;
}.
for (i=0;i<31;i+=2).
{.
if (((b2>>i)&0×3)==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)&0×3)==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 & 0×300)>>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)&0×3)==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)&0×3)==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 & 0×30) >> 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 & 0×30) >> 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,23 бит)…
for (k=0;k<4;k++).
{.
a[k]= stFuncControl. stFcSideLines[k]. iINFO & 0×3;
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)&0×3)==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)&0×3)==OTKAZ).
b=OTKAZ;
}.
}.
proc1(b, ui->pushButton17,p17g, p17o, p17r);
// ПСС-А и АРМ сиг. линии…
b=stFuncControl.iSIGNAL & 0×3;//0−1 бит.
proc1(b, ui->pushButton47,p47g, p47o, p47r);
// ПСС-А и АРМ информ. линии…
b=stFuncControl.iINFO & 0×3;//осн. 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.
#include.
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.
Текст файла as16.cpp.
#include «as16.h» .
#include «ui_as16.h» .
#include.
#include «structFK.h» .
extern int nomer_as16;
int priz_radio_AS16=0;
extern FUNCTIONALCONTROL stFuncControl;//структура функционального контроля.
QString.
p1AS_16g="c:/FKO/images/AS16/1AS16.bmp" ,.
p1AS_16r="c:/FKO/images/AS16/1AS_16r.bmp", p1AS_16o="c:/FKO/images/AS16/1AS_16o.bmp" ,.
p7AS_16g="c:/FKO/images/AS16/7AS16.bmp" ,.
p7AS_16r="c:/FKO/images/AS16/7AS_16r.bmp", p7AS_16o="c:/FKO/images/AS16/7AS_16o.bmp" ,.
p9AS_16g="c:/FKO/images/AS16/9AS16.bmp" ,.
p9AS_16r="c:/FKO/images/AS16/9AS_16r.bmp", p9AS_16o="c:/FKO/images/AS16/9AS_16o.bmp" ,.
p13AS_16g="c:/FKO/images/AS16/13AS16.bmp" ,.
p13AS_16r="c:/FKO/images/AS16/13AS_16r.bmp", p13AS_16o="c:/FKO/images/AS16/13AS_16o.bmp" ;
AS16:AS16(QWidget *parent) :
QDialog (parent),.
ui (new Ui: AS16).
{.
//Грузим то, что нарисовали в as16.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_AS16, SIGNAL (clicked ()), this, SLOT (proc_radio ()));
connect (ui->radioButton3_AS16, SIGNAL (clicked ()), this, SLOT (proc_radio ()));
ui->radioButton2_AS16->setChecked (true);
}.
AS16:~AS16().
{.
delete ui;
}.
void AS16:proc_radio ().
{.
QPalette pal=palette ();
if (ui->radioButton2_AS16->isChecked ()).
{.
pal.setColor (backgroundRole (), QColor (qRgb (185,220,250)));
priz_radio_AS16=2;
}.
if (ui->radioButton3_AS16->isChecked ()).
{.
pal.setColor (backgroundRole (), QColor (qRgb (192,192,192)));
priz_radio_AS16=3;
}.
setPalette (pal);
}.
void AS16: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®;
but->setIcon (QIcon (pix));
but->setIconSize (pix.size ());
}.
else//if (a==NEISPR).
{.
QPixmap pix (O);
but->setIcon (QIcon (pix));
but->setIconSize (pix.size ());
}.
}.
void AS16:procA1(unsigned short a, int *Nispr, int *Nneispr, int *Notkaz).
{.
if ((a&0×3)==ISPR)(*Nispr)++;
else if ((a&0×3)==OTKAZ)(*Notkaz)++;
else (*Nneispr)++;
}.
int AS16: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).
{.
procA1((stFuncControl.stFcSide[i]. iAS16_FAR_A[j]&(0×3<>k,&Nispr,&Nneispr,&Notkaz);
}.
if ((Notkaz>=Nispr)&&(Notkaz>=Nneispr)) b=OTKAZ;
else if (Nneispr>=Nispr) b=NEISPR;
else b=ISPR;
return b;
}.
void AS16:proc ().
{.
int b, i;
b=-1;
i=nomer_as16−1;
//…БОПИ 909−01…
b=stFuncControl.stFcSide[i]. iAS16[0]&0×3;
proc1(b, ui->pushButton1_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909−01…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0xc)>>2;
proc1(b, ui->pushButton2_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909−01…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0×30)>>4;
proc1(b, ui->pushButton3_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909−01…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0xc0)>>6;
proc1(b, ui->pushButton4_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909−01…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0×300)>>8;
proc1(b, ui->pushButton5_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909−01…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0xc00)>>10;
proc1(b, ui->pushButton6_AS16, p1AS_16g, p1AS_16o, p1AS_16r);
//…БОПИ 909…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0×3000)>>12;
proc1(b, ui->pushButton7_AS16, p7AS_16g, p7AS_16o, p7AS_16r);
//…БОПИ 909…
b=(stFuncControl.stFcSide[i]. iAS16[0]&0xc000)>>14;
proc1(b, ui->pushButton8_AS16, p7AS_16g, p7AS_16o, p7AS_16r);
//…ЯОСУЛ64−1888(А2) 1…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[0]&(0×3 000 000>>24);
proc1(b, ui->pushButton9_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 2…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[1]&(0×3 000 000>>24);
proc1(b, ui->pushButton10_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 3…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[2]&(0×3 000 000>>24);
proc1(b, ui->pushButton11_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 4…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[3]&(0×3 000 000>>24);
proc1(b, ui->pushButton12_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 5…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[4]&(0×3 000 000>>24);
proc1(b, ui->pushButton17_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 6…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[5]&(0×3 000 000>>24);
proc1(b, ui->pushButton18_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 7…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[6]&(0×3 000 000>>24);
proc1(b, ui->pushButton19_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 8…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[7]&(0×3 000 000>>24);
proc1(b, ui->pushButton20_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 9…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[8]&(0×3 000 000>>24);
proc1(b, ui->pushButton25_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 10…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[9]&(0×3 000 000>>24);
proc1(b, ui->pushButton26_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 11…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[10]&(0×3 000 000>>24);
proc1(b, ui->pushButton27_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 12…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[11]&(0×3 000 000>>24);
proc1(b, ui->pushButton28_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 13…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[12]&(0×3 000 000>>24);
proc1(b, ui->pushButton33_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 14…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[13]&(0×3 000 000>>24);
proc1(b, ui->pushButton34_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 15…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[14]&(0×3 000 000>>24);
proc1(b, ui->pushButton35_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1888(А2) 16…
b=stFuncControl.stFcSide[i]. iAS16_FAR_A[15]&(0×3 000 000>>24);
proc1(b, ui->pushButton36_AS16, p9AS_16g, p9AS_16o, p9AS_16r);
//…ЯОСУЛ64−1866 1. …
b=procA (i, 0);
proc1(b, ui->pushButton13_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 2. …
b=procA (i, 1);
proc1(b, ui->pushButton14_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 3. …
b=procA (i, 2);
proc1(b, ui->pushButton15_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 4. …
b=procA (i, 3);
proc1(b, ui->pushButton16_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 5. …
b=procA (i, 4);
proc1(b, ui->pushButton21_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 6. …
b=procA (i, 5);
proc1(b, ui->pushButton22_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 7. …
b=procA (i, 6);
proc1(b, ui->pushButton23_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 8. …
b=procA (i, 7);
proc1(b, ui->pushButton24_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 9. …
b=procA (i, 8);
proc1(b, ui->pushButton29_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 10. …
b=procA (i, 9);
proc1(b, ui->pushButton30_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 11. …
b=procA (i, 10);
proc1(b, ui->pushButton31_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 12. …
b=procA (i, 11);
proc1(b, ui->pushButton32_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 13. …
b=procA (i, 12);
proc1(b, ui->pushButton37_AS16, p13AS_16g, p13AS_16o, p13AS_16r);
//…ЯОСУЛ64−1866 14. …