예제 #1
0
파일: Pump.py 프로젝트: Sawiq/pykpc
 def ConnectPump(self, event):
     self.DisconnectPump()
     if not self.GetAvailableComPorts():
         event = Events.PumpConnectedEvent(Events.PUMP_CONNECTED, self.GetId(), 0, _("No device connected!"))
         wx.PostEvent(self.parent, event)
         return
         
     numberOfDevices = len(self.availableComPorts)
     
     code = 0
     
     if numberOfDevices > 0:
         try:
             print("[INFO]\tCreating pump thread...")
             self.pumpThread = Threads.PumpThread(self.availableComPorts[0], self.pumpQueue, self)
             self.pumpThread.start()
         except Exception, ex:
             print ("[ERROR]\t {}".format(ex.message))
         else:
             print("[INFO]\t {}".format("Pump thread created."))
             self.pumpThread.Write("FLOW?\r")
             code += 1
예제 #2
0
파일: Pump.py 프로젝트: Sawiq/pykpc
class Pump(wx.EvtHandler):
    PORT_BAUD_RATE = 9600
    E_CONNECTION = _("Connection failed")
    MIN_FLOW = 100
    MAX_FLOW = 5000

    def __init__(self, parent, *args, **kw):
        super(Pump, self).__init__(*args, **kw)
        self.id = wx.NewId()
        self.parent = parent

        self.isConnected = False
        self.isFlowOn = False
        
        self.pumpQueue = Queue.Queue()
        self.injQueue = Queue.Queue()
        
        self.Bind(Events.EVT_SERIALRX, self.ParsePumpResponse)
        self.Bind(Events.EVT_FLOW_IS_ON, self.OnFlowOn)
        
        self.ConnectPump(None)
                
    def GetId(self):
        return self.id
    
    def GetAvailableComPorts(self):
        self.ports = serial.tools.list_ports.comports()
        self.availableComPorts = []
        for port in serial.tools.list_ports.comports():
            self.availableComPorts.append(port.device)
        
        if len(self.availableComPorts) < 1:
            print ("[ERROR]\tNo devices connected!")
            return []
            
        print("[INFO]\tConnected COM ports: " + str(self.availableComPorts))

        return self.availableComPorts


    def ConnectPump(self, event):
        self.DisconnectPump()
        if not self.GetAvailableComPorts():
            event = Events.PumpConnectedEvent(Events.PUMP_CONNECTED, self.GetId(), 0, _("No device connected!"))
            wx.PostEvent(self.parent, event)
            return
            
        numberOfDevices = len(self.availableComPorts)
        
        code = 0
        
        if numberOfDevices > 0:
            try:
                print("[INFO]\tCreating pump thread...")
                self.pumpThread = Threads.PumpThread(self.availableComPorts[0], self.pumpQueue, self)
                self.pumpThread.start()
            except Exception, ex:
                print ("[ERROR]\t {}".format(ex.message))
            else:
                print("[INFO]\t {}".format("Pump thread created."))
                self.pumpThread.Write("FLOW?\r")
                code += 1
                
        if numberOfDevices > 1:
            try:
                print("[INFO]\tCreating injector thread...")
                self.injThread = Threads.PumpThread(self.availableComPorts[1], self.injQueue, self)
                self.injThread.start()
            except Exception, ex:
                print ("[ERROR]\t {}".format(ex.message))
            else:
                print("[INFO]\t {}".format("Injector thread created."))
                self.injThread.Write("INJ?\r")
                code += 2