Exemple #1
0
    def run_step(self, sblink=False):
        millis = int(round(time.time() * 1000))
        self.step += 1
        self.time_flag[self.step] = millis
        self.notify_observers(self.step)
        config_list = self.CS_config[self.step]
        print(config_list[0])
        # take the row
        # turn on or off all the stimuli

        # turn on or off the delivery
        if config_list[2] == 0:
            if self.infuse == True:
                new_era.stop_pump(self.pser, self.pump)
                self.infuse = False
        elif config_list[2] == 1:
            if self.infuse == False:
                new_era.set_rate(self.pser, self.pump, flowrate)
                new_era.run_all(self.pser)
                self.infuse = True

        if config_list[1] == 0:
            self.ard.setLow(pin_LED)  # keep the LED off
            time.sleep(config_list[0])
        elif config_list[1] == 1:
            if sblink:
                self.blink(config_list[0])
            else:
                self.ard.setHigh(pin_LED)
                time.sleep(config_list[0])
Exemple #2
0
    def run_step(self, sblink=False):
        millis = int(round(time.time() * 1000))
        self.step += 1
        self.time_flag[self.step] = millis
        self.notify_observers(self.step)
        config_list = self.CS_config[self.step]
        print(config_list[0])
        # take the row
        # turn on or off all the stimuli

        # turn on or off the delivery
        if config_list[2] == 0:
            if (self.infuse == True):
                new_era.stop_pump(self.pser, self.pump)
                self.infuse = False
        elif config_list[2] == 1:
            if (self.infuse == False):
                new_era.set_rate(self.pser, self.pump, flowrate)
                new_era.run_all(self.pser)
                self.infuse = True

        if config_list[1] == 0:
            self.ard.setLow(pin_LED)  # keep the LED off
            time.sleep(config_list[0])
        elif config_list[1] == 1:
            if sblink:
                self.blink(config_list[0])
            else:
                self.ard.setHigh(pin_LED)
                time.sleep(config_list[0])
    def run_update(self):
        #check if the flow rates are legit numbers, if not set to zero
        self.runbtn.setChecked(1)
        self.stopbtn.setChecked(0)
        rates = {}
        for pump in self.rates:
            if str(self.rates[pump].text()).strip()[1:].isdigit(): #kinda a hack to allow negative numbers
                rates[pump] = str(self.rates[pump].text()).strip()
            else:
                rates[pump] = '0'
                self.rates[pump].setText('0')

        if self.curr_state=='Running':
            new_era.stop_all(self.ser)
            new_era.set_rates(self.ser,rates)
            new_era.run_all(self.ser)
            actual_rates = new_era.get_rates(self.ser,rates.keys())
            self.commandbar.setText('Last command: update '+', '.join(['p%i=%s'%(p,actual_rates[p]) for p in actual_rates]))
            [self.currflow[pump].setText(actual_rates[pump]+' ul/hr') for pump in actual_rates]
                
        if self.curr_state=='Stopped':
            new_era.set_rates(self.ser,rates)
            new_era.run_all(self.ser)
            self.curr_state = 'Running'
            self.statusbar.setText('Status: '+self.curr_state)
            actual_rates = new_era.get_rates(self.ser,rates.keys())
            self.commandbar.setText('Last command: run '+', '.join(['p%i=%s'%(p,actual_rates[p]) for p in actual_rates]))
            [self.currflow[pump].setText(actual_rates[pump]+' ul/hr') for pump in actual_rates]
Exemple #4
0
    def run_update(self):
        #check if the flow rates are legit numbers, if not set to zero
        self.runbtn.setChecked(1)
        self.stopbtn.setChecked(0)
        rates = {}
        volumes = {}
        for pump in self.rates:
            if str(self.rates[pump].text()).strip()[1:].isdigit(
            ):  #kinda a hack to allow negative numbers
                rates[pump] = str(self.rates[pump].text()).strip()
            else:
                rates[pump] = '0'
                self.rates[pump].setText('0')
            # if the pump volume is set
            if str(self.volume[pump].text()).strip()[1:].isdigit():
                volumes[pump] = str(self.volume[pump].text()).strip()
            else:
                volumes[pump] = '0'
            print(('rate of pump ' + str(pump)))
            print((rates[pump]))
            # added by Dan on 04/05

        if self.curr_state == 'Running':
            new_era.stop_all(self.ser)
            new_era.set_rates(self.ser, rates)
            new_era.run_all(self.ser)
            actual_rates = new_era.get_rates(self.ser, list(rates.keys()))
            self.commandbar.setText('Last command: update ' + ', '.join(
                ['p%i=%s' % (p, actual_rates[p]) for p in actual_rates]))
            [
                self.currflow[pump].setText(actual_rates[pump] + ' ul/hr')
                for pump in actual_rates
            ]

        if self.curr_state == 'Stopped':
            new_era.set_rates(self.ser, rates)
            new_era.run_all(self.ser)
            self.curr_state = 'Running'
            self.statusbar.setText('Status: ' + self.curr_state)
            actual_rates = new_era.get_rates(self.ser, list(rates.keys()))
            self.commandbar.setText('Last command: run ' + ', '.join(
                ['p%i=%s' % (p, actual_rates[p]) for p in actual_rates]))
            [
                self.currflow[pump].setText(actual_rates[pump] + ' ul/hr')
                for pump in actual_rates
            ]
