예제 #1
0
파일: core.cpp 프로젝트: ZhreShold/OpenZL
	/// <summary>
	/// wait for the specficed ms until keypressed
	/// </summary>
	/// <param name="ms">The ms to wait.</param>
	/// <returns>The key pressed(ASC-II not guaranteed).</returns>
	int waitkey(double ms)
	{
		int key = -1;
		double start = get_real_time();
		double end = start + ms / 1000;

#if defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
		set_conio_terminal_mode();
#endif

		if (ms <= 0)
		{
			// disable timer if ms <= 0
			end = DBL_MAX;
		}

		while (key == -1)
		{
			key = kb_hit();
			//printf("%d", (int)get_elapsed_time_ms(start));
			if (get_real_time() >= end)
			{
				break;
			}
		}
		//std::cin.get();
#if defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
		reset_terminal_mode();
#endif
		return key;
	}
예제 #2
0
파일: 9114test.c 프로젝트: ellysh/pci-dask
int main(void)
{
    I16 err, card;
    U16 channel=3;
    U16 range=AD_B_10_V;
    U32 read_count=2048;
    F64 sample_rate=2048;
    U32 *ai_buf;
    int i;

    if((card=Register_Card(PCI_9114DG, 0))<0){
        printf("Register_Card error=%d", card);
        Release_Card(card);
        exit(1);
    }

    do{

        err = AI_9114_Config(card, TRIG_INT_PACER);
        if(err!=0){
            printf("AI_9114_Config error=%d", err);
            Release_Card(card);
            exit(1);
        }
        err = AI_AsyncDblBufferMode(card, 0);
        if(err!=0){
           printf("AI_DblBufferMode error=%d", err);
           Release_Card(card);
           exit(1);
        }

        ai_buf = (U32*)malloc(read_count*4);
        memset(ai_buf, '\0', read_count*4);

        err = AI_ContReadChannel(card, channel, range, ai_buf, read_count, sample_rate, SYNCH_OP);
        if(err!=0){
            printf("AI_ContReadChannel error=%d", err);
            Release_Card(card);
            free(ai_buf);
            exit(1);
        }
        free(ai_buf);
        printf("Loop %d\n", ++i);
    
    }while(!kb_hit());    

    Release_Card(card);
    return 0;
}
예제 #3
0
파일: 9221ai.c 프로젝트: ellysh/pci-dask
int main(int argc, char **argv)
{
    I16 card, err;
    U16 card_num;
    U16 acq_ch[ChNum];
    U16 acq_gain[ChNum];
    U16 acq_value[ChNum];
    F64 voltage=0.0;
    int i;
    int j=0;

    for(i=0; i< ChNum; i++){
        acq_ch[i]=i;
        acq_gain[i]=AD_B_5_V;
    }  
    fout = fopen("acq.txt", "w");
    
    printf("Please input a card number: ");
    scanf(" %hd", &card_num);

    if((card=Register_Card (PCI_9221, card_num)) < 0) {
        printf("Register_Card error=%d", card);
        exit(1);
    }

    do{
        clrscr();
        err = AI_ReadMultiChannels(card, ChNum, acq_ch, acq_gain, acq_value);
        if(err < 0){
            printf("AI Read Multi Channel Error: %d\n", err);  
           exit(1);
        }
	for(i=0; i<ChNum; i++){
	    AI_VoltScale(card, acq_gain[i], acq_value[i], &voltage);
            fprintf(fout, "%f\t", voltage);
	}
        fprintf(fout, "\n");
        printf("Loop %d\n", j++);
    }while(!kb_hit());
    
    err = Release_Card(card);
    if(err < 0){
        printf("Release_Card error=%d", err);
        exit(1);
    }

    return 0;
}
예제 #4
0
void cdecl TERMWINDOWMEMBER cOutput(const char *fmt)
    {
    // for screenblanker
    if (!oPhys)
        {
        kb_hit();
        }

    const Bool oldcolor = TermCap->IsColor();
    TermCap->SetColor(TRUE);

    outSpeech(FALSE, fmt);

    register const char *buf = fmt;
    while (*buf)
        {
        if (*buf == CTRL_A)
            {
            uchar wordBuf[MAXWORDLEN + 8];
            int i;

            i = getWord(wordBuf, (uchar *) buf, 0, MAXWORDLEN);

            const Bool oldmodem = OC.Modem;
            OC.Modem = FALSE;
            termCap(buf + 1);
            OC.Modem = oldmodem;
            buf += i;
            }
        else
            {
            outCon(*buf++);
            }
        }

    TermCap->SetColor(oldcolor);
    ansi(14);
    OC.MCI_goto = FALSE;
    }
