Jump to content

Contributions:ParallelPortFilter: Difference between revisions

From BCI2000 Wiki
Kgoering (talk | contribs)
No edit summary
Kgoering (talk | contribs)
Line 38: Line 38:


==Configuring ParallelPortFiler==
==Configuring ParallelPortFiler==
If using the filter, SourcePorts must have a number greater than 0. Then list the names for the ports separated by spaces in SourcePortsList. The list must be the same length as the value in SourcePorts. You can then set the LPTMapping with column one in using the names as in SourcePortsList and column 2 using the corresponding hardware address. This step is optional. If not configured, LPT1 maps to 0x378 and LPT2 maps to 0x278 which should work for most users.  
If using the filter, SourcePorts must have a number greater than 0. Then list the names for the ports separated by spaces in SourcePortsList. The list must be the same length as the value in SourcePorts. You can then set the LPTMapping with column one in using the names as in SourcePortsList and column 2 using the corresponding hardware address. This step is optional. If not configured, LPT1 maps to 0x378 and LPT2 maps to 0x278 which should work for most users. DigitalOutputEx is only necessary if user wants to write output through the parallel port.
If the default settings did not produce results, the hardware address might be different for the user's computer. To find the hardware address for the parallel ports for your machine, press '''WIN''' + '''R''' and enter ''devmgmt.msc''. In Device Manager, expand the section labeled '''Ports (Com & LPT)'''. If this section does not exist, you probably do not have LPT ports or the driver is not installed properly. Find the one labeled with (LPT1) or whatever port you are looking for. Right click and slelect Properties. In the Resources tab, there is a field called I/O Range and take the first value of the range which is in hexadecimal. If multiple I/O Range, read the first one; if that does not work, try the other one. Take that value as the hardware address for Parameter LPTMapping.
If the default settings for LPTMapping did not produce results, the hardware address might be different for the user's computer. To find the hardware address for the parallel ports for your machine, press '''WIN''' + '''R''' and enter ''devmgmt.msc''. In Device Manager, expand the section labeled '''Ports (Com & LPT)'''. If this section does not exist, you probably do not have LPT ports or the driver is not installed properly. Find the one labeled with (LPT1) or whatever port you are looking for. Right click and select Properties. In the Resources tab, there is a field called I/O Range and take the first value of the range which is in hexadecimal. If multiple I/O Range, read the first one; if that does not work, try the other one. Take that value as the hardware address for Parameter LPTMapping. These instructions for finding the address has been tested on Windows XP, 7, and 8.


DigitalOutputEx is only necessary if user wants to write output through the parallel port.
==Digital Output==
==Digital Output==

Revision as of 18:19, 30 June 2015

Location

http://www.bci2000.org/svn/trunk/src/contrib/Extensions/ParallelPortFilter

Versioning

Authors

Kristopher Kaleb Goering (kaleb.goering@gmail.com)

Version History

  • 2015/06/30: Initial public release

Source Code Revisions

  • Initial development: --
  • Tested under: --
  • Known to compile under: --
  • Broken since: --

Functional Description

This simple filter extension resides in the Application module and makes input and output with the parallel port easy.

Integration into BCI2000

Compile the extension into your source module by enabling contributed extensions in your CMake configuration. You can do this by going into your root build folder and deleting CMakeCache.txt and re-running the project batch file, or by running cmake -i and enabling BUILD_PARALLELPORTFILTER. Once the extension is built into the source module, it can be used.

Parameters

The ParallelPortFilter is configured in the ParallelPort tab. The configurable parameters are:

SourcePorts

This parameter is used to initialize the filter and to keep track of the number of ports being used. This number should be the total number of parallel ports that should be used to communicate. It should be an integer value greater than 0 if being used else 0. Most computers do not have more than 3 parallel ports but some have 4. In good practice this value should not be greater than 3 unless you are sure you have that many ports.

SourcePortsList

This parameter lists the ports to be used and the order to communicate through them. It should be a list of the port names LPT1 - LPT3. You can not use the same port twice in on list. This list must be the same length as the value in Parameter SourcePorts.

LPTMapping

This parameter is to manually enter the hardware address of the ports incase that the computer being used does not conform to general use hardware addresses. Column one should have the names of the ports such as LPT1 or LPT2, same as the values in Parameter SourcePortsList, and column two should have the hexadecimal value of the port such as 0x378. The number of rows in the matrix should be equal to the value in Parameter SourcePorts, while it must have two columns if being used, no more, no less.

DigitalOutputEx

This matrix of expressions that controls the outputs on the parallel ports. Each port has 8 bits which correspond to 8 rows on the matrix. If the expression evaluates to True, the bit will be set to 1 else to 0. Boolean expression work quite well here. For more information on digital output and expressions usage for ParallelPortFilter see [[::Contributions:ParallelPortFilter#Digital Output|Digital Output]].

Configuring ParallelPortFiler

If using the filter, SourcePorts must have a number greater than 0. Then list the names for the ports separated by spaces in SourcePortsList. The list must be the same length as the value in SourcePorts. You can then set the LPTMapping with column one in using the names as in SourcePortsList and column 2 using the corresponding hardware address. This step is optional. If not configured, LPT1 maps to 0x378 and LPT2 maps to 0x278 which should work for most users. DigitalOutputEx is only necessary if user wants to write output through the parallel port. If the default settings for LPTMapping did not produce results, the hardware address might be different for the user's computer. To find the hardware address for the parallel ports for your machine, press WIN + R and enter devmgmt.msc. In Device Manager, expand the section labeled Ports (Com & LPT). If this section does not exist, you probably do not have LPT ports or the driver is not installed properly. Find the one labeled with (LPT1) or whatever port you are looking for. Right click and select Properties. In the Resources tab, there is a field called I/O Range and take the first value of the range which is in hexadecimal. If multiple I/O Range, read the first one; if that does not work, try the other one. Take that value as the hardware address for Parameter LPTMapping. These instructions for finding the address has been tested on Windows XP, 7, and 8.

Digital Output