void ControlerWidget::on_pushButton_2_clicked()
{
    GetDataInput();
    emit UpdateControler(m_Controler);
    close();
}
Beispiel #2
0
void UpdateDataSector(BYTE n)
{
	BYTE in;
	
	if(n>3) return;
	
	if(digit(Ndd.PowerOld,n) == 1)	// рабочий режим
	{
		SetOn(n);
		switch (Ndd.St1[n])
		{
			case 1:		//читаем все
			{
				SetRegim(n, REGIM_WORK);
				
				if(Ndd.Timer2[n]>10) 
				{
					GetDataInput(n);
					Ndd.Timer2[n] = 0;
					Ndd.Read[n][Ndd.CurStep[n]]=~GetDataBunk(n);
					Ndd.St1[n]=2;
				}
			}
			break;
			case 2:		// провереям можно ли в данный момент провести тест 0
			{
				if(ReqwestTest0(n) == 1)
				{
					Ndd.St1[n]=3;
					Ndd.Timer2[n] = 0;
				}
			}break;
			case 3:		//читаем тест 0
			{
				Ndd.Test0_Last = n;	// мы в последними выполнили тест 0
				SetRegim(n, REGIM_TEST_0);
				if(Ndd.Timer2[n]>10) 
				{
					Ndd.Timer2[n] = 0;
					Ndd.TestR[n][Ndd.CurStep[n]]=GetDataBunk(n);
					Ndd.CurStep[n]++;
					if(Ndd.CurStep[n]>2)
					{
						Ndd.CurStep[n]=0;
						AnalizeTestData(n);
					}
					Ndd.St1[n]=1;
					SetRegim(n, REGIM_WORK);
					Ndd.Test0_Run[n]	=0;
				}
			}
			break;
			default:
				Ndd.St1[n] = 1;
		}
	}else	// тестовый режим
	{
		SetOff(n);
		switch (Ndd.St1[n])
		{
			case 1:	// ждем когда можно будет провести тест 0
			{
				if(Ndd.Timer2[n]>StartTimeOut)
				{
					StartTimeOut = 10;
					Ndd.Timer2[n] = 11;
				}else break;
				
				if(ReqwestTest0(n) == 1)
				{
					Ndd.St1[n]=2;
					Ndd.Timer2[n] = 0;
				}
			}break;
			case 2:	// тест 0
			{
				SetRegim(n, REGIM_TEST_0);	// test 0 
				if(Ndd.Timer2[n]>StartTimeOut) 
				{
					StartTimeOut=10;
					//============================
					//in = GetDataBunk(n);
					
					//if(n<2) tmp = Ndd.test[0] & MASK_FF[n];
					//else	tmp = Ndd.test[1] & MASK_FF[n];
					
					Ndd.Test_Bunk[n] = GetDataBunk(n);
					
					//if(n<2)	Ndd.tmp_test[0] = tmp;
					//else	Ndd.tmp_test[1] = tmp;
					//============================
					Ndd.Timer2[n] = 0;
					Ndd.St1[n] = 3;
					SetRegim(n, REGIM_TEST_1);	// test 1 
					Ndd.Test0_Run[n]	=0;
				}		
			}
			break;
			case 3:
			{
				SetRegim(n, REGIM_TEST_1); // test 1 
				if(Ndd.Timer2[n]>10) 
				{
					//==============================
					in = GetDataBunk(n);
					
					//if(n<2)	tmp = Ndd.tmp_test[0] & MASK_FF[n];
					//else	tmp = Ndd.tmp_test[1] & MASK_FF[n];
					//if(n<2)	tmp = Ndd.tmp_test[0];
					//else	tmp = Ndd.tmp_test[1];
					
					Ndd.Test_Bunk[n] |=  ((~in) & MASK_FF_INV[n]);
					
					if(n<2)	Ndd.test[0] = (Ndd.test[0]&MASK_FF[n]) | Ndd.Test_Bunk[n];
					else	Ndd.test[1] = (Ndd.test[1]&MASK_FF[n]) | Ndd.Test_Bunk[n];
					//==============================
					Ndd.Timer2[n] 	= 0;
					Ndd.St1[n] 		= 4;
				}
			}
			break;
			//-------------------------------------------------------
			case 4:
			{
				SetRegim(n, REGIM_WORK);
				if(Ndd.Timer2[n]>5000/*60000*/) 
				{
					Ndd.Timer2[n] = 0;
					Ndd.St1[n] = 1;
				}
			}
			break;
			default:
				Ndd.St1[n] = 1;
		}
	}
}