def addRelay(self): if self.relayPorts.count() == 0: QMessageBox.critical(self, "Relay Error", "Out of relay ports.") return self.interruptHandler() self.newDevMode = True self.currentShowDev = Relay(self.DevFrame, self.data, self.relayPorts) self.currentShowDev.showDetails() self.pushButton.clicked.connect(self.addDevToList)
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)