def run(self):
     tool = QRCode()
     errorCorrection = self.transferErrorCorrectionValue(
         self.parent.errorCorrectionValue)
     img = tool.make(self.content, self.parent.logoPath, self.parent.style,
                     errorCorrection)
     img.save(self.parent.config.get('single_qrcode_cache_key'))
     print('生成完成')
     self.signal.emit('OK')
示例#2
0
    def run(self):
        # 读取文件
        excel = load_workbook(self.batchFile)
        sheetnames = excel.sheetnames
        sheet = excel[sheetnames[0]]
        # 整合表数据
        # 数据格式 [ ['内容', '名字'], [], [] ]
        data = []
        for i in range(2, sheet.max_row + 1):
            item = []
            for j in range(1, sheet.max_column + 1):
                item.append(sheet.cell(row=i, column=j).value)
            data.append(item)

        QRTool = QRCode()

        # 准备进度条数据
        dataLength = len(data)

        success = 0
        fail = 0
        # 生成二维码
        for i, vo in enumerate(data):
            progressBarValue = int(i + 1) / dataLength * 100
            try:
                img = QRTool.make(str(vo[0]), self.batchLogoPath,
                                  self.batchStyle)
                imgName = str(i + 1) + '.png'
                try:
                    if vo[1]: imgName = str(vo[1]) + '.png'
                except IndexError:
                    pass

                img.resize((self.batchSize, self.batchSize)).save(
                    os.path.join(self.savePath, imgName))
                message = '<p style="margin:2">{} 生成成功</p>'.format(vo[0])
                success = success + 1
            except:
                print('error: ', sys.exc_info()[0])
                fail = fail + 1
                message = '<p style="margin:2;color:red">{} 生成失败</p>'.format(
                    vo[0])
            self.signal.emit({
                'progressBarValue': progressBarValue,
                'message': message
            })

        message = '执行完毕, 共处理 {} 条数据, 成功生成 {} 个二维码, 失败 {} 个.'.format(
            dataLength, success, fail)
        self.signal.emit({'progressBarValue': 100, 'message': message})
    def process(self, status):
        name = status["name"]
        value = status["value"]

        if (name == "FACE"):
            if int(value["distance"]) >= 0:
                self.state.face = Face(int(value["coordx"]),
                                       int(value["coordy"]),
                                       int(value["distance"]))
                self.runCallback("face")

            else:
                self.runCallback("lostface")
                self.resetFace()

        elif (name == "BLOB"):
            self.state.blobs[value["color"]].posx = int(value["posx"])

            self.state.blobs[value["color"]].posy = int(value["posy"])

            self.state.blobs[value["color"]].size = int(value["size"])

            self.runCallback("blob")

        elif (name == "QRCODEAPPEAR"):

            self.state.qr = QRCode(float(value["coordx"]),
                                   float(value["coordy"]),
                                   float(value["distance"]),
                                   float(value["p1x"]), float(value["p1y"]),
                                   float(value["p2x"]), float(value["p2y"]),
                                   float(value["p3x"]), float(value["p3y"]),
                                   value["id"])

            self.runCallback("newqr")

        elif (name == "QRCODE"):
            self.state.qr = QRCode(float(value["coordx"]),
                                   float(value["coordy"]),
                                   float(value["distance"]),
                                   float(value["p1x"]), float(value["p1y"]),
                                   float(value["p2x"]), float(value["p2y"]),
                                   float(value["p3x"]), float(value["p3y"]),
                                   value["id"])
            self.runCallback("qr")

        elif (name == "QRCODELOST"):
            self.state.qr = QRCode(0, 0, 0, 0, 0, 0, 0, 0, 0, "None")
            self.runCallback("lostqr")
示例#4
0
    def __init__(self):
        self.id = 0

        self.noise = 0

        self.claps = 0

        self.irs = []
        self.leds = []

        self.baseBattery = 0
        self.phoneBattery = 0

        self.face = Face(0, 0, -1)

        self.tapx = 0
        self.tapy = 0

        self.flingAngle = 0
        self.flingTime = 0
        self.flingDistance = 0
        self.brightness = 0

        self.pitch = 0
        self.yaw = 0
        self.roll = 0

        self.accelx = 0
        self.accely = 0
        self.accelz = 0

        self.panPos = 0
        self.tiltPos = 0

        self.blobs = {
            "red": Blob("red", 0, 0, 0),
            "green": Blob("green", 0, 0, 0),
            "blue": Blob("blue", 0, 0, 0),
            "custom": Blob("custom", 0, 0, 0)
        }

        self.qr = QRCode(0, 0, 0, 0, 0, 0, 0, 0, 0, "None")

        self.lastNote = ''
        self.lastNoteDuration = 0

        self.wheelPosR = 0
        self.wheelPosL = 0
        self.wheelSpeedR = 0
        self.wheelSpeedL = 0

        self.wheelLock = False
        self.panLock = False
        self.tiltLock = False
        self.degreesLock = False
        self.talkLock = False

        self.emotion = "normal"
