@@ -19,18 +19,35 @@ def __init__(self):
19
19
self ._name = 'BaseStimulation'
20
20
self ._parameter_dict = dict (TYPE = 'str' ,
21
21
PORT = 'str' ,
22
+ IP = 'str' ,
22
23
STIM_TIME = 'float' )
23
24
self ._settings_dict = get_stimulation_settings (self ._name , self ._parameter_dict )
24
25
self ._running = False
25
- self ._stim_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['PORT' ])
26
+ self ._stim_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['PORT' ], self . _settings_dict [ 'IP' ] )
26
27
27
28
@staticmethod
28
- def _setup_device (type , port ):
29
+ def _setup_device (type , port , ip ):
29
30
device = None
30
31
if type == 'NI' :
31
32
from experiments .utils .DAQ_output import DigitalModDevice
32
33
device = DigitalModDevice (port )
33
34
35
+ if type == 'RASPBERRY' :
36
+ from experiments .utils .gpio_control import DigitalPiDevice
37
+ device = DigitalPiDevice (port )
38
+
39
+ if type == 'RASP_NETWORK' :
40
+ from experiments .utils .gpio_control import DigitalPiDevice
41
+ if ip is not None :
42
+ device = DigitalPiDevice (port , ip )
43
+ else :
44
+ raise ValueError ('IP required for remote GPIO control.' )
45
+
46
+ if type == 'ARDUINO' :
47
+ from experiments .utils .gpio_control import DigitalArduinoDevice
48
+ device = DigitalArduinoDevice (port )
49
+
50
+
34
51
return device
35
52
36
53
def stimulate (self ):
@@ -72,23 +89,38 @@ class RewardDispenser(BaseStimulation):
72
89
def __init__ (self ):
73
90
self ._name = 'RewardDispenser'
74
91
self ._parameter_dict = dict (TYPE = 'str' ,
92
+ IP = 'str' ,
75
93
STIM_PORT = 'str' ,
76
94
REMOVAL_PORT = 'str' ,
77
95
STIM_TIME = 'float' ,
78
96
REMOVAL_TIME = 'float' )
79
97
self ._settings_dict = get_stimulation_settings (self ._name , self ._parameter_dict )
80
98
self ._running = False
81
- self ._stim_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['STIM_PORT' ])
82
- self ._removal_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['REMOVAL_PORT' ])
99
+ self ._stim_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['STIM_PORT' ],
100
+ self ._settings_dict ['IP' ])
101
+ self ._removal_device = self ._setup_device (self ._settings_dict ['TYPE' ], self ._settings_dict ['REMOVAL_PORT' ],
102
+ self ._settings_dict ['IP' ])
83
103
84
104
85
105
@staticmethod
86
- def _setup_device (type , port ):
106
+ def _setup_device (type , port , ip ):
87
107
device = None
88
108
if type == 'NI' :
89
109
from experiments .utils .DAQ_output import DigitalModDevice
90
110
device = DigitalModDevice (port )
91
111
112
+ if type == 'RASPBERRY' :
113
+ from experiments .utils .gpio_control import DigitialPiBoardDevice
114
+ device = DigitialPiBoardDevice (port )
115
+
116
+ if type == 'RASP_NETWORK' :
117
+ from experiments .utils .gpio_control import DigitialPiBoardDevice
118
+ if ip is not None :
119
+ device = DigitialPiBoardDevice (port , ip )
120
+ else :
121
+ raise ValueError ('IP required for remote GPIO control.' )
122
+
123
+
92
124
return device
93
125
94
126
def stimulate (self ):
0 commit comments