예제 #5
0
파일: 9221dio.c 프로젝트: ellysh/pci-dask
int main(int argc, char **argv)
{
    I16 card, err;
    U16 card_num;
    U32 out_data;
    U16 rb_data;
    U16 read_data;
    int i;
    
    printf("Please input a card number: ");
    scanf(" %hd", &card_num);

    if((card=Register_Card (PCI_9221, card_num)) < 0) {
        printf("Register_Card error=%d", card);
        exit(1);
    }

    out_data = 1;
    i = 0;
    do{
        clrscr();
        //Write Data to DO Line 
	err =  DO_WriteLine(card, 0, i, out_data);
        if(err < 0){
            printf("DO Write Line%d Error: %d\n", i, err);
	    exit(1);
        }
        printf("DO Write Data to Line%d: 0x%x\n", i, (unsigned int)out_data);
        
	//Read Back Data from DO Line
	err =  DO_ReadLine(card, 0, 0, &rb_data);
        if(err < 0){
            printf("DO Read Line0 Error: %d\n", err);
	    exit(1);
        }
        printf("DO Read Back from Line0: 0x%x\n", (unsigned int)rb_data);
	
	err =  DO_ReadLine(card, 0, 1, &rb_data);
        if(err < 0){
            printf("DO Read Line1 Error: %d\n", err);
	    exit(1);
        }
        printf("DO Read Back from Line1: 0x%x\n", (unsigned int)rb_data);
	
	err =  DO_ReadLine(card, 0, 2, &rb_data);
        if(err < 0){
            printf("DO Read Line2 Error: %d\n", err);
	    exit(1);
        }
        printf("DO Read Back from Line2: 0x%x\n", (unsigned int)rb_data);
	
	err =  DO_ReadLine(card, 0, 3, &rb_data);
        if(err < 0){
            printf("DO Read Line3 Error: %d\n", err);
	    exit(1);
        }
        printf("DO Read Back from Line3: 0x%x\n", (unsigned int)rb_data);
        
	//Read Data from DI Line
        err =  DI_ReadLine(card, 0, 0, &read_data);
        if(err < 0){
            printf("DI Read Line0 Error: %d\n", err);
	    exit(1);
        }
        printf("DI Read Data from Line0: 0x%x\n", (unsigned int)read_data);
	
        err =  DI_ReadLine(card, 0, 1, &read_data);
        if(err < 0){
            printf("DI Read Line1 Error: %d\n", err);
	    exit(1);
        }
        printf("DI Read Data from Line1: 0x%x\n",  (unsigned int)read_data);

        err =  DI_ReadLine(card, 0, 2, &read_data);
        if(err < 0){
            printf("DI Read Line2 Error: %d\n", err);
	    exit(1);
        }
        printf("DI Read Data from Line2: 0x%x\n", (unsigned int)read_data);
	
        err =  DI_ReadLine(card, 0, 3, &read_data);
        if(err < 0){
            printf("DI Read Line3 Error: %d\n", err);
	    exit(1);
        }
        printf("DI Read Data from Line3: 0x%x\n", (unsigned int)read_data);

	if((++i)==4){
	    i=0;
	    out_data = (!out_data) ? 1:0;
	}
	printf("Press any key to exit...\n");
	usleep(200000);
    }while(!kb_hit());
    
    err = Release_Card(card);
    if(err < 0){
        printf("Release_Card error=%d", err);
        exit(1);
    }
 
    return 0;
}