Exemplo n.º 1
0
Arquivo: SFIS.py Projeto: Tayxyz/ACDC
    def SFIS_CHECK_ROUTE(self, argv):
        if not DATA.STATION_ONLINE == 'YES':
            DATA.op(argv['name'] + ',0,OFFLINE-SKIP,N/A,N/A')
            return
        try:
            lock = DATA.locks[argv['lock']]
        except:
            lock = None

        try:
            if lock:
                lock.acquire()
                logV('lock.acquire')

            r, s = self.sfis.SFIS_CheckRoute(DATA.isn)
            logV(r, repr(s))
            if r == '1':  ## PASS return
                DATA.op(argv['name'] + ',0,PASS,N/A,N/A')
                return
            if r == '0' and 'REPAIR OF' in s:
                #repair
                #if time ok
                t = GetMiddleStr(s, 'LF#:', ']')
                try:
                    int(t)
                except:
                    t = '0'
                # over repair return
                if int(DATA.repair) > 0 and int(DATA.repair) <= int(t):
                    dlg = dialog.dialog(argv)
                    dlg.info({'msg': 'OVER REPAIR COUNT = %s' % t})
                    DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
                    return

                ## AAB return

                ## repaire PASS return
                r, s = self.sfis.SFIS_Repair(DATA.isn)
                logV(r, repr(s))
                if r == '1':
                    r, s = self.sfis.SFIS_CheckRoute(DATA.isn)
                    logV(r, repr(s))
                    if r == '1':
                        DATA.op(argv['name'] + ',0,PASS,N/A,N/A')
                        return

            ##  Fail return
            dlg = dialog.dialog(argv)
            dlg.info({'msg': s})
            DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
            return
        except Exception, e:
            logE(Exception, e)
Exemplo n.º 2
0
    def showinfo(self, argv):
        try:
            barrier = DATA.barriers[argv['barrier']]
        except:
            barrier = None
        if barrier:
            try:
                if barrier.acquire():
                    logs = ['csvforid1', 'csvforid2', 'csvforid3', 'csvforid4']
                    msg = ''
                    for idx in range(4):
                        try:
                            if self.anyfail(logs[idx]):
                                msg += str(idx + 1) + ' '
                        except:
                            pass
                    msg = msg + '\n\n' + argv['msg']

                    dlg = dialog.dialog(argv)
                    dlg.info({'msg': msg})
                    logV('I do it')
                else:
                    logV('bypass')
            except Exception, e:
                logE(Exception, e)
            finally:
Exemplo n.º 3
0
    def test_led(self, argv):
        cmds = ['r\r', 'g\r', 'b\r', 'w\r', 'off']
        rts = [1, 2, 3, 4, 5]
        items = [
            'RING_LED_ALL_RED', 'RING_LED_ALL_GREEN', 'RING_LED_ALL_BLUE',
            'RING_LED_ALL_WHITE', 'RING_LED_ALL_OFF'
        ]

        for ix in range(len(cmds)):
            rt, buf = self.wr(cmds[ix], '# ')
            logV(cmds[ix], '-->', rt, buf)
            d = dialog.dialog({})
            rt = d.ledForM1({})
            if rt == rts[ix]:
                DATA.op(items[ix] + ',0,PASS,N/A,N/A')
            else:
                DATA.op(items[ix] + ',1,FAIL,N/A,N/A')
Exemplo n.º 4
0
    def SFIS_CHECK_ROUTE(self, argv):
        if not DATA.STATION_ONLINE == 'YES':
            DATA.op(argv['name'] + ',0,OFFLINE-SKIP,N/A,N/A')
            return
        try:
            lock = DATA.locks[argv['lock']]
        except:
            lock = None

        try:
            if lock:
                lock.acquire()
                logV('lock.acquire')

            r, s = self.sfis.SFIS_CheckRoute(DATA.isn)
            logV(r, repr(s))

            if r == '1':  ## PASS return
                DATA.op(argv['name'] + ',0,PASS,N/A,N/A')
                return
            if r == '0' and 'REPAIR OF' in s:
                #repair
                #if time ok
                t = GetMiddleStr(s, 'LF#:', ']')
                try:
                    int(t)
                except:
                    t = '0'
                # over repair return
                if int(DATA.repair) > 0 and int(DATA.repair) <= int(t):
                    dlg = dialog.dialog(argv)
                    dlg.info({'msg': 'OVER REPAIR COUNT = %s' % t})
                    DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
                    return

                ## AAB return
                if DATA.AAB == 'YES':
                    r, s = self.sfis.SFIS_GetVersion(DATA.isn, 'MO_D',
                                                     'DEVICE')
                    logV(r, repr(s))
                    if r != '1' or s.find('DATA GET OK') == -1:
                        dlg = dialog.dialog(argv)
                        dlg.info({'msg': 'get device fail'})
                        DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
                        return
                    items = s.split(chr(127))
                    try:
                        predeviceid = items[1]
                    except:
                        predeviceid = 'UNKNOW'
                    if predeviceid == DATA.DEVICE_ID and int(t) % 2 == 1:
                        dlg = dialog.dialog(argv)
                        dlg.info({
                            'msg':
                            'AAB:should not test on device:%s' % predeviceid
                        })
                        DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
                        return
                    elif predeviceid != DATA.DEVICE_ID and int(t) % 2 == 0:
                        dlg = dialog.dialog(argv)
                        dlg.info({
                            'msg':
                            'AAB:should test on device:%s' % predeviceid
                        })
                        DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
                        return

                ## repaire PASS return
                r, s = self.sfis.SFIS_Repair(DATA.isn)
                logV(r, repr(s))
                if r == '1':
                    r, s = self.sfis.SFIS_CheckRoute(DATA.isn)
                    logV(r, repr(s))
                    if r == '1':
                        DATA.op(argv['name'] + ',0,PASS,N/A,N/A')
                        return

            ##  Fail return
            dlg = dialog.dialog(argv)
            dlg.info({'msg': s})
            DATA.op(argv['name'] + ',1,FAIL,N/A,N/A')
            return
        except Exception, e:
            logE(Exception, e)