示例#5
0
    def resetSensors(self):
        self.claps = 0

        self.irs = []

        self.baseBattery = 0
        self.phoneBattery = 0

        self.face = Face(0, 0, 0)

        self.tapx = 0
        self.tapy = 0

        self.flingAngle = 0
        self.flingTime = 0
        self.flingDistance = 0
        self.brightness = 0

        self.pitch = 0
        self.yaw = 0
        self.roll = 0

        self.accelx = 0
        self.accely = 0
        self.accelz = 0

        self.panPos = 0
        self.tiltPos = 0

        self.blobs = {
            "red": Blob("red", 0, 0, 0, 0, 0),
            "green": Blob("green", 0, 0, 0, 0, 0),
            "blue": Blob("blue", 0, 0, 0, 0, 0),
            "custom": Blob("custom", 0, 0, 0, 0, 0),
        }

        self.qr = QRCode(0, 0, 0, 0, 0, 0, 0, 0, 0, "None")

        self.detectedObject = DetectedObject(0, 0, 0, 0, 0.0, "")
        self.tag = Tag(0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                       "")
        self.lines = Lines([], 0)
        self.lanePro = LanePro(0, 0, 0, 0, 0, 0, [], 0)
        self.laneBasic = LaneBasic(0, 0, 0, 0, 0)

        self.lastNote = 0
        self.lastNoteDuration = 0

        self.wheelPosR = 0
        self.wheelPosL = 0
        self.wheelSpeedR = 0
        self.wheelSpeedL = 0

        self.emotion = "normal"
示例#6
0
    def process(self, status):
        name = status["name"]
        value = status["value"]

        if (name == "FACE"):
            if int(value["distance"]) >= 0:
                self.state.face = Face(int(value["coordx"]),
                                       int(value["coordy"]),
                                       int(value["distance"]))
                self.runCallback("face")

            else:
                self.runCallback("lostface")
                self.resetFace()

        elif (name == "BLOB"):
            self.state.blobs[value["color"]].posx = int(value["posx"])

            self.state.blobs[value["color"]].posy = int(value["posy"])

            self.state.blobs[value["color"]].size = int(value["size"])

            self.state.blobs[value["color"]].status_timestamp = int(
                value["timestamp"])

            self.state.blobs[value["color"]].frame_timestamp = int(
                value["frame_timestamp"])

            self.runCallback("blob")

        elif name == "QRCODEAPPEAR":
            self.state.qr = QRCode(float(value["coordx"]),
                                   float(value["coordy"]),
                                   float(value["distance"]), float(0),
                                   float(0), float(0), float(0), float(0),
                                   float(0), value["id"])
            self.runCallback("newqr")

        elif name == "QRCODE":
            self.state.qr = QRCode(float(value["coordx"]),
                                   float(value["coordy"]),
                                   float(value["distance"]),
                                   float(value["p1x"]), float(value["p1y"]),
                                   float(value["p2x"]), float(value["p2y"]),
                                   float(value["p3x"]), float(value["p3y"]),
                                   value["id"])
            self.runCallback("qr")

        elif name == "QRCODELOST":
            self.state.qr = QRCode(0, 0, 0, 0, 0, 0, 0, 0, 0, "None")
            self.runCallback("lostqr")

        elif name == "TAG":
            self.state.tag = Tag(
                int(value["cor1x"]), int(value["cor1y"]), int(value["cor2x"]),
                int(value["cor2y"]), int(value["cor3x"]), int(value["cor3y"]),
                int(value["cor4x"]), int(value["cor4y"]),
                float(value["rvec_0"]), float(value["rvec_1"]),
                float(value["rvec_2"]), float(value["tvec_0"]),
                float(value["tvec_1"]), float(value["tvec_2"]), value["id"])
            self.runCallback("tag")

        elif name == "DETECTED_OBJECT":
            self.state.detectedObject = DetectedObject(
                int(value["posx"]), int(value["posy"]), int(value["width"]),
                int(value["height"]), float(value["confidence"]),
                value["label"])
            self.runCallback("detectedobject")
        elif name == "LANE_BASIC":
            self.state.laneBasic = LaneBasic(float(value["a1"]),
                                             float(value["b1"]),
                                             float(value["a2"]),
                                             float(value["b2"]),
                                             int(value["id"]))
            self.runCallback("lanebasic")
        elif name == "LANE_PRO":
            self.state.lanePro = LanePro(float(value["left_a"]),
                                         float(value["left_b"]),
                                         float(value["left_c"]),
                                         float(value["right_a"]),
                                         float(value["right_b"]),
                                         float(value["right_c"]),
                                         json.loads(value["minv"]),
                                         int(value["id"]))
            self.runCallback("lanepro")
        elif name == "LINE":
            self.state.lines = Lines(json.loads(value["mat"]),
                                     int(value["id"]))
            self.runCallback("line")