1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
# PyEPL: hardware/eeg/pulse/macpulse.py
#
# Copyright (C) 2003-2005 Michael J. Kahana
# Authors: Ian Schleifer, Per Sederberg, Aaron Geller, Josh Jacobs
# URL: http://memory.psych.upenn.edu/programming/pyepl
#
# Distributed under the terms of the GNU Lesser General Public License
# (LGPL). See the license.txt that came with this file.
"""
Sends out synch pulses via the ActiveWire USB device for macs only.
"""
from pulseexc import EPLPulseEEGException
import objc
board=None
def initialize(**options):
pass
def finalize():
pass
def openPort():
global board
objc.loadBundle('ActiveWireBoard',globals(),bundle_path='/Library/Frameworks/ActiveWireBoard.framework');
board=ActiveWireBoard.alloc()
board.init()
if board.openBoard()==False:
print 'error opening board'
raise EPLPulseEEGException("Couldn't open ActiveWire Board")
if board.setBinaryPinDirections_("1111111111111111") == False:
raise EPLPulseEEGException("Couldn't set pin directions")
setState(False) #force the board to always start low
def closePort():
global board
board.closeBoard()
board=None
def setState(state):
global board
if state:
ret=board.writeBinaryData_length_("1111111111111111",2)
else:
ret=board.writeBinaryData_length_("0000000000000000",2)
if not ret:
raise EPLPulseEEGException("Error writing to the Activewireboard")
def setSignal(state, signal):
global board
if state:
ret=board.writeBinaryData_length_(signal, 2)
else:
ret=board.writeBinaryData_length_("0000000000000000",2)
if not ret:
raise EPLPulseEEGException("Error writing to the Activewireboard")
|