Exemplo n.º 5
0
    def optest(self, argv):
        'nlcli pad -c version =1.5'
        cmd = 'nlcli pad -c version\r'
        r, v = self.io.wr(cmd, '# ')
        logV(r, v)
        'nlcli pad -c "p w g 12 1"'
        cmd = 'nlcli pad -c "p w g 12 1"\r'
        r, v = self.io.wr(cmd, '# ')
        logV(r, v)

        closeLedCmd = [
            'nlcli pad -c "led_white 0 0 ff 0"\r',
            'nlcli pad -c "led_rgb 0 0 0 0 0 0"\r'
        ]
        for cmd in closeLedCmd:
            r, v = self.io.wr(cmd, '# ')
            logV(r, v)
        redLedCmd = [
            'nlcli pad -c "led_rgb 1 0 ff 0 0 1ff"\r',
            'nlcli pad -c "led_rgb 1 0 0 0 0 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 ff 0 0 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 0 0 0 1ff"\r'
        ]
        greenLedCmd = [
            'nlcli pad -c "led_rgb 1 0 0 ff 0 1ff"\r',
            'nlcli pad -c "led_rgb 1 0 0 0 0 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 0 ff 0 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 0 0 0 1ff"\r'
        ]
        blueLedCmd = [
            'nlcli pad -c "led_rgb 1 0 0 0 ff 1ff"\r',
            'nlcli pad -c "led_rgb 1 0 0 0 0 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 0 0 ff 1ff"\r',
            'nlcli pad -c "led_rgb 2 0 0 0 0 1ff"\r'
        ]
        whiteLedCmd = [
            'nlcli pad -c "led_white 1 0 ff 1ff"\r',
            'nlcli pad -c "led_white 1 0 ff 0"\r',
            'nlcli pad -c "led_white 2 0 ff 1ff"\r',
            'nlcli pad -c "led_white 2 0 ff 0"\r'
        ]
        ledCmds = {
            'close': closeLedCmd,
            'red': redLedCmd,
            'green': greenLedCmd,
            'blue': blueLedCmd,
            'white': whiteLedCmd
        }
        ledColors = ['red', 'green', 'blue', 'white']
        for color in ledColors:
            cmds = ledCmds[color]
            r, v = self.io.wr(cmds[0], '# ')
            logV(r, v)
            d = dialog.dialog({})
            r = d.yesorno({'msg': 'left %s led?' % color})
            if r == 0:
                DATA.op('LEFT_%s,0,PASS,N/A,N/A' % color)
            else:
                DATA.op('LEFT_%s,1,FAIL,N/A,N/A' % color)
            r, v = self.io.wr(cmds[1], '# ')
            logV(r, v)
            r, v = self.io.wr(cmds[2], '# ')
            logV(r, v)
            d = dialog.dialog({})
            r = d.yesorno({'msg': 'right %s led?' % color})
            if r == 0:
                DATA.op('RIGHT_%s,0,PASS,N/A,N/A' % color)
            else:
                DATA.op('RIGHT_%s,1,FAIL,N/A,N/A' % color)
            r, v = self.io.wr(cmds[3], '# ')
            logV(r, v)

        senseAll = 'nlcli pad -c senseAll\r'
        for i in range(5):
            r, v = self.io.wr(senseAll, '# ')
            logV(r, v)

        itg = 'nlcli pad -c itg\r'
        r, v = self.io.wr(itg, '# ')
        logV(r, v)
        ia = 'nlcli pad -c ia\r'
        r, v = self.io.wr(ia, '# ')
        logV(r, v)
        it0 = 'nlcli pad -c it0\r'
        r, v = self.io.wr(it0, '# ')
        logV(r, v)
        ip = 'nlcli pad -c ip\r'
        r, v = self.io.wr(ip, '# ')
        logV(r, v)
        iif = 'nlcli pad -c if\r'
        r, v = self.io.wr(iif, '# ')
        logV(r, v)
        its = 'nlcli pad -c its 1\r'
        r, v = self.io.wr(its, '# ')
        logV(r, v)
        itall = 'nlcli pad -c itall\r'
        r, v = self.io.wr(itall, '# ')
        logV(r, v)
        ia1 = 'nlcli pad -c ia\r'
        r, v = self.io.wr(ia1, '# ')
        logV(r, v)
        urt = 'nlcli uart /dev/ttysensormcu0 -p\r'
        r, v = self.io.wr(urt, '# ')
        logV(r, v)
        its0 = 'its 0\r'
        for i in range(20):
            r, v = self.io.wr(its0, '>')
            logV(r, v)
Exemplo n.º 6
0
                                msg += str(idx + 1) + ' '
                        except:
                            pass
                    msg = msg + '\n\n' + argv['msg']

                    dlg = dialog.dialog(argv)
                    dlg.info({'msg': msg})
                    logV('I do it')
                else:
                    logV('bypass')
            except Exception, e:
                logE(Exception, e)
            finally:
                barrier.release()
        else:
            dlg = dialog.dialog(argv)
            dlg.info(argv)
            logV('No barrier')

    def killDLTool(self, argv):
        try:
            barrier = DATA.barriers[argv['barrier']]
        except:
            barrier = None
        if barrier:
            if barrier.acquire():
                try:
                    subprocess.Popen("taskkill /F /IM MfgTool2.exe")
                    logV('I do it')
                except Exception, e:
                    pass