// For testing only #include #include #include "ModLapLinkInterface2.h" //#define SHOWRETURNVALUE ////////////////////////////////////////////////////////////////////////////// int main(int argc, char ** argv) { int nRet = 0; int nBreakOut = 0; CModLapLinkInterface2 pp; unsigned char ucDATA; unsigned char ucDATA_OLD; unsigned char ucSTAT; unsigned char ucSTAT_OLD; unsigned char ucCTRL; unsigned char ucCTRL_OLD; // presetup local variables ucDATA = 0xCC; ucSTAT = 0xCC; ucCTRL = 0xCC; ucDATA_OLD = ~ucDATA; ucSTAT_OLD = ~ucSTAT; ucCTRL_OLD = ~ucCTRL; // must have the number of loops as argument if(argc != 3) { printf( "\n\n*** Error! ***\n\nSyntax:\n# %s \n\nExample: Attempt to use /dev/parport1 and loop one million times\n# %s 1 1000000\n\n", argv[0], argv[0] ); } else if( NOERRORS == pp.GetPort( atoi(argv[1]) ) ) { printf( "\n\n" ); for( nBreakOut = atoi(argv[2]); nBreakOut ; nBreakOut-- ) { // set control port to 00001111, remember inverted bits pp.SetC( 0x04 ); // read reg(s) pp.GetC( &ucCTRL ); pp.GetS( &ucSTAT ); pp.GetD( &ucDATA ); // display it, if it is different then last time if( ucDATA_OLD != ucDATA || ucSTAT_OLD != ucSTAT || ucCTRL_OLD != ucCTRL ) { printf( "Loop %7d -> ", nBreakOut ); printf( "DATA: %d%d%d%d%d%d%d%d ", BIT7(ucDATA), BIT6(ucDATA), BIT5(ucDATA), BIT4(ucDATA), BIT3(ucDATA), BIT2(ucDATA), BIT1(ucDATA), BIT0(ucDATA) ); printf( "STAT: %d%d%d%d%d%d%d%d ", BIT7(ucSTAT), BIT6(ucSTAT), BIT5(ucSTAT), BIT4(ucSTAT), BIT3(ucSTAT), BIT2(ucSTAT), BIT1(ucSTAT), BIT0(ucSTAT) ); printf( "CTRL: %d%d%d%d%d%d%d%d\n", BIT7(ucCTRL), BIT6(ucCTRL), BIT5(ucCTRL), BIT4(ucCTRL), BIT3(ucCTRL), BIT2(ucCTRL), BIT1(ucCTRL), BIT0(ucCTRL) ); } // remember for next time around ucDATA_OLD = ucDATA; ucSTAT_OLD = ucSTAT; ucCTRL_OLD = ucCTRL; //sleep(1); } // end of main loop pp.ReleasePort(); } #ifdef SHOWRETURNVALUE // show how it all ended printf( "\n\n%s%s is returning %d...\n", " ", argv[0], nRet ); #endif return nRet; }