コード例 #1
0
int getPortUE9(CONNECTION *ret, int portNumber, int *value) {
	
	
	/* 
		0-7    FIO0-FIO7, 	0-3	traffic lights
		8-11	Sensors 
		12-15	tracks 
		8-15   EIO0-EIO7
	 
	*/

	if((ret->error = eDI(ret->socketFD, portNumber, &ret->lngState)) != 0)  // Get port, returns true if succesfull, native UE9 
	{
		printf("Could not read the state of Port %d", portNumber);
		return -1;
	}
	else	
	{
		*value = (int) ret->lngState;
		return 0;
	}
}
コード例 #2
0
ファイル: main.c プロジェクト: maunsell/MWorks
//main
int main (int argc, const char * argv[]) {
    bool retval;
    HANDLE ljHandle;

	printf("Main\n");
    
    if( (ljHandle = openUSBConnection(-1)) == NULL) {    
        printf("Error\n");
        return -1;
    }
    
    retval = ljU6ConfigPorts(ljHandle);
    
    long long i;
    long long t1,t2;
    long state;
    long long savedEl[STATSN+1];
    long long tStart;
    int savedN=0;
    double meanEl;
    int iM;
    int r;
    double maxEl;
    

    //eDO(ljHandle, LJU6_REWARD_FIO, 0);
    tStart = timeUS();
    for (i=0; true; i++) {
        t1 = timeUS();
        
        // DI
        r = eDI(ljHandle, 0, &state);
        if (r < 0) {
            printf("eDI call failed. Exiting");
            return r;
        }
        
        // // DO high
        //usleep(1000);
        //r = eDO(ljHandle, 1, 1);
        //if (r < 0) {
        //    printf("eDO high call failed. Exiting");
        //    return r;
        //}
        
        //// DO low
        //usleep(2000);
        //r = eDO(ljHandle, 1, 0);
        //if (r < 0) {
        //    printf("eDO low call failed. Exiting");
        //    return r;
        //}

        t2 = timeUS();
        if (i % 100 == 0) {
            printf("Elapsed %lld us, iter %10lld\n", t2-t1, i);
            fflush(stdout);
        }

        savedEl[savedN] = t2-t1;
        savedN++;
        
        // stats, every STATSN trials
        if (i % STATSN == 0 && i>0) {  // not the first time
            meanEl = 0;
            maxEl = 0;
            for (iM=0; iM<STATSN; iM++) {
                meanEl = meanEl + savedEl[iM];
                if (savedEl[iM] > maxEl) {
                    maxEl = savedEl[iM];
                }
            }
            meanEl = meanEl/STATSN;
            savedN = 0;
            
            printf("** Mean %8.1f   max %8.1f  totalElapsedUs %lld\n", meanEl, maxEl, timeUS()-tStart);
        }
            
        //while (timeUS() - t1 < 1000) {
        //    usleep(1000);
        //}
    }
    
    closeUSBConnection(ljHandle);
    return 0;
}