Supported devices:
PhotoResearch spectrophotometers See http://www.photoresearch.com/
psychopy.hardware.pr.
PR650
(port, verbose=None)¶An interface to the PR650 via the serial port.
(Added in version 1.63.02)
example usage:
from psychopy.hardware.pr import PR650
myPR650 = PR650(port)
myPR650.getLum() # make a measurement
nm, power = myPR650.getLastSpectrum() # get a power spectrum for the
last measurement
NB psychopy.hardware.findPhotometer()
will locate and return
any supported device for you so you can also do:
from psychopy import hardware
phot = hardware.findPhotometer()
print(phot.getLum())
Troubleshooting: | |
---|---|
Various messages are printed to the log regarding the function of this device, but to see them you need to set the printing of the log to the correct level: from psychopy import logging
logging.console.setLevel(logging.ERROR) # error messages only
logging.console.setLevel(logging.INFO) # will give more info
logging.console.setLevel(logging.DEBUG) # log all communications
If you’re using a keyspan adapter (at least on OS X) be aware that it needs a driver installed. Otherwise no ports wil be found. Also note that the attempt to connect to the PR650 must occur within the first few seconds after turning it on. |
getLastLum
()¶This retrieves the luminance (in cd/m**2) from the last call to
.measure()
getLastSpectrum
(parse=True)¶This retrieves the spectrum from the last call to .measure()
If parse=True
(default):
The format is a num array with 100 rows [nm, power]
otherwise:
The output will be the raw string from the PR650 and should then
be passed to .parseSpectrumOutput()
. It’s more efficient to
parse R,G,B strings at once than each individually.
getLum
()¶Makes a measurement and returns the luminance value
getSpectrum
(parse=True)¶Makes a measurement and returns the current power spectrum
parse=True
(default):parse=False
(default):.parseSpectrumOutput()
. It’s slightly more
efficient to parse R,G,B strings at once than each individually.measure
(timeOut=30.0)¶Make a measurement with the device. For a PR650 the device is instructed to make a measurement and then subsequent commands are issued to retrieve info about that measurement.
parseSpectrumOutput
(rawStr)¶Parses the strings from the PR650 as received after sending the command ‘d5’. The input argument “rawStr” can be the output from a single phosphor spectrum measurement or a list of 3 such measurements [rawR, rawG, rawB].
sendMessage
(message, timeout=0.5, DEBUG=False)¶Send a command to the photometer and wait an alloted timeout for a response (Timeout should be long for low light measurements)
psychopy.hardware.pr.
PR655
(port)¶An interface to the PR655/PR670 via the serial port.
example usage:
from psychopy.hardware.pr import PR655
myPR655 = PR655(port)
myPR655.getLum() # make a measurement
nm, power = myPR655.getLastSpectrum() # get a power spectrum for the
last measurement
NB psychopy.hardware.findPhotometer()
will locate and return
any supported device for you so you can also do:
from psychopy import hardware
phot = hardware.findPhotometer()
print(phot.getLum())
Troubleshooting: | |
---|---|
If the device isn’t responding try turning it off and turning it on again, and/or disconnecting/reconnecting the USB cable. It may be that the port has become controlled by some other program. |
endRemoteMode
()¶Puts the colorimeter back into normal mode
getDeviceSN
()¶Return the device serial number
getDeviceType
()¶Return the device type (e.g. ‘PR-655’ or ‘PR-670’)
getLastColorTemp
()¶Fetches (from the device) the color temperature (K) of the last measurement
Returns: | list: status, units, exponent, correlated color temp (Kelvins), CIE 1960 deviation |
---|---|
See also: | measure() automatically populates
pr655.lastColorTemp with the color temp in Kelvins |
getLastSpectrum
(parse=True)¶This retrieves the spectrum from the last call to
measure()
If parse=True (default):
The format is a num array with 100 rows [nm, power]
otherwise:
The output will be the raw string from the PR650 and should then be passed toparseSpectrumOutput()
. It’s more efficient to parse R,G,B strings at once than each individually.
getLastTristim
()¶Fetches (from the device) the last CIE 1931 Tristimulus values
Returns: | list: status, units, Tristimulus Values |
---|---|
See also: | measure() automatically populates pr655.lastTristim
with just the tristimulus coordinates |
getLastUV
()¶Fetches (from the device) the last CIE 1976 u,v coords
Returns: | list: status, units, Photometric brightness, u, v |
---|---|
See also: | measure() automatically populates pr655.lastUV
with [u,v] |
getLastXY
()¶Fetches (from the device) the last CIE 1931 x,y coords
Returns: | list: status, units, Photometric brightness, x,y |
---|---|
See also: | measure() automatically populates pr655.lastXY
with [x,y] |
measure
(timeOut=30.0)¶Make a measurement with the device.
This automatically populates:
.lastLum
.lastSpectrum
- .lastCIExy
- .lastCIEuv
parseSpectrumOutput
(rawStr)¶Parses the strings from the PR650 as received after sending the command ‘D5’. The input argument “rawStr” can be the output from a single phosphor spectrum measurement or a list of 3 such measurements [rawR, rawG, rawB].
sendMessage
(message, timeout=0.5, DEBUG=False)¶Send a command to the photometer and wait an alloted timeout for a response (Timeout should be long for low light measurements)
startRemoteMode
()¶Sets the Colorimeter into remote mode