User`s manual

ThinkCore IA241/240 Linux User’s Manual Programmer’s Guide
6-13
printf(“1.Test for Din duration!=0.\n”);
printf(“9.Quit.\n” );
printf(“Please select a choice>“);
scanf(“%d”,&nChoice);
if( nChoice == 9 ){ // Quit
break;
}
else if( nChoice == 0 ){ //test for din duration==0
for ( nDuration=0; nDuration < DURATION_NUM; nDuration++ ) {
// configure the dout frequency. When the timer timeouts, dout_control() will be
called to change the dout state
value.it_value.tv_sec = duration[0][nDuration]/1000;
value.it_value.tv_usec = (duration[0][nDuration]%1000) *1000 ;
value.it_interval = value.it_value;
setitimer(ITIMER_REAL,&value,NULL);
ndin_StateChangeDetected = 0; // reset these counters
ndout_StateChangeDetected = 0;
printf(“DI duration,:0, DO duration:%d\n”,duration[0][nDuration]);
set_din_event(0, low2highevent, DIN_EVENT_LOW_TO_HIGH, 0);
while( ndin_StateChangeDetected < TEST_NUM ) {
pause();
}
printf(“ndin_StateChangeDetected:%d, ndout_StateChangeDetected:%d,\n”,
ndin_StateChangeDetected, ndout_StateChangeDetected);
printf(“loss detection
probability:%f\%,\n”,(ndout_StateChangeDetected-ndin_StateChangeDetected)*100.0/nd
out_StateChangeDetected);
}
}//end of if( nChoice ==0 )
else if( nChoice == 1 ) { //test for din duration!=0
for ( nDuration=0; nDuration < DURATION_NUM; nDuration++ ) {
// configure the dout frequence. when the timer timeout, dout_control() will be
call to change the dout state
value.it_value.tv_sec = duration[1][nDuration]/1000;
value.it_value.tv_usec = ( duration[1][nDuration]%1000 ) *1000 ;
value.it_interval = value.it_value;
setitimer(ITIMER_REAL,&value,NULL);
// Test for: dout kept in the same frequency but din set for different duration
for( i=0; i<DURATION_NUM; i++) {
if( duration[1][i] <= duration[1][nDuration] ) {
// reset these counters
ndin_StateChangeDetected = 0;
ndout_StateChangeDetected = 0;
printf(“DI duration,:%d, DO duration:%d\n”, duration[1][i],
duration[1][nDuration] );
set_din_event(0, low2highevent, DIN_EVENT_LOW_TO_HIGH, duration[1][i]);
while( ndout_StateChangeDetected < TEST_NUM ) {
pause();
}
printf(“ndin_StateChangeDetected:%d, ndout_StateChangeDetected:%d,\n”,
ndin_StateChangeDetected, ndout_StateChangeDetected);
printf(“loss detection
probability:%f\%,\n”,(ndout_StateChangeDetected-ndin_StateChangeDetected)*100.0/nd
out_StateChangeDetected);
}
} //end of for( i=0; i<DURATION_NUM; i++)