I am not a windows programmer, so the ins and outs (pun intended) of the parallel port escape me in that architecture. I am also fairly sure Java won't give me the control I need to read actual bits from the memory addresses. This also allows me to continue in the "over-engineering" vein and write a wheel server.

The software will:

  • Read the wheel often enough to see ALL the transistions between light and dark (about every 100 microseconds or so)
  • Record this data for later consumption by some statistical capable software (think excel here guys)
  • Broadcast the data on the network for real-time consumption by properly coded client software.

The program is written in C as that is my language of choice, it uses the ioperm and inb functions for the wheel, it uses gettimeofday for the 1/10 millisecond accurate clock, and UDP sockets to broadcast the data. It also saves off a comma delimited file that can be read by Excel to perform analysis. Early indications are that Maxine can produce about 500kb of data overnight. It does all of this and in less than 150 lines of code.