Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/QNX4/SwitchTest.cpp

Go to the documentation of this file.
00001 #include <j2k/Fred/Basic.hpp>
00002 #include <j2k/Fred/QNX/System.hpp>
00003 #include <j2k/Fred/QNX/TimerThread.hpp>
00004 #include <j2k/Fred/QNX/Board.hpp>
00005 #include <j2k/Fred/QNX/Board.cpp>
00006 
00007 class FredBoard : public TimerThread 
00008 {
00009 private:
00010   Board* b1;
00011   int count_;
00012   int prev;
00013   int data;
00014 
00015 public:
00016   FredBoard() : TimerThread()  // Call Timer constructor
00017   {
00018     b1 = new Board();
00019     count_ = 0;
00020     prev = 0;
00021   }
00022     
00023   virtual ~FredBoard()
00024   {
00025     if ( b1 != NULL ) delete b1;
00026   }
00027 
00028   void tick()
00029   {
00030     ++count_;
00031     ++prev;
00032 
00033     printf("Tick #%d\n\r",count_);
00034 
00035     printf("Prev=[%d]\t", prev);
00036 
00037     if ( prev == 1 ) {
00038       b1->Write( 0,  255 - 1  );
00039       b1->Write( 1,  255 - 1  );
00040       printf("1 = [%d]", 255-1);
00041 
00042     } else if ( prev == 4 ) {
00043       b1->Write( 0,  255 - 2  );
00044       b1->Write( 1,  255 - 2  );
00045       printf("2 = [%d]", 255-2);
00046 
00047     } else if ( prev == 7 ) {
00048       b1->Write( 0,  255 - 4  );
00049       b1->Write( 1,  255 - 4  );
00050       printf("4 = [%d]", 255-4);
00051 
00052     } else if ( prev == 10 ) {
00053       b1->Write( 0,  255 - 8  );
00054       b1->Write( 1,  255 - 8  );
00055       printf("8 = [%d]", 255-8);
00056 
00057     } else if ( prev == 13 ) {
00058       b1->Write( 0,  255 - 16 );
00059       b1->Write( 1,  255 - 16 );
00060       printf("16 = [%d]", 255-16);
00061 
00062     } else if ( prev == 16 ) {
00063       b1->Write( 0,  255 - 32 );
00064       b1->Write( 1,  255 - 32 );
00065       printf("32 = [%d]", 255-32);
00066 
00067     } else if ( prev == 19 ) {
00068       b1->Write( 0,  255 - 64 );
00069       b1->Write( 1,  255 - 64 );
00070       printf("64 = [%d]", 255-64);
00071 
00072     } else if ( prev == 22 ) {
00073       b1->Write( 0,  255 - 128 );
00074       b1->Write( 1,  255 - 128 );
00075       printf("128 = [%d]", 255-128);
00076 
00077     } else {
00078       b1->Write( 0, 255 );
00079       b1->Write( 1, 255 );
00080     }
00081 
00082     if ( prev > 26 ) { prev = 0; }
00083 
00084     data = b1->Read();
00085 
00086     printf("\n\r       111111   ");
00087     printf("\n\r       54321098 76543210");
00088     printf("\n\rData:  ");
00089 
00090     if ( ( data & 32768 ) == 32768 ) { printf("1"); } else { printf("0"); }
00091     if ( ( data & 16384 ) == 16384 ) { printf("1"); } else { printf("0"); }
00092     if ( ( data & 8192  ) == 8192  ) { printf("1"); } else { printf("0"); }
00093     if ( ( data & 4096  ) == 4096  ) { printf("1"); } else { printf("0"); }
00094     if ( ( data & 2048  ) == 2048  ) { printf("1"); } else { printf("0"); }
00095     if ( ( data & 1024  ) == 1024  ) { printf("1"); } else { printf("0"); }
00096     if ( ( data & 512   ) == 512   ) { printf("1"); } else { printf("0"); }
00097     if ( ( data & 256   ) == 256   ) { printf("1 "); } else { printf("0 "); }
00098     if ( ( data & 128   ) == 128   ) { printf("1"); } else { printf("0"); }
00099     if ( ( data & 64    ) == 64    ) { printf("1"); } else { printf("0"); }
00100     if ( ( data & 32    ) == 32    ) { printf("1"); } else { printf("0"); }
00101     if ( ( data & 16    ) == 16    ) { printf("1"); } else { printf("0"); }
00102     if ( ( data & 8     ) == 8     ) { printf("1"); } else { printf("0"); }
00103     if ( ( data & 4     ) == 4     ) { printf("1"); } else { printf("0"); }
00104     if ( ( data & 2     ) == 2     ) { printf("1"); } else { printf("0"); }
00105     if ( ( data & 1     ) == 1     ) { printf("1"); } else { printf("0"); }
00106 
00107     printf("\n\r");
00108    
00109     printf("Read -->%d \n\r", data ); 
00110   }
00111 
00112   void tick2()
00113   {
00114     ++count_;
00115     ++prev;
00116 
00117     printf("Tick #%d\n\r",count_);
00118     printf("Prev=[%d]\t", prev);
00119 
00120     if ( prev == 1 ) {
00121       b1->Switch( SWITCH_1, TRACK_INSIDE );
00122     } else if ( prev == 4 ) {
00123       b1->Switch( SWITCH_1, TRACK_OUTSIDE );
00124     } else if ( prev == 7 ) {
00125       b1->Switch( SWITCH_2, TRACK_INSIDE );
00126     } else if ( prev == 10 ) {
00127       b1->Switch( SWITCH_2, TRACK_OUTSIDE );
00128     } else if ( prev == 13 ) {
00129       b1->Switch( SWITCH_3, TRACK_INSIDE );
00130     } else if ( prev == 16 ) {
00131       b1->Switch( SWITCH_3, TRACK_OUTSIDE );
00132     } else if ( prev == 19 ) {
00133       b1->Switch( SWITCH_4, TRACK_INSIDE );
00134     } else if ( prev == 22 ) {
00135       b1->Switch( SWITCH_4, TRACK_OUTSIDE );
00136     } else { 
00137       b1->SwitchNormal();
00138     }
00139 
00140     if ( prev > 26 ) { prev = 0; }
00141 
00142     data = b1->Read();
00143 
00144     printf("\n\r       111111   ");
00145     printf("\n\r       54321098 76543210");
00146     printf("\n\rData:  ");
00147 
00148     if ( ( data & 32768 ) == 32768 ) { printf("1"); } else { printf("0"); }
00149     if ( ( data & 16384 ) == 16384 ) { printf("1"); } else { printf("0"); }
00150     if ( ( data & 8192  ) == 8192  ) { printf("1"); } else { printf("0"); }
00151     if ( ( data & 4096  ) == 4096  ) { printf("1"); } else { printf("0"); }
00152     if ( ( data & 2048  ) == 2048  ) { printf("1"); } else { printf("0"); }
00153     if ( ( data & 1024  ) == 1024  ) { printf("1"); } else { printf("0"); }
00154     if ( ( data & 512   ) == 512   ) { printf("1"); } else { printf("0"); }
00155     if ( ( data & 256   ) == 256   ) { printf("1 "); } else { printf("0 "); }
00156     if ( ( data & 128   ) == 128   ) { printf("1"); } else { printf("0"); }
00157     if ( ( data & 64    ) == 64    ) { printf("1"); } else { printf("0"); }
00158     if ( ( data & 32    ) == 32    ) { printf("1"); } else { printf("0"); }
00159     if ( ( data & 16    ) == 16    ) { printf("1"); } else { printf("0"); }
00160     if ( ( data & 8     ) == 8     ) { printf("1"); } else { printf("0"); }
00161     if ( ( data & 4     ) == 4     ) { printf("1"); } else { printf("0"); }
00162     if ( ( data & 2     ) == 2     ) { printf("1"); } else { printf("0"); }
00163     if ( ( data & 1     ) == 1     ) { printf("1"); } else { printf("0"); }
00164 
00165     printf("\n\r");
00166     printf("Read -->%d \n\r", data ); 
00167   }
00168 };
00169 
00170 void main() {
00171   FredBoard the_board;
00172 
00173     struct timespec ts = { 0,  950000000l };
00174 //  struct timespec ts = { 0,  005000000l };
00175 
00176   the_board.start(ts);
00177 
00178   while( !kbhit() ) { }
00179 
00180   the_board.stop();
00181 }

Generated on Sun Oct 14 18:46:42 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001