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; } }
//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; }