Exemple #5
0
    def run_update(self):
        #check if the flow rates are legit numbers, if not set to zero
        self.runbtn.setChecked(1)
        self.stopbtn.setChecked(0)
        rates = {}
        for pump in self.rates:
            if isfloat(self.rates[pump].text()):
                rates[pump] = str(self.rates[pump].text()).strip()
            else:
                rates[pump] = '0'
                self.rates[pump].setText('0')

        self.timer.stop()
        self.label_time.setText('-:--:--')
        self.timerbtn.setChecked(0)

        if self.curr_state == 'Running':
            new_era.stop_all(self.ser)
            new_era.set_rates(self.ser, rates)
            new_era.run_all(self.ser)
            actual_rates = new_era.get_rates(self.ser, rates.keys())
            self.commandbar.setText('Last command: update ' + ', '.join(
                ['p%i=%s' % (p, actual_rates[p]) for p in actual_rates]))
            [
                self.currflow[pump].setText(actual_rates[pump] + ' ul/hr')
                for pump in actual_rates
            ]

        if self.curr_state == 'Stopped':
            new_era.set_rates(self.ser, rates)
            new_era.run_all(self.ser)
            self.curr_state = 'Running'
            self.statusbar.setText('Status: ' + self.curr_state)
            actual_rates = new_era.get_rates(self.ser, rates.keys())
            self.commandbar.setText('Last command: run ' + ', '.join(
                ['p%i=%s' % (p, actual_rates[p]) for p in actual_rates]))
            [
                self.currflow[pump].setText(actual_rates[pump] + ' ul/hr')
                for pump in actual_rates
            ]
Exemple #6
0
    def run_update_timer(self):
        #check if the flow rates are legit numbers, if not set to zero
        self.timerbtn.setChecked(1)
        self.stopbtn.setChecked(0)
        rates = {}
        for pump in self.rates:
            if isfloat(self.rates[pump].text()):
                rates[pump] = str(self.rates[pump].text()).strip()
            else:
                rates[pump] = '0'
                self.rates[pump].setText('0')

        # check time input is valid
        if isfloat(self.timein.text()):
            if float(self.timein.text()) > 0:

                # set the pumps
                if self.curr_state == 'Running':
                    new_era.stop_all(self.ser)
                    new_era.set_rates(self.ser, rates)
                    new_era.run_all(self.ser)
                    actual_rates = new_era.get_rates(self.ser, rates.keys())
                    self.commandbar.setText('Last command: update ' +
                                            ', '.join([
                                                'p%i=%s' % (p, actual_rates[p])
                                                for p in actual_rates
                                            ]))
                    [
                        self.currflow[pump].setText(actual_rates[pump] +
                                                    ' ul/hr')
                        for pump in actual_rates
                    ]

                if self.curr_state == 'Stopped':
                    new_era.set_rates(self.ser, rates)
                    new_era.run_all(self.ser)
                    self.curr_state = 'Running'
                    self.statusbar.setText('Status: ' + self.curr_state)
                    actual_rates = new_era.get_rates(self.ser, rates.keys())
                    self.commandbar.setText('Last command: run ' + ', '.join([
                        'p%i=%s' % (p, actual_rates[p]) for p in actual_rates
                    ]))
                    [
                        self.currflow[pump].setText(actual_rates[pump] +
                                                    ' ul/hr')
                        for pump in actual_rates
                    ]

                # connect the button to the start method ...
                self.time = float(self.timein.text()) * 60
                text = "%d:%02d:%02d" % (self.time / 3600, self.time / 60 % 60,
                                         self.time % 60)
                self.label_time.setText(text)
                self.timer = QtCore.QTimer()
                self.startTimerDisplay()
                # connect timer to the update method
                self.timer.timeout.connect(self.updateTimerDisplay)

            else:
                self.commandbar.setText("Not a valid timer input")
                self.timerbtn.setChecked(0)
                self.stopbtn.setChecked(1)

        else:
            self.commandbar.setText("Not a valid timer input")
            self.timerbtn.setChecked(0)
            self.stopbtn.setChecked(1)