Ejemplo n.º 1
0
////////////////////////////////////////
// Real time interrupt                //
// Higher priority than ATD interrupt //
////////////////////////////////////////
void interrupt 7 RTIhandler()
{  
  if (isSetup == 0x00) { 
    setup();
  } else {
    
    forwardP();
  }
  clear_RTI_flag();
}
Ejemplo n.º 2
0
void scanFile(FILE *fp, Args *args) {
  Sequence *seq = NULL;
  char *oldChr;
  int start, end;
  FILE *snp;

  oldChr = (char *)emalloc(sizeof(char));
  oldChr[0] = '\0';
  while (tabGetLine(fp) != NULL) {
    /* read chromosome, start, and end of hotspot from line */
    if (tabField(0)[0] == '#')
      continue;
    if (strcmp(oldChr, hotSpotGetChr()) != 0) {
      if (seq)
	freeSequence(seq);
      seq = hotSpotSeq(args);
      free(oldChr);
      oldChr = estrdup(hotSpotGetChr());
    }
    start = atoi(tabField(START_FIELD));
    end = atoi(tabField(END_FIELD));
    if (args->r) {
      /* reverse primers are downstream of hotspot */
      start = end;
      end += args->f;
      snp = hotSpotSnp(args, start, end);
      if(args->u)
	reversePuniv(args, seq, snp, start, end);
      else
	reverseP(args, seq, snp);
    } else {
      /* forward primers are upstream of hotspot */
      end = start;
      start -= args->f;
      snp = hotSpotSnp(args, start, end);
      if(args->u)
	forwardPuniv(args, seq, snp, start, end);
      else
	forwardP(args, seq, snp);
    }
    pclose(snp);
  }
  freeSequence(seq);
  free(oldChr);
}
void turnStraight(int speed, int tspeed)
{
	while (IR_left < threshold || IR_right < threshold)
	{
		forwardP(speed);			
		if(IR_left > threshold && IR_right < threshold)
		{
			stop();
			onlyRight(tspeed);
			while (IR_left > threshold && IR_right < threshold)
			{}
			stop();
		}
		if (IR_left < threshold && IR_right > threshold)
		{
			stop();
			onlyLeft(speed);
			while (IR_left < threshold && IR_right > threshold)
			{}
			stop();
		}
	}
	stop();
}