Example #1
0
 def addCloseMotorOne(self):
     if self.haveOpenLoop:
         QMessageBox.critical(self, "Error", "Open and close motors can not exist in the same configuration.")
         return
     if self.encoders.count() == 0:
         QMessageBox.critical(self, "Close Motor Error", "Out of encoder ports.")
         return
     self.interruptHandler()
     self.newDevMode = True
     self.currentShowDev = CloseLoop(self.DevFrame, self.data, self.encoders)
     self.currentShowDev.showDetails()
     self.pushButton.clicked.connect(self.addDevToList)
Example #2
0
 def __init__(self, frame, data, encoders):
     CloseLoop.__init__(self, frame, data, encoders)
     self.setType(CLOSE_LOP_TWO)
     self.mainPorts.setCurrentIndex(1)
     self._encoder2 = str(self.mainPorts.currentText())
Example #3
0
 def saveToFile(self, file):
     CloseLoop.saveToFile(self, file)
     file.write('closeLoop' + str(CloseLoop.closeLoop - 1) + '/port2: ' + self._encoder2 + '\n')
Example #4
0
 def fromDict(self, data):
     CloseLoop.fromDict(self, data)
     self._encoder2 = data['encoder2']
Example #5
0
 def toDict(self):
     data = CloseLoop.toDict(self)
     data['type'] = CLOSE_LOP_TWO
     data['encoder2'] = self._encoder2
     return data
Example #6
0
 def __init__(self, frame, data, encoders):
     CloseLoop.__init__(self, frame, data, encoders)
     self.setType(CLOSE_LOP_TWO)
     self.mainPorts.setCurrentIndex(1)
     self._encoder2 = str(self.mainPorts.currentText())
Example #7
0
 def saveToFile(self, file):
     CloseLoop.saveToFile(self, file)
     file.write('closeLoop' + str(CloseLoop.closeLoop - 1) + '/port2: ' + self._encoder2 + '\n')
Example #8
0
 def fromDict(self, data):
     CloseLoop.fromDict(self, data)
     self._encoder2 = data['encoder2']
Example #9
0
 def toDict(self):
     data = CloseLoop.toDict(self)
     data['type'] = CLOSE_LOP_TWO
     data['encoder2'] = self._encoder2
     return data
