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)
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:
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')
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)
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)
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