예제 #1
0
void BufferCalibrationDlg::PrepZeroCalibration()
{
	if ((m_state.get() == IDLE) || (m_state.get() == ZEROCALIBRATION_OK) \
		|| (m_state.get() == FSCALIBRATION_OK))
	{
		if (PasswordDialog::getActivePassword() == PasswordEnum::NOPASSWORD)
		{
			PasswordDialog dlg(this, DevThr, PasswordEnum::FACTORYPASSWORD);
			if (dlg.exec() == QDialog::Rejected)
			{
				return;
			}
		}
		QByteArray BA(5, 0x00);
		BA[0] = CALIBRATION_CMD;
		BA[1] = CALIBRATION_DOWNLOAD_LEN;
		BA[2] = 0x02;  //Line Calibration
		BA[3] = 0x05;  //Zero Calibration
		BA[4] = 0x00;
		connect(&DevThr, &DeviceThread::response, this, &BufferCalibrationDlg::response);
		connect(&DevThr, &DeviceThread::timeout, this, &BufferCalibrationDlg::timeout);
		m_state.set(PREPZEROCALIBRATION);
		DevThr.request(1000, 16000, BA);
		ProgressDlg::start();
	}
}
예제 #2
0
float calcAngle(vector<float> & A, vector<float> & B, vector<float> & C) {
    vector<float> BA(3), BC(3);
    linear_combination(BA, 1, A, -1, B);
    linear_combination(BC, 1, C, -1, B);
    normalize_point(BA, BA); normalize_point(BC, BC);
    float dp = dot_product(BA,BC);
    if(dp > 1) dp = 1;
    else if(dp < -1) dp = -1;
    return RADIANS_TO_DEGREES( acos(dp) );
}
예제 #3
0
void BufferCalibrationDlg::ZeroCalibration()
{
	if (m_state.get() == PREPZEROCALIBRATION_OK)
	{
		QByteArray BA(5, 0x00);
		BA[0] = CALIBRATION_CMD;
		BA[1] = CALIBRATION_DOWNLOAD_LEN;
		BA[2] = 0x03;
		int16_t ZeroValue = ZeroEdit->text().toDouble() * 100.0;
		BA[4] = ZeroValue >> 8;
		BA[3] = ZeroValue & 0xFF;
		connect(&DevThr, &DeviceThread::response, this, &BufferCalibrationDlg::response);
		connect(&DevThr, &DeviceThread::timeout, this, &BufferCalibrationDlg::timeout);
		m_state.set(ZEROCALIBRATION);
		DevThr.request(1000, 16000, BA);
		ProgressDlg::start();
	}
예제 #4
0
파일: cgaln.c 프로젝트: rnakato/Cgaln
/* CGAT
 * read and make tables
 * BA -> NA 
 */
static void CGAT(){
  FILE *IN=NULL, *IN_b=NULL, *IN_rev=NULL;
  int **table_value=NULL;
  unsigned short **table_num=NULL;
  int state_a2, state_b=0, state_rev;
  Fasta *fst1 = fasta_new(), *fst2 = fasta_new(), *fst_rev = fasta_new();
  clock_t start, start1, end0, end1, end2;

  /*----- do BA and NA for each fasta-pair-----*/
  /* genomeB file open */
  IN_b = my_fopen_r(idata_b->seqname);
  par.OUT = my_fopen_w(par.outputfile);

  for(idata_b->cnt=0; idata_b->cnt < idata_b->fstnum; idata_b->cnt++){
    start = clock();

    /* MakeTable */
    read_multifasta(IN_b, fst2, FORWARD, &state_b);
    table_value = (int **)my_malloc(idata_b->blocknum[idata_b->cnt] * sizeof(int *), "table_b_value");
    table_num = (unsigned short **)my_malloc(idata_b->blocknum[idata_b->cnt] * sizeof(unsigned short *), "table_b_num");
    Make_SeedTable(fst2, table_value, table_num);

    end0 = clock();
    if(opt.debug) printf("MakeTable time: %.2f sec.\n", (double)(end0-start)/CLOCKS_PER_SEC);

    IN     = my_fopen_r(idata_a->seqname);
    IN_rev = my_fopen_r(idata_a->seqname);
    state_a2=0; state_rev=0;

    for(idata_a->cnt=0; idata_a->cnt < idata_a->fstnum; idata_a->cnt++){      
      printf("\ngenomeA-fasta%d (%d blocks) - genomeB-fasta%d (%d blocks)\n",
	     idata_a->cnt+1, idata_a->blocknum[idata_a->cnt], idata_b->cnt+1, idata_b->blocknum[idata_b->cnt]);
      start1 = clock();

      /*--- BA: the results are stored in aln_for/rev ---*/
      BA(&aln_for, table_value, table_num, FORWARD);
      if(reverse) BA(&aln_rev, table_value, table_num, REVERSE);
      if(idata_a->cnt == idata_a->fstnum -1) table_b_delete(table_value, table_num, idata_b->blocknum[idata_b->cnt]);

      end1 = clock();
      if(opt.debug) printf("BA time: %.2f sec.\n", (double)(end1-start1)/CLOCKS_PER_SEC);
      /*--- (if -b is on) output BA result and skip NA ---*/
      if(block){
	output_BAresult();
	continue;
      }

      /*--- NA: detailed alignmend within colonies in bl ---*/
      NA(IN, fst1, fst2, &aln_for, FORWARD, &state_a2);
      if(reverse) NA(IN_rev, fst_rev, fst2, &aln_rev, REVERSE, &state_rev);

      end2 = clock();
      if(opt.debug) printf("NA time: %.2f sec.\n", (double)(end2-end1)/CLOCKS_PER_SEC);
    }

    free(fst2->head);
    free(fst2->body);
    fclose(IN);
    fclose(IN_rev);
  }

  if(opt.boundary) output_fastaboundary();

  free(fst1); free(fst2); free(fst_rev);
  fclose(IN_b);
  fclose(par.OUT);
}
예제 #5
0
파일: page13.c 프로젝트: coursera-msb/libui
static void openTestWindow(uiBox *(*mkf)(void))
{
	uiWindow *w;
	uiBox *b;
	uiCombobox *c;
	uiEditableCombobox *e;
	uiRadioButtons *r;

	w = uiNewWindow("Test", 100, 100, 0);
	uiWindowOnClosing(w, winClose, NULL);
	uiWindowSetMargined(w, 1);
	b = (*mkf)();
	uiWindowSetChild(w, uiControl(b));

#define BA(x) uiBoxAppend(b, uiControl(x), 0)
	BA(uiNewButton(""));
	BA(uiNewCheckbox(""));
	BA(uiNewEntry());
	BA(uiNewLabel(""));
	BA(uiNewSpinbox(0, 100));
	BA(uiNewProgressBar());
	BA(uiNewSlider(0, 100));
	BA(uiNewHorizontalSeparator());
	c = uiNewCombobox();
	uiComboboxAppend(c, "");
	BA(c);
	e = uiNewEditableCombobox();
	uiEditableComboboxAppend(e, "");
	BA(e);
	r = uiNewRadioButtons();
	uiRadioButtonsAppend(r, "");
	BA(r);
	BA(uiNewDateTimePicker());
	BA(uiNewDatePicker());
	BA(uiNewTimePicker());
	BA(uiNewMultilineEntry());
	// TODO nonscrolling and scrolling areas?
	BA(uiNewFontButton());
	BA(uiNewColorButton());
	BA(uiNewPasswordEntry());
	BA(uiNewSearchEntry());

	uiControlShow(uiControl(w));
}
예제 #6
0
 void TypeOfFE_RTmodif::FB(const bool * whatd,const Mesh & Th,const Triangle & K,const R2 & PHat,RNMK_ & val) const
{ //  
//  const Triangle & K(FE.T);
  R2 P(K(PHat));
  R2 A(K[0]), B(K[1]),C(K[2]);
  R la=1-PHat.x-PHat.y,lb=PHat.x,lc=PHat.y; 
  R2 Dla(K.H(0)), Dlb(K.H(1)), Dlc(K.H(2));
  if (val.N() <3) 
   throwassert(val.N() >=3);
  throwassert(val.M()==2 );

  R2 AB(A,B),AC(A,C),BA(B,A),BC(B,C),CA(C,A),CB(C,B);

  R aa0= 1./(((AB,Dlb) + (AC,Dlc))*K.area);
  R aa1= 1./(((BA,Dla) + (BC,Dlc))*K.area);
  R aa2= 1./(((CA,Dla) + (CB,Dlb))*K.area);
  int i=0;
  R a0=   &K[ (i+1)%3] < &K[ (i+2)%3] ? aa0 : -aa0 ;
  i=1;
  R a1=   &K[ (i+1)%3] < &K[ (i+2)%3] ? aa1 : -aa1 ;
  i=2;
  R a2=   &K[ (i+1)%3] < &K[ (i+2)%3] ? aa2 : -aa2 ;
 // if (Th(K)< 2) cout << Th(K) << " " <<  A << " "  << B << " " << C << "; " <<  a0 << " " << a1 << " "<< a2 << endl;;
 
  R2 Va= AB*(lb*a0) + AC*(lc*a0);
  R2 Vb= BA*(la*a1) + BC*(lc*a1);
  R2 Vc= CA*(la*a2) + CB*(lb*a2);
  R2 Va_x= AB*(Dlb.x*a0) + AC*(Dlc.x*a0);
  R2 Vb_x= BA*(Dla.x*a1) + BC*(Dlc.x*a1);
  R2 Vc_x= CA*(Dla.x*a2) + CB*(Dlb.x*a2);
  R2 Va_y= AB*(Dlb.y*a0) + AC*(Dlc.y*a0);
  R2 Vb_y= BA*(Dla.y*a1) + BC*(Dlc.y*a1);
  R2 Vc_y= CA*(Dla.y*a2) + CB*(Dlb.y*a2);
 
 if( whatd[op_id])
  {
    RN_ f0(val('.',0,0)); 
    RN_ f1(val('.',1,0)); 
    
    f0[0] = Va.x;
    f1[0] = Va.y;
    
    f0[1] = Vb.x;
    f1[1] = Vb.y;
    
    f0[2] = Vc.x;
    f1[2] = Vc.y;
  }
 // ----------------
 if( whatd[op_dx])
   {
     val(0,0,1) =  Va_x.x;  
     val(0,1,1) =  Va_x.y;  
     
     val(1,0,1) =  Vb_x.x;  
     val(1,1,1) =  Vb_x.y;  
     
     val(2,0,1) =  Vc_x.x;  
     val(2,1,1) =  Vc_x.y;
   }
 
 if( whatd[op_dy])
   {
     val(0,0,2) =  Va_y.x;  
     val(0,1,2) =  Va_y.y;  

     val(1,0,2) =  Vb_y.x;  
     val(1,1,2) =  Vb_y.y;  
     
  val(2,0,2) =  Vc_y.x;  
  val(2,1,2) =  Vc_y.y;  
   }
 
}