Example #1
0
File: util.c Project: Snafu/rc
void debug_init(void)
{
	for(int i = 0; i < 8; i++) {
		debug_show(1<<i);
		wait(500);
	}
	debug_show(0xFF);
	wait(500);
	debug_show(0x55);
	wait(500);
	debug_show(0xAA);
	wait(500);
	debug_show(0x00);
	wait(500);
}
Example #2
0
/* return 0 if failed */
int niggli_reduce(double *lattice_, const double eps_)
{
  int i, j, succeeded;
  NiggliParams *p;
  int (*steps[8])(NiggliParams *p) = {step1, step2, step3, step4,
                                      step5, step6, step7, step8};

  p = NULL;
  succeeded = 0;

  if ((p = initialize(lattice_, eps_)) == NULL) {
    return 0;
  }

  /* Step 0 */
  if (! set_parameters(p)) {
    goto ret;
  }

  for (i = 0; i < NIGGLI_MAX_NUM_LOOP; i++) {
    for (j = 0; j < 8; j++) {
      if ((*steps[j])(p)) {
        debug_show(j + 1, p);
        if (! reset(p)) {goto ret;}
        if (j == 1 || j == 4 || j == 5 || j == 6 || j == 7) {break;}
      }
    }
    if (j == 8) {
      succeeded = 1;
      break;
    }
  }

  debug_show(-1, p);

 ret:
  finalize(lattice_, p);
  return succeeded;
}
Example #3
0
File: util.c Project: Snafu/rc
void debug_knightrider()
{
	static uint8_t dir = 0;
	static uint16_t state = 1;
	debug_show(state);
	if(dir == 0)
		state <<= 1;
	else
		state >>= 1;
	if(state == 0x0100) {
		state = 0x40;
		dir = 1;
	} else if(state == 0x00) {
		state = 0x02;
		dir = 0;
	}
}
Example #4
0
/* -----------------------------------------------------------------------------*/
LONG lCTRL_RequestResponse(CHAR* pcReq){

	/* return */
	LONG lRet=COMM_RET_SUCCESS;
	
	/* lFeedback from base process */
	CHAR cFb[COMM_MAXPARAFEEDBACKCHAR];
	CHAR* pc;
	CHAR* pcNext;

	/* parameter to udpate */
	sCOMM_PARA* pstParas=gsParas;
	sCOMM_PARA stPara;

	/* request infomation */
	LONG lReqInfo=0;
	LONG lReqRet=0;

	debug_show("\n\nrequestResponse start\n");
	/* write to pipe */
	vCOMM_Pipe_Write(&gsPipeCommand, pcReq);

	/* wait and handle the feedback */
	while(1){
		/* clear the buffer */
		memset(cFb, 0,sizeof(cFb));
		
		/* handle according to lFeedback */
		vCOMM_Pipe_Read(&gsPipeFeedback, cFb);
		if( !strlen(cFb)){
			debug_info("[lCTRL_RequestResponse] ERROR when lCOMM_Pipe_Read \n");
			/* consider feedback */
			vCTRL_Feedback(lReqInfo, CTRL_REQRESPONSE_FEEDBACKNOTFIRST, COMM_CF_FEEDBACKFINISHSUC);
			break;
		}
		
		/* get ret infomation */
		pc=cFb;
		pcNext=index(pc, '&');
		*pcNext='\0';
		lReqRet=atol(pc);
		pc=pcNext+1;

		/* get reqId */
		pcNext=index(pc, '&');
		if(pcNext!=NULL){
			*pcNext='\0';
		}
		lReqInfo=atol(pc);
		if(pcNext!=NULL){
			pc=pcNext+1;
		}

		/* handle according to ret and reqId */
		if(lReqRet==0){
			/* feedback at once */
			CR_Debug("get back at once\n");

			/* consider feedback */
			vCTRL_Feedback(lReqInfo, CTRL_REQRESPONSE_FEEDBACKFIRST, COMM_CF_FEEDBACKATONCESUC);

		} else { 				
			if (lReqRet==-1) {
				/* system set failure */
				CR_Debug("feed back error\n");

				/* consider feedback */
				vCTRL_Feedback(lReqInfo, CTRL_REQRESPONSE_FEEDBACKNOTFIRST, COMM_CF_FEEDBACKFINISHFAIL);

			} else if (lReqRet==-2){
				/* system quit */
				CR_Debug("feed back system quit\n");

				/* feedback */
				vCTRL_Feedback(lReqInfo, CTRL_REQRESPONSE_FEEDBACKNOTFIRST, COMM_CF_FEEDBACKFINISHSYSQUIT);
				
				lRet=COMM_RET_SYSQUIT;

			} else {
				/* system feedback ok */
				CR_Debug("feed back ok\n");
				
				/* feed back ok, should return the update parameters */
				/* we should go through the parameters one by one */
				while((pcNext=index(pc, '&'))!=NULL){
					*pcNext='\0';

					/* get the update parameter */
					vCOMM_PARA_CharToPara(&stPara, pc);
					lCOMM_PARA_UpdateParas(&pstParas, &stPara);

					if(*++pcNext=='\0'){
						/* indicate finished */
						break;
					}

					/* update pc */
					pc=pcNext;
				}

				/* consider feedback */
				vCTRL_Feedback(lReqInfo, CTRL_REQRESPONSE_FEEDBACKNOTFIRST, COMM_CF_FEEDBACKFINISHSUC);

			}

			/* lFeedback finish */
			break;
		}
	}

	debug_show("requestResponse stop\n");
	return lRet;
}