Example #10
0
    def load(self):
        pkg = rospkg.RosPack().get_path('ric_board')
        fileName = QFileDialog.getOpenFileName(self, self.tr("Load File"), "%s/DATA" % pkg, self.tr("RiC File (*.RIC)"))
        if fileName != '':
            self.new()
            self.override = False
            load = open(fileName)
            data = pickle.load(load)

            self._fileName = data[0]
            self._ns = data[1]

            yaml = open("%s/config/%s.yaml" % (pkg, self._fileName))

            conDev = yaml.readline().split(': ')[1][:-1]

            allDevs = [str(self.ConPortList.itemText(i)) for i in xrange(self.ConPortList.count())]

            for i in xrange(len(allDevs)):
                if conDev == allDevs[i]:
                    self.ConPortList.setCurrentIndex(i)
                    break

            self.nameSpace.setText(self._ns)
            self.fileName.setText(self._fileName)

            devices = data[2]

            # print devices

            for dev in devices:
                if dev['type'] == BATTERY:
                    self.currentShowDev = Battery(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == SERVO:
                    self.currentShowDev = Servo(self.DevFrame, self.data, self.servoPorts)
                    self.currentShowDev.fromDict(dev)
                    self.servoPorts.removeItem(self.currentShowDev.findItem())
                elif dev['type'] == SWITCH:
                    self.currentShowDev = Switch(self.DevFrame, self.data, self.switchPorts)
                    self.currentShowDev.fromDict(dev)
                    self.switchPorts.removeItem(self.currentShowDev.findItem())
                elif dev['type'] == IMU:
                    self.currentShowDev = Imu(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == PPM:
                    self.currentShowDev = Ppm(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == GPS:
                    self.currentShowDev = Gps(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == RELAY:
                    self.currentShowDev = Relay(self.DevFrame, self.data, self.relayPorts)
                    self.currentShowDev.fromDict(dev)
                    self.relayPorts.removeItem(self.currentShowDev.findItem())
                elif dev['type'] == URF:
                    self.currentShowDev = Urf(self.DevFrame, self.data, self.urfPorts)
                    self.currentShowDev.fromDict(dev)
                    self.urfPorts.removeItem(self.currentShowDev.findItem())
                elif dev['type'] == CLOSE_LOP_ONE:
                    self.currentShowDev = CloseLoop(self.DevFrame, self.data, self.encoders)
                    self.currentShowDev.fromDict(dev)
                    self.encoders.removeItem(self.currentShowDev.findItem())
                elif dev['type'] == CLOSE_LOP_TWO:
                    self.currentShowDev = CloseLoopTwo(self.DevFrame, self.data, self.encoders)
                    self.currentShowDev.fromDict(dev)
                    self.encoders.removeItem(self.currentShowDev.findItem())
                    self.encoders.removeItem(self.currentShowDev.findItem2())
                elif dev['type'] == OPEN_LOP:
                    self.currentShowDev = OpenLoop(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == DIFF_CLOSE:
                    self.currentShowDev = DiffClose(self.DevFrame, self.data, self.motors)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == DIFF_CLOSE_FOUR:
                    self.currentShowDev = DiffCloseFour(self.DevFrame, self.data, self.motors)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == DIFF_OPEN:
                    self.currentShowDev = DiffOpen(self.DevFrame, self.data, self.motors)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == HOKUYO:
                    self.currentShowDev = Hokuyo(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == OPRNNI:
                    self.currentShowDev = Opennni(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == USBCAM:
                    self.currentShowDev = UsbCam(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == ROBOT_MODEL:
                    self.currentShowDev = RobotModel(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == SLAM:
                    self.currentShowDev = Slam(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == PPMReader:
                    self.currentShowDev = PPMReader(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == Keyboard:
                    self.currentShowDev = KeyboardTeleop(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == JOYSTICK:
                    self.currentShowDev = JoystickTeleop(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == SMOOTHER:
                    self.currentShowDev = VelocitySmoother(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == LAUNCH:
                    self.currentShowDev = RosLaunch(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == NODE:
                    self.currentShowDev = RosNode(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)
                elif dev['type'] == EMERGENCY_SWITCH:
                    self.currentShowDev = EmergencySwitch(self.DevFrame, self.data)
                    self.currentShowDev.fromDict(dev)

                if self.currentShowDev.getDevType() == BATTERY:
                    self.haveBattery = True
                if self.currentShowDev.getDevType() == IMU:
                    self.haveIMU = True
                if self.currentShowDev.getDevType() == PPM:
                    self.havePPM = True
                if self.currentShowDev.getDevType() == GPS:
                    self.haveGPS = True



                if (self.currentShowDev.getDevType() == CLOSE_LOP_ONE) or (
                            self.currentShowDev.getDevType() == CLOSE_LOP_TWO):
                    self.haveCloseLoop = True
                    self.motors.append(self.currentShowDev.getName())
                if self.currentShowDev.getDevType() == OPEN_LOP:
                    self.haveOpenLoop = True
                    self.motors.append(self.currentShowDev.getName())
                if self.currentShowDev.getDevType() == DIFF_CLOSE or self.currentShowDev.getDevType() == DIFF_OPEN or self.currentShowDev.getDevType() == DIFF_CLOSE_FOUR:
                    self.haveDiff = True
                    self.diffEnable = True
                self.devList.addItem(QListWidgetItem(self.currentShowDev.getName()))
                self.data.append(self.currentShowDev)
                self.currentShowDev = None
            self.pushButton_2.setEnabled(True)