@@ -145,9 +145,19 @@ def _lowLevelOpenUnit(self, sn):
145145 serialNullTermStr = None
146146 # Passing None is the same as passing NULL
147147 m = self .lib .ps4000aOpenUnit (byref (c_handle ), serialNullTermStr )
148- self .checkResult (m )
149148 self .handle = c_handle .value
150149
150+ # This will check if the power supply is not connected
151+ # and change the power supply accordingly
152+ # Personally (me = Mark), I don't like this
153+ # since the user should address this immediately, and we
154+ # shouldn't let this go as a soft error
155+ # but I think this should do for now
156+ if m == 0x11A :
157+ self .changePowerSource (m )
158+ else :
159+ self .checkResult (m )
160+
151161 self .model = self .getUnitInfo ('VariantInfo' )
152162
153163 def _lowLevelOpenUnitAsync (self , sn ):
@@ -216,6 +226,11 @@ def _lowLevelSetChannel(self, chNum, enabled, coupling, VRange, VOffset,
216226 c_enum (VRange ), c_float (VOffset ))
217227 self .checkResult (m )
218228
229+ m = self .lib .ps4000aSetBandwidthFilter (c_int16 (self .handle ),
230+ c_enum (chNum ),
231+ c_enum (BWLimited ))
232+ self .checkResult (m )
233+
219234 def _lowLevelStop (self ):
220235 m = self .lib .ps4000aStop (c_int16 (self .handle ))
221236 self .checkResult (m )
@@ -406,6 +421,12 @@ def _lowLevelSetDeviceResolution(self, resolution):
406421 c_enum (resolution ))
407422 self .checkResult (m )
408423
424+ def _lowLevelChangePowerSource (self , powerstate ):
425+ m = self .lib .ps4000aChangePowerSource (
426+ c_int16 (self .handle ),
427+ c_enum (powerstate ))
428+ self .checkResult (m )
429+
409430 def _lowLevelGetValuesBulk (self , numSamples , fromSegment , toSegment ,
410431 downSampleRatio , downSampleMode , overflow ):
411432 """Copy data from several memory segments at once."""
0 commit comments