diff --git a/ais_readers_const.py b/ais_readers_const.py index 2514d4c8ba3a4d6505604d285ddf675e981c940d..d9a0f7ab644a21a2177f71b0bef40bffb70633cb 100644 --- a/ais_readers_const.py +++ b/ais_readers_const.py @@ -18,7 +18,7 @@ E_CARD_ACTION = { 0x71:'ACTION_QR_BLOCKED', 0x72:'ACTION_QR_UNKNOWN', - 0x85:'CARD_OK', + #0x85:'CARD_OK', 0xFF:'ACTION_CARD_UNKNOWN' } diff --git a/ais_shell.py b/ais_shell.py index aec18525da96a5f9425782b8c8cbfcec0d418097..09cdbc53c5fa36a9ad958ea4147e498f8601349a 100644 --- a/ais_shell.py +++ b/ais_shell.py @@ -6,7 +6,12 @@ """ -__program_version = '4.0.4.6 (build) bmr support' +""" + - added local parametar for local structure to all functions; +""" + + +__program_version = '4.0.7.2 ' import calendar, datetime from ctypes import * @@ -37,7 +42,6 @@ HND_LIST = [] HND_AIS = c_void_p() devCount = c_long() DEV_HND = device_list .S_DEVICE() - DDEV_HND ={} log_t = device_list .S_LOG() MINIMAL_LIB_VERSION = "4.9.9.3" @@ -78,12 +82,14 @@ def GetPlatformLib(): mySO = GetPlatformLib() -def AISGetVersion(): +def AISGetVersion(dev): # dev - actual device hardware_type = c_int() firmware_version = c_int() - dev = DEV_HND - DL_STATUS = mySO.AIS_GetVersion(dev.hnd,byref(hardware_type),byref(firmware_version)) - return "AIS_GetVersion() |>>hw = %d | fw = %d\n" % (hardware_type.value,firmware_version.value) + # dev = DEV_HND + active_device(dev) + dev.status = mySO.AIS_GetVersion(dev.hnd, byref(hardware_type), byref(firmware_version)) + if dev.status: return "" + return "AIS_GetVersion(dev[%d] hnd=0x%X) : hw = %d | fw = %d\n" % (dev.idx, dev.hnd, hardware_type.value, firmware_version.value) @@ -96,7 +102,7 @@ def AISUpdateAndGetCount(): return result, device_count.value -def AISOpen(): +def AISOpen(): dev = DEV_HND res = "" for hnd in HND_LIST: @@ -104,7 +110,7 @@ def AISOpen(): dev.hnd = hnd res += "AIS_Open(0x%X):{ %d(%s):%s} hnd[0x%X]\n" % (dev.hnd, aop, hex(aop), E_ERROR_CODES[aop], hnd) if aop == 0: - res += AISGetTime()[0] + res += AISGetTime(dev)[0] res += sys_get_timezone_info() return res @@ -115,8 +121,8 @@ def AISClose(): res += "AIS_Close():{ %d(%s):%s} hnd[0x%X]\n" % (aop, hex(aop), E_ERROR_CODES[aop],hnd) return res -def AISGetTime(): - dev = DEV_HND +def AISGetTime(dev): + # dev = DEV_HND currTime = c_uint64() timezone = c_int() DST = c_int() @@ -124,21 +130,44 @@ def AISGetTime(): additional = c_byte() dev.status = mySO.AIS_GetTime(dev.hnd, byref(currTime), byref(timezone), byref(DST), byref(offset), byref(additional)) if dev.status: - return wr_status("AIS_GetTime()",dev.status) + return wr_status("AIS_GetTime()", dev.status) - active_device() + active_device(dev) + res = "AIS_GetTime(dev[%d] hnd=0x%X)> {%d(%s):%s} = (tz= %d | dst= %d | offset= %d | additional= %d) %d | %s " % (dev.idx, dev.hnd, dev.status, hex(dev.status), \ E_ERROR_CODES[dev.status], timezone.value, DST.value, offset.value, additional.value, currTime.value, datetime.datetime.utcfromtimestamp(currTime.value)) return res, currTime.value - - + + +# def AISGetTime_Ext(sdev): +# +# currTime = c_uint64() +# timezone = c_int() +# DST = c_int() +# offset = c_int() +# additional = c_byte() +# sdev.status = mySO.AIS_GetTime(sdev.hnd, byref(currTime), byref(timezone), byref(DST), byref(offset), +# byref(additional)) +# if sdev.status: +# return wr_status("AIS_GetTime()", sdev.status) +# +# active_device(sdev) +# +# res = "AIS_GetTime_Ext(dev[%d] hnd=0x%X)> {%d(%s):%s} = (tz= %d | dst= %d | offset= %d | additional= %d) %d | %s " % ( +# sdev.idx, sdev.hnd, sdev.status, hex(sdev.status), \ +# E_ERROR_CODES[sdev.status], timezone.value, DST.value, offset.value, additional.value, currTime.value, +# datetime.datetime.utcfromtimestamp(currTime.value)) +# return res, currTime.value + + + -def AISSetTime(): - pass +def AISSetTime(dev): + pass + # dev = DEV_HND timez = c_int DST = c_int - offset = c_int - dev = DEV_HND + offset = c_int currTime = int(time.mktime(time.localtime(calendar.timegm(time.gmtime())))) timez = sys_get_timezone() DST = sys_get_daylight() @@ -148,7 +177,7 @@ def AISSetTime(): ais_set_time.argtypes = (c_void_p, c_char_p, c_uint64, c_int, c_int, c_int, c_int) ais_set_time.restype = c_int result = ais_set_time(dev.hnd, PASS, currTime, timez, DST, offset, additional) - active_device() + active_device(dev) res = "AIS_SetTime(dev[%d] : pass:%s)> timezone=%d | DST=%d | offset=%d | additional=%d {%d(%s)%s}|%s\n" % \ (dev.idx, PASS, timez, DST, offset, additional, result, hex(result), E_ERROR_CODES[result], datetime.datetime.utcfromtimestamp(currTime)) return res @@ -164,8 +193,8 @@ def AISEraseAllDevicesForCheck(): mySO.AIS_List_EraseAllDevicesForCheck() -def AISAddDeviceForCheck(devType,devId): - return mySO.AIS_List_AddDeviceForCheck(devType,devId) +def AISAddDeviceForCheck(devType, devId): + return mySO.AIS_List_AddDeviceForCheck(devType, devId) def AISGetLibraryVersionStr(): @@ -174,11 +203,11 @@ def AISGetLibraryVersionStr(): return dll_ver() -def active_device(): - dev = DEV_HND +def active_device(dev): + # dev = DEV_HND dev.idx = HND_LIST.index(dev.hnd) dev.idx += 1 - res = "dev [%d] | hnd= 0x%X " % (dev.idx,dev.hnd) + res = "dev [%d] | hnd= 0x%X " % (dev.idx, dev.hnd) return res @@ -194,23 +223,24 @@ def print_percent(Percent): progress.percent_old += 1 -def ee_lock(): - dev = DEV_HND - dev.status = mySO.AIS_EE_WriteProtect(dev.hnd,PASS) - return wr_status("EEPROM Lock - AIS_EE_WriteProtect()",dev.status) +def ee_lock(dev): + # dev = DEV_HND + dev.status = mySO.AIS_EE_WriteProtect(dev.hnd, PASS) + return wr_status("EEPROM Lock - AIS_EE_WriteProtect()", dev.status) -def ee_unlock(): - dev = DEV_HND - dev.status = mySO.AIS_EE_WriteUnProtect(dev.hnd,PASS) - return wr_status("EEPROM Unlock - AIS_EE_WriteUnProtect()",dev.status) +def ee_unlock(dev): + # dev = DEV_HND + dev.status = mySO.AIS_EE_WriteUnProtect(dev.hnd, PASS) + return wr_status("EEPROM Unlock - AIS_EE_WriteUnProtect()",dev. status) -def whitelist_read(): +def whitelist_read(dev): + + # dev = DEV_HND white_list_size = c_int() - white_list = c_char_p() - dev = DEV_HND - dev.status = mySO.AIS_Whitelist_Read(dev.hnd,PASS,byref(white_list)) + white_list = c_char_p() + dev.status = mySO.AIS_Whitelist_Read(dev.hnd, PASS, byref(white_list)) if dev.status == DL_OK: white_list_size = len(white_list.value) else: @@ -218,35 +248,35 @@ def whitelist_read(): res = "AIS_Whitelist_Read(pass:%s): size= %d >\n%s\n > %s\n" % (PASS, white_list_size, white_list.value, dl_status2str(dev.status)) if dev.status != 0 and white_list_size<=0: return res - return active_device() + res + return active_device(dev) + res -def blacklist_read(dev=DEV_HND): - list_size = c_int() - str_black_list = c_char_p() - dev.status = mySO.AIS_Blacklist_Read(dev.hnd, PASS, byref(str_black_list)) +def blacklist_read(dev): #dev=DEV_HND + list_size = c_int() + str_black_list = c_char_p() + dev.status = mySO.AIS_Blacklist_Read(dev.hnd, PASS, byref(str_black_list)) if dev.status == DL_OK: list_size = len(str_black_list.value) else: list_size = 0 res = "AIS_Blacklist_Read(pass:%s): size= %d >\n%s\n > %s\n" % (PASS, list_size, str_black_list.value, dl_status2str(dev.status)) - if dev.status !=0 and list_size<= 0: + if dev.status !=0 and list_size<= 0: return res - return active_device() + res + return active_device(dev) + res -def blacklist_write(black_list_write): - dev = DEV_HND - dev.status = mySO.AIS_Blacklist_Write(dev.hnd,PASS,black_list_write) - return active_device() + \ +def blacklist_write(black_list_write, dev): + # dev = DEV_HND + dev.status = mySO.AIS_Blacklist_Write(dev.hnd, PASS, black_list_write) + return active_device(dev) + \ "\nAIS_Blacklist_Write(pass:%s):black_list= %s > %s\n" % (PASS, black_list_write, dl_status2str(dev.status)) -def whitelist_write(white_list_write): - dev = DEV_HND - dev.status = mySO.AIS_Whitelist_Write(dev.hnd,PASS,white_list_write) - return active_device() + "\nAIS_Whitelist_Write(pass:%s):white_list= %s > %s\n" % (PASS, white_list_write, dl_status2str(dev.status)) +def whitelist_write(white_list_write, dev): + # dev = DEV_HND + dev.status = mySO.AIS_Whitelist_Write(dev.hnd, PASS, white_list_write) + return active_device(dev) + "\nAIS_Whitelist_Write(pass:%s):white_list= %s > %s\n" % (PASS, white_list_write, dl_status2str(dev.status)) @@ -258,9 +288,9 @@ def print_percent_hdr(): sys.stdout.write(str(i % 10)) sys.stdout.write("\n%=") - -def list_device(dev = DEV_HND): - list_init = False + +def list_device(dev= DEV_HND): + list_init = False if not list_init: prepare_list_for_check() list_init = True @@ -272,62 +302,62 @@ def list_device(dev = DEV_HND): return devCount -def DoCmd(dev=DEV_HND): +def DoCmd(dev): # dev = DEV_HND pass if dev.status: return dev.cmd_finish = False progress.print_hdr = True sys.stdout.write('\n') - while (not dev.cmd_finish): + while not dev.cmd_finish: if not MainLoop(dev): break -def log_get(hnd=None): - dev = DEV_HND - activDev = active_device() +def log_get(dev): #hnd=None + # dev = DEV_HND + activDev = active_device(dev) dev.status = mySO.AIS_GetLog(dev.hnd, PASS) #dev.status res = wr_status('AIS_GetLog()', dev.status) if dev.status != 0: return activDev + res DoCmd(dev) - log = PrintLOG() + log = PrintLOG(dev) return activDev + res + log -def log_by_index(start_index, stop_index, hnd=None): - dev = DEV_HND - activDev = active_device() +def log_by_index(start_index, stop_index, dev): #, hnd=None + # dev = DEV_HND + activDev = active_device(dev) dev.status = mySO.AIS_GetLogByIndex(dev.hnd, PASS, start_index, stop_index) res = "AIS_GetLogByIndex:(pass: %s [ %d - %d ] >> %s)\n" % (PASS, start_index, stop_index, E_ERROR_CODES[dev.status]) if dev.status != 0: return activDev + res DoCmd(dev) - log = PrintLOG() + log = PrintLOG(dev) return activDev + res + log - -def log_by_time(start_time, end_time, hnd=None): + +def log_by_time(start_time, end_time, dev): # , hnd=None start_time = c_uint64(start_time) - end_time = c_uint64(end_time) - dev = DEV_HND - activDev = active_device() + end_time = c_uint64(end_time) + # dev = DEV_HND + activDev = active_device(dev) dev.status = mySO.AIS_GetLogByTime(dev.hnd, PASS, start_time, end_time) res = "AIS_GetLogByTime:(pass: %s [ %10d - %10d ] >> %s)\n" % (PASS, start_time.value, end_time.value, E_ERROR_CODES[dev.status]) if dev.status !=0: return activDev + res DoCmd(dev) - log = PrintLOG() + log = PrintLOG(dev) return activDev + res + log -def get_unread_log_one(choise): +def get_unread_log_one(choise, dev): log_available = c_uint32() - r_log = c_int - dev = DEV_HND + r_log = c_int + # dev = DEV_HND def u_log_info(): res_log,res_rrte = "","" @@ -348,16 +378,16 @@ def get_unread_log_one(choise): def u_log_get(): - log_get_res = "" - logIndex = c_int() - logAction = c_int() - logReaderId = c_int() - logCardId = c_int() - logSystemId = c_int() - nfcUid = (c_uint8 * NFC_UID_MAX_LEN)() - nfcUidLen = c_int() - timeStamp = c_uint64() - nfc_uid = str() + log_get_res = "" + logIndex = c_int() + logAction = c_int() + logReaderId = c_int() + logCardId = c_int() + logSystemId = c_int() + nfcUid = (c_uint8 * NFC_UID_MAX_LEN)() + nfcUidLen = c_int() + timeStamp = c_uint64() + nfc_uid = str() log_header = rte_list_header[0] + '\n' + \ rte_list_header[1] + '\n' + \ @@ -382,39 +412,27 @@ def get_unread_log_one(choise): nfc_uid += ":%0.2X" % nfcUid[i] uid_uid_len = '[' + str(nfcUidLen.value) + '] | ' + nfc_uid - - - dev.log.log_index = logIndex.value - dev.log.log_action = logAction.value - dev.log.log_reader_id = logReaderId.value - dev.log.log_card_id = logCardId.value - dev.log.log_system_id = logSystemId.value - dev.log.log_nfc_uid = nfcUid + + dev.log.log_index = logIndex.value + dev.log.log_action = logAction.value + dev.log.log_reader_id = logReaderId.value + dev.log.log_card_id = logCardId.value + dev.log.log_system_id = logSystemId.value + dev.log.log_nfc_uid = nfcUid dev.log.log_nfc_uid_len = nfcUidLen.value - dev.log.log_timestamp = timeStamp.value - - - - log_get_res += rte_format.format (logIndex.value, - dbg_action2str(logAction.value), - logReaderId.value, - logCardId.value, - logSystemId.value, - #uidUidLen,#nfc_uid + nfc_uid_len - uid_uid_len, - timeStamp.value, - time.ctime(timeStamp.value) - ) - - - + dev.log.log_timestamp = timeStamp.value + + log_get_res += rte_format.format (logIndex.value, dbg_action2str(logAction.value), logReaderId.value, \ + logCardId.value, logSystemId.value, #uidUidLen,#nfc_uid + nfc_uid_len + uid_uid_len, timeStamp.value, time.ctime(timeStamp.value)) + res = log_get_res + '\n' + rte_list_header[2] + '\n' if GetBaseName() == AIS_SHELL: print log_header print res - print wr_status("AIS_UnreadLOG_Get()",dev.status) + print wr_status("AIS_UnreadLOG_Get()", dev.status) return return log_header + res + wr_status("AIS_UnreadLOG_Get()", dev.status) @@ -438,42 +456,38 @@ def get_unread_log_one(choise): return u_log_ack() -def get_io_state(): +def get_io_state(dev): pass - dev = DEV_HND + # dev = DEV_HND intercom = c_uint32() door = c_uint32() relay_state = c_uint32() dev.status = mySO.AIS_GetIoState(dev.hnd, byref(intercom), byref(door), byref(relay_state)) if dev.status != 0: - return active_device() + wr_status("AIS_GetIoState()",dev.status) - return active_device() + \ + return active_device(dev) + wr_status("AIS_GetIoState()", dev.status) + return active_device(dev) + \ "IO STATE= intercom= %d, door= %d, relay_state= %d\n" % (intercom.value,door.value,relay_state.value) -def relay_toogle(): - dev = DEV_HND - get_io_state() +def relay_toogle(dev): + # dev = DEV_HND + get_io_state(dev) dev.relay_state = not dev.relay_state - dev.status = mySO.AIS_RelayStateSet(dev.hnd,dev.relay_state) + dev.status = mySO.AIS_RelayStateSet(dev.hnd, dev.relay_state) res = "AIS_RelayStateSet(RELAY= %d)\n" % dev.relay_state - return active_device() + \ - res + wr_status("AIS_RelayStateSet()",dev.status) + return active_device(dev) + \ + res + wr_status("AIS_RelayStateSet()", dev.status) -def lock_open(): - dev = DEV_HND +def lock_open(dev): + # dev = DEV_HND pulse_duration = c_uint32() pulse_duration = int(PULSE_DURATION) - dev.status = mySO.AIS_LockOpen(dev.hnd,pulse_duration) + dev.status = mySO.AIS_LockOpen(dev.hnd, pulse_duration) res = "AIS_LockOpen(pulse_duration= %d ms)\n" % pulse_duration - return active_device() + \ - res + wr_status("AIS_LockOpen()",dev.status) + return active_device(dev) + \ + res + wr_status("AIS_LockOpen()", dev.status) - - - - def edit_device_list(choise, f_name=None, deviceType=0, deviceId=0): dev_name = c_char_p() dev_dsc = c_char_p() @@ -589,7 +603,7 @@ def edit_device_list(choise, f_name=None, deviceType=0, deviceId=0): return "Clear list for checking !" - def do_dev_action(f_name,device_type,device_id): + def do_dev_action(f_name, device_type, device_id): deviceType = c_int() deviceId = c_int() deviceType = device_type @@ -620,22 +634,22 @@ def edit_device_list(choise, f_name=None, deviceType=0, deviceId=0): return do_dev_action(f_name, deviceType, deviceId) -def password_change(new_pass): +def password_change(new_pass, dev): global PASS - dev = DEV_HND - dev.status = mySO. AIS_ChangePassword(dev.hnd,PASS,new_pass) + # dev = DEV_HND + dev.status = mySO. AIS_ChangePassword(dev.hnd, PASS, new_pass) if dev.status == 0: PASS = new_pass return "New default application password = %s\n" % PASS return "AIS_ChangePassword (old pass= %s new pass= %s |%s\n" % (PASS,new_pass,dl_status2str(dev.status)) -def password_set_default(new_pass): +def password_set_default(new_pass): PASS = new_pass return 'New default application password = %s\n' % PASS -def PrintLOG(): +def PrintLOG(dev): pass rte_res, res = "", "" rte_hed = rte_list_header[0] + '\n' + \ @@ -651,20 +665,20 @@ def PrintLOG(): logTimeStamp = c_uint64() nfcuid = str() - dev = DEV_HND + # dev = DEV_HND while True: #dev.status - dev.status = mySO.AIS_ReadLog(dev.hnd,byref(logIndex), byref(logAction), byref(logReaderId), byref(logCardId), \ + dev.status = mySO.AIS_ReadLog(dev.hnd, byref(logIndex), byref(logAction), byref(logReaderId), byref(logCardId), \ byref(logSystemId), logNfcUid, byref(logNfcUidLen), byref(logTimeStamp)) - dev.log.log_index = logIndex.value - dev.log.log_action = logAction.value - dev.log.log_reader_id = logReaderId.value - dev.log.log_card_id = logCardId.value - dev.log.log_system_id = logSystemId.value - dev.log.log_nfc_uid = logNfcUid + dev.log.log_index = logIndex.value + dev.log.log_action = logAction.value + dev.log.log_reader_id = logReaderId.value + dev.log.log_card_id = logCardId.value + dev.log.log_system_id = logSystemId.value + dev.log.log_nfc_uid = logNfcUid dev.log.log_nfc_uid_len = logNfcUidLen.value - dev.log.log_timestamp = logTimeStamp.value + dev.log.log_timestamp = logTimeStamp.value if dev.status != 0: #dev.status @@ -720,23 +734,15 @@ def GetTime(): print AISGetTime() - - - - def ListDevices(): - list_for_check_print() - - deviceType = E_KNOWN_DEVICE_TYPES['DL_AIS_BASE_HD_SDK'] print("AIS_List_GetDevicesForCheck() BEFORE / DLL STARTUP : %s" % ( AISGetDevicesForCheck())) AISEraseAllDevicesForCheck() - - + deviceId = 0 DL_STATUS = AISAddDeviceForCheck(deviceType, deviceId) - print("AIS_List_AddDeviceForCheck(type: %d, id: %d)> DL_STATUS{ %s }" % (deviceType,deviceId, DL_STATUS)) + print("AIS_List_AddDeviceForCheck(type: %d, id: %d)> DL_STATUS{ %s }" % (deviceType, deviceId, DL_STATUS)) # deviceId = 2 # DL_STATUS = AISAddDeviceForCheck(deviceType, deviceId) @@ -748,12 +754,7 @@ def ListDevices(): deviceId = 3 DL_STATUS = AISAddDeviceForCheck(deviceType, deviceId) - print("AIS_List_AddDeviceForCheck(type: %d, id: %d)> DL_STATUS{ %s }" % (deviceType,deviceId, DL_STATUS)) - - - - - + print("AIS_List_AddDeviceForCheck(type: %d, id: %d)> DL_STATUS{ %s }" % (deviceType, deviceId, DL_STATUS)) print("AIS_List_GetDevicesForCheck() AFTER LIST UPDATE : \n%s" % ( AISGetDevicesForCheck())) @@ -834,28 +835,20 @@ def PrintRTE(): rte_list_header[2] + '\n' while True: - DL_STATUS = mySO.AIS_ReadRTE(dev.hnd, - byref(logIndex), - byref(logAction), - byref(logReaderId), - byref(logCardId), - byref(logSystemId), - nfcUid, - byref(nfcUidLen), - byref(timeStamp) - ) - - dev.log.log_index = logIndex.value - dev.log.log_action = logAction.value - dev.log.log_reader_id = logReaderId.value - dev.log.log_card_id = logCardId.value - dev.log.log_system_id = logSystemId.value - dev.log.log_nfc_uid = nfcUid + DL_STATUS = mySO.AIS_ReadRTE(dev.hnd, byref(logIndex), byref(logAction), byref(logReaderId), byref(logCardId), byref(logSystemId), + nfcUid, byref(nfcUidLen), byref(timeStamp)) + + dev.log.log_index = logIndex.value + dev.log.log_action = logAction.value + dev.log.log_reader_id = logReaderId.value + dev.log.log_card_id = logCardId.value + dev.log.log_system_id = logSystemId.value + dev.log.log_nfc_uid = nfcUid dev.log.log_nfc_uid_len = nfcUidLen.value - dev.log.log_timestamp = timeStamp.value + dev.log.log_timestamp = timeStamp.value - if DL_STATUS != 0: + if DL_STATUS != 0: break nfc_uid = '' for i in range(0, dev.log.log_nfc_uid_len): @@ -863,26 +856,20 @@ def PrintRTE(): uid_uid_len = '[' + str(dev.log.log_nfc_uid_len) + '] | ' + nfc_uid[1:] - res_rte += rte_format.format (dev.log.log_index, - dbg_action2str(dev.log.log_action), - dev.log.log_reader_id, - dev.log.log_card_id, - dev.log.log_system_id, - uid_uid_len,#nfc_uid + nfc_uid_len - dev.log.log_timestamp, - time.ctime(dev.log.log_timestamp) - ) + res_rte += rte_format.format (dev.log.log_index, dbg_action2str(dev.log.log_action), dev.log.log_reader_id, dev.log.log_card_id, + dev.log.log_system_id, uid_uid_len,#nfc_uid + nfc_uid_len + dev.log.log_timestamp, time.ctime(dev.log.log_timestamp)) res = res_rte + '\n' + rte_list_header[2] + '\n' resultText = rte_head + res + "LOG unread (incremental) = %d\n" % dev.UnreadLog + wr_status('AIS_ReadRTE()', DL_STATUS) return resultText -def print_log_unread(dev=DEV_HND): - return "%s:LOG unread (incremental) = %d %s" % (active_device(), dev.UnreadLog, wr_status('',dev.status) ) +def print_log_unread(dev): #dev=DEV_HND + return "%s:LOG unread (incremental) = %d %s" % (active_device(dev), dev.UnreadLog, wr_status('', dev.status) ) -def MainLoop(dev=DEV_HND): +def MainLoop(dev): #dev=DEV_HND if not dev: return False, @@ -891,18 +878,18 @@ def MainLoop(dev=DEV_HND): p_print = str() rte = "" rte_dict = "" - real_time_events = c_int() - log_available = c_int() - unreadLog = c_int() - cmd_responses = c_int() - cmd_percent = c_int() - device_status = c_int() + real_time_events = c_int() + log_available = c_int() + unreadLog = c_int() + cmd_responses = c_int() + cmd_percent = c_int() + device_status = c_int() time_out_occurred = c_int() - _status = c_int() + _status = c_int() #dev.status - dev.status = mySO.AIS_MainLoop(dev.hnd, + dev.status = mySO.AIS_MainLoop(dev.hnd, byref(real_time_events), byref(log_available), byref(unreadLog), @@ -913,20 +900,19 @@ def MainLoop(dev=DEV_HND): byref(_status) ) - dev.RealTimeEvents = real_time_events.value - dev.LogAvailable = log_available.value - dev.UnreadLog = unreadLog.value - dev.cmdResponses = cmd_responses.value - dev.cmdPercent = cmd_percent.value - dev.DeviceStatus = device_status.value + dev.RealTimeEvents = real_time_events.value + dev.LogAvailable = log_available.value + dev.UnreadLog = unreadLog.value + dev.cmdResponses = cmd_responses.value + dev.cmdPercent = cmd_percent.value + dev.DeviceStatus = device_status.value dev.TimeoutOccurred = time_out_occurred.value - dev.Status = _status.value - - + dev.Status = _status.value + if dev.status != 0: if (dev.status_last != dev.status): - p_print = wr_status("MainLoop()",dev.status) + p_print = wr_status("MainLoop()", dev.status) dev.status_last = dev.status if GetBaseName()== AIS_SHELL: print p_print @@ -959,7 +945,7 @@ def MainLoop(dev=DEV_HND): if dev.Status: - p_print = "[%d] local_status= %s\n" % (dev.idx,dl_status2str(dev.Status)) + p_print = "[%d] local_status= %s\n" % (dev.idx, dl_status2str(dev.Status)) if GetBaseName() == AIS_SHELL: print p_print @@ -977,7 +963,7 @@ def MainLoop(dev=DEV_HND): return True, rte -def fw_update(dev = DEV_HND,fw_name=None): +def fw_update(dev,fw_name=None): if GetBaseName() == AIS_SHELL: print "Flashing firmware part." print "Flash firmware for selected device." @@ -987,14 +973,15 @@ def fw_update(dev = DEV_HND,fw_name=None): print"Error while getting file name !" return progress.print_hdr = True - dev.status = mySO.AIS_FW_Update(dev.hnd,fw_name,0) + dev.status = mySO.AIS_FW_Update(dev.hnd, fw_name,0) res = "\nAIS_FW_Update(%s)> %s\n" % (fw_name, dl_status2str(dev.status)) return res -def config_file_rd(dev = DEV_HND, fname=None): +def config_file_rd(dev, fname=None): if not dev: - return + return + file_name = "BaseHD-%s-ID%d-" % (dev.SN, dev.ID) localTime = time.localtime(time.time()) file_name = file_name + time.strftime("%Y%m%d_%H%M%S", localTime) @@ -1015,7 +1002,7 @@ def config_file_rd(dev = DEV_HND, fname=None): dev.status = mySO.AIS_Configuration_Read(dev.hnd, PASS, file_name.encode(), configDataSize) return f_print + wr_status("AIS_Config_Read",dev.status) -def config_file_wr(dev = DEV_HND, fname=None): +def config_file_wr(dev, fname=None): file_name = "BaseHD-xxx.config" if GetBaseName() == AIS_SHELL: print "Store configuration from file to the device" @@ -1031,9 +1018,9 @@ def config_file_wr(dev = DEV_HND, fname=None): return f_print + wr_status("AIS_Config_Send",dev.status) -def add_device(device_type,device_id): +def add_device(device_type, device_id): status = DL_STATUS - status = mySO.AIS_List_AddDeviceForCheck(device_type,device_id) + status = mySO.AIS_List_AddDeviceForCheck(device_type, device_id) print "AIS_List_AddDeviceForCheck(type: %d, id: %d)> { %s }" % \ (device_type, device_id, dl_status2str(status)) @@ -1109,7 +1096,7 @@ def prepare_list_for_check(): -def TestLights(light_choise): +def TestLights(light_choise, dev): l = {'green_master': False, 'red_master' : False, 'green_slave' : False, @@ -1117,9 +1104,9 @@ def TestLights(light_choise): } l[light_choise] = True - dev = DEV_HND - DL_STATUS = mySO.AIS_LightControl(dev.hnd,l['green_master'],l['red_master'],l['green_slave'],l['red_slave']) - return active_device() + "AIS_LightControl(master:green= %d | master:red= %d || slave:green= %d | slave:sred= %d) > %s\n" % (l['green_master'],l['red_master'],l['green_slave'],l['red_slave'],E_ERROR_CODES[ DL_STATUS]) + # dev = DEV_HND + DL_STATUS = mySO.AIS_LightControl(dev.hnd, l['green_master'], l['red_master'], l['green_slave'], l['red_slave']) + return active_device(dev) + "AIS_LightControl(master:green= %d | master:red= %d || slave:green= %d | slave:sred= %d) > %s\n" % (l['green_master'], l['red_master'], l['green_slave'], l['red_slave'], E_ERROR_CODES[ DL_STATUS]) def print_datatype_size(): @@ -1175,7 +1162,7 @@ def MeniLoop(): if m_char.isdigit() and len(HND_LIST)>=int(m_char): dev.hnd = HND_LIST[int(m_char) -1] dev.idx = HND_LIST.index(dev.hnd) - print active_device() + print active_device(dev) if m_char == 'x': print 'EXIT\n' @@ -1249,7 +1236,7 @@ def MeniLoop(): elif m_char == 'w': print "-= Read White List =-" - print whitelist_read() + print whitelist_read(dev) elif m_char == 'W': print "=- Write White List -=" @@ -1260,11 +1247,11 @@ def MeniLoop(): white_list_write = raw_input('Enter White List UID: ') except: ShowMeni() - print whitelist_write(white_list_write) + print whitelist_write(white_list_write, dev) elif m_char == 'b': print "-= Read Black List =-" - print blacklist_read() + print blacklist_read(dev) elif m_char == 'B': print "=- Write Black List -=" @@ -1275,7 +1262,7 @@ def MeniLoop(): black_list_write = raw_input('Enter Black List: ') except: ShowMeni() - print blacklist_write(black_list_write) + print blacklist_write(black_list_write, dev) elif m_char == 'q': print GetListInformation() @@ -1287,12 +1274,12 @@ def MeniLoop(): print AISClose() elif m_char == 'i': - print AISGetVersion() - print AISGetTime() + print AISGetVersion(dev) + print AISGetTime(dev) print sys_get_timezone_info() elif m_char == 'l': - print log_get() + print log_get(dev) elif m_char == 'n': print '#=- Print log by index -=#' @@ -1302,7 +1289,7 @@ def MeniLoop(): stop_index = int(raw_input("Enter index stop :")) except: ShowMeni() - print log_by_index(start_index,stop_index) + print log_by_index(start_index, stop_index, dev) elif m_char == 'N': print '#=- Read LOG by Time (time-stamp) range -=#' @@ -1312,7 +1299,7 @@ def MeniLoop(): end_time = int(raw_input("Enter time-stamp stop :")) except: ShowMeni() - print log_by_time(start_time,end_time) + print log_by_time(start_time,end_time, dev) elif m_char == 'u': print """ @@ -1324,30 +1311,30 @@ def MeniLoop(): while True: choise = sys.stdin.read(1) if choise == '1': - print get_unread_log_one(1) + print get_unread_log_one(1, dev) elif choise == '2': - print get_unread_log_one(2) + print get_unread_log_one(2, dev) elif choise == '3': - print get_unread_log_one(3) + print get_unread_log_one(3, dev) elif choise == 'x': break loop() print ShowMeni() elif m_char == 'g': - print get_io_state() + print get_io_state(dev) elif m_char == 'G': - print lock_open() + print lock_open(dev) elif m_char == 'y': - print relay_toogle() + print relay_toogle(dev) elif m_char == 't': - print AISGetTime()[0] + print AISGetTime(dev)[0] elif m_char == 'T': - print AISSetTime() + print AISSetTime(dev) elif m_char == 'r': RTEListen(SECONDS) @@ -1359,13 +1346,13 @@ def MeniLoop(): while True: choise = sys.stdin.read(1) if choise == 'g': - print TestLights('green_master') + print TestLights('green_master', dev) elif choise == 'r': - print TestLights('red_master') + print TestLights('red_master', dev) elif choise == 'G': - print TestLights('green_slave') + print TestLights('green_slave', dev) elif choise == 'R': - print TestLights('red_slave') + print TestLights('red_slave', dev) elif choise == 'x': break @@ -1377,7 +1364,7 @@ def MeniLoop(): print AISGetVersion() elif m_char == 'd': - print 'GET DEVICE COUNT : %d\n' % AISUpdateAndGetCount() + print 'GET DEVICE COUNT : {}\n' .format (AISUpdateAndGetCount()[1]) elif m_char == 'p': global PASS @@ -1405,19 +1392,19 @@ def MeniLoop(): print(ShowMeni()) elif m_char == 's': - print config_file_rd() + print config_file_rd(dev) elif m_char == 'S': - print config_file_wr() + print config_file_wr(dev) elif m_char == 'F': - print fw_update() + print fw_update(dev) elif m_char == 'E': - print ee_lock() + print ee_lock(dev) elif m_char == 'e': - print ee_unlock() + print ee_unlock(dev) return True diff --git a/dl_status.py b/dl_status.py index b3dd107ab31d684c3819ec492651abb7a9505156..b65ff7c8729506057b5330c51fda42abd604dd04 100644 --- a/dl_status.py +++ b/dl_status.py @@ -5,111 +5,111 @@ Created on Nov 16, 2015 ''' E_ERROR_CODES = { - 0x00:'DL_OK', - 0x01:'TIMEOUT_ERROR', - 0x02:'NULL_POINTER', - 0x03:'PARAMETERS_ERROR', - 0x04:'MEMORY_ALLOCATION_ERROR', - 0x05:'NOT_INITIALIZED', - 0x06:'ALREADY_INITIALIZED', - 0x07:'TIMESTAMP_INVALID', - 0x08:'EVENT_BUSY', - 0x1000:'ERR_SPECIFIC', - 0x1001:'CMD_BRAKE_RTE', - 0x1002:'USB_RF_ACK_FAILED', - 0x1003:'NO_RF_PACKET_DATA', - 0x1004:'TRANSFER_WRITING_ERROR', - 0x1005:'EVENT_WAKEUP_BUSY', - 0x2000:'RESOURCE_NOT_ACQUIRED', - 0x2001:'RESOURCE_ALREADY_ACQUIRED', - 0x2002:'RESOURCE_BUSY', - 0x3000:'FILE_OVERSIZE', - 0x3001:'FILE_EMPTY', - 0x3002:'FILE_LOCKED', - 0x3003:'FILE_NOT_FOUND', - 0x3004:'ERR_NO_FILE_NAME', - 0x3005:'ERR_DIR_CAN_NOT_CREATE', - 0x4000:'ERR_DATA', - 0x4001:'ERR_BUFFER_EMPTY', - 0x4002:'ERR_BUFFER_OVERFLOW', - 0x4003:'ERR_CHECKSUM', - 0x4004:'LOG_NOT_CORRECT', - 0x7000:'LIST_ERROR', - 0x7001:'ITEM_IS_ALREADY_IN_LIST', - 0x7002:'ITEM_NOT_IN_LIST', - 0x7003:'ITEM_NOT_VALID', - 0x8000:'NO_DEVICES', - 0x8001:'DEVICE_OPENING_ERROR', - 0x8002:'DEVICE_CAN_NOT_OPEN', - 0x8003:'DEVICE_ALREADY_OPENED', - 0x8004:'DEVICE_NOT_OPENED', - 0x8005:'DEVICE_INDEX_OUT_OF_BOUND', - 0x8006:'DEVICE_CLOSE_ERROR', - 0x8007:'DEVICE_UNKNOWN', - 0x9000:'ERR_COMMAND_RESPONSE', - 0x9001:'CMD_RESPONSE_UNKNOWN_COMMAND', - 0x9002:'CMD_RESPONSE_WRONG_CMD', - 0x9003:'CMD_RESPONSE_COMMAND_FAILED', - 0x9004:'CMD_RESPONSE_UNSUCCESS', - 0x9005:'CMD_RESPONSE_NO_AUTHORIZATION', - 0x9006:'CMD_RESPONSE_SIZE_OVERFLOW', - 0x9007:'CMD_RESPONSE_NO_DATA', - 0xA000:'THREAD_FAILURE', - 0xA001:'ERR_OBJ_NOT_CREATED', - 0xA002:'ERR_CREATE_SEMAPHORE', - 0xB000:'ERR_STATE_MACHINE', - 0xB001:'ERR_SM_IDLE__NO_RESPONSE', - 0xB002:'ERR_SM_COMMAND_IN_PROGRESS', - 0xB003:'ERR_SM_NOT_IDLE', - 0xB004:'ERR_SM_CMD_NOT_STARTED', - 0xB005:'WARN_STOP_POLLING', - 0xD000:'READER_ERRORS_', - 0xD001:'READER_UID_ERROR', - 0xD002:'READER_LOG_ERROR', - 0xE000:'DL_HAMMING_ERROR', - 0xE001:'DL_HAMMING_NOT_ACK', - 0xE002:'DL_HAMMING_WRONG_ACK', - 0xE003:'DL_HAMMING_WRONG_REPLAY', - 0xE004:'ERROR_SOME_REPLAY_FAULT', - 0xE005:'DL_HAMMING_TERR_TIMEOUT', - 0xE006:'DL_HAMMING_TERR_BAD_FRAME', - 0xE007:'DL_HAMMING_TERR_BAD_SUM', - 0xE008:'DL_HAMMING_TERR_BAD_CODE', - 0xE009:'DL_HAMMING_TERR_TOO_OLD', - 0xE00A:'DL_HAMMING_TERR_NOISE', - 0xE00B:'DL_HAMMING_TERR_ERROR_MASK', - 0xF000:'NO_FTDI_COMM_DEVICES', - 0xF001:'NO_FTDI_COMM_DEVICES_OPENED', - 0xF002:'ERR_FTDI', - 0xF003:'ERR_FTDI_READ', - 0xF004:'ERR_FTDI_READ_LESS_DATA', - 0xF005:'ERR_FTDI_WRITE', - 0xF006:'ERR_FTDI_WRITE_LESS_DATA', - 0xF007:'DL_FT_ERROR_SET_TIMEOUT', - 0xF100:'DL_FT_', - 0xF101:'DL_FT_INVALID_HANDLE', - 0xF102:'DL_FT_DEVICE_NOT_FOUND', - 0xF103:'DL_FT_DEVICE_NOT_OPENED', - 0xF104:'DL_FT_IO_ERROR', - 0xF105:'DL_FT_INSUFFICIENT_RESOURCES', - 0xF106:'DL_FT_INVALID_PARAMETER', - 0xF107:'DL_FT_INVALID_BAUD_RATE', - 0xF108:'DL_FT_DEVICE_NOT_OPENED_FOR_ERASE', - 0xF109:'DL_FT_DEVICE_NOT_OPENED_FOR_WRITE', - 0xF10A:'DL_FT_FAILED_TO_WRITE_DEVICE', - 0xF10B:'DL_FT_EEPROM_READ_FAILED', - 0xF10C:'DL_FT_EEPROM_WRITE_FAILED', - 0xF10D:'DL_FT_EEPROM_ERASE_FAILED', - 0xF10E:'DL_FT_EEPROM_NOT_PRESENT', - 0xF10F:'DL_FT_EEPROM_NOT_PROGRAMMED', - 0xF110:'DL_FT_INVALID_ARGS', - 0xF111:'DL_FT_NOT_SUPPORTED', - 0xF112:'DL_FT_OTHER_ERROR', - 0xF113:'DL_FT_DEVICE_LIST_NOT_READY', - 0xFFFFFFFE:'NOT_IMPLEMENTED', - 0xFFFFFFFF:'UNKNOWN_ERROR', - 0xFFFFFFFF:'MAX_DL_STATUS', - 0xFFFFFFFF:'LAST_ERROR' + 0x00: 'DL_OK', + 0x01: 'TIMEOUT_ERROR', + 0x02: 'NULL_POINTER', + 0x03: 'PARAMETERS_ERROR', + 0x04: 'MEMORY_ALLOCATION_ERROR', + 0x05: 'NOT_INITIALIZED', + 0x06: 'ALREADY_INITIALIZED', + 0x07: 'TIMESTAMP_INVALID', + 0x08: 'EVENT_BUSY', + 0x1000: 'ERR_SPECIFIC', + 0x1001: 'CMD_BRAKE_RTE', + 0x1002: 'USB_RF_ACK_FAILED', + 0x1003: 'NO_RF_PACKET_DATA', + 0x1004: 'TRANSFER_WRITING_ERROR', + 0x1005: 'EVENT_WAKEUP_BUSY', + 0x2000: 'RESOURCE_NOT_ACQUIRED', + 0x2001: 'RESOURCE_ALREADY_ACQUIRED', + 0x2002: 'RESOURCE_BUSY', + 0x3000: 'FILE_OVERSIZE', + 0x3001: 'FILE_EMPTY', + 0x3002: 'FILE_LOCKED', + 0x3003: 'FILE_NOT_FOUND', + 0x3004: 'ERR_NO_FILE_NAME', + 0x3005: 'ERR_DIR_CAN_NOT_CREATE', + 0x4000: 'ERR_DATA', + 0x4001: 'ERR_BUFFER_EMPTY', + 0x4002: 'ERR_BUFFER_OVERFLOW', + 0x4003: 'ERR_CHECKSUM', + 0x4004: 'LOG_NOT_CORRECT', + 0x7000: 'LIST_ERROR', + 0x7001: 'ITEM_IS_ALREADY_IN_LIST', + 0x7002: 'ITEM_NOT_IN_LIST', + 0x7003: 'ITEM_NOT_VALID', + 0x8000: 'NO_DEVICES', + 0x8001: 'DEVICE_OPENING_ERROR', + 0x8002: 'DEVICE_CAN_NOT_OPEN', + 0x8003: 'DEVICE_ALREADY_OPENED', + 0x8004: 'DEVICE_NOT_OPENED', + 0x8005: 'DEVICE_INDEX_OUT_OF_BOUND', + 0x8006: 'DEVICE_CLOSE_ERROR', + 0x8007: 'DEVICE_UNKNOWN', + 0x9000: 'ERR_COMMAND_RESPONSE', + 0x9001: 'CMD_RESPONSE_UNKNOWN_COMMAND', + 0x9002: 'CMD_RESPONSE_WRONG_CMD', + 0x9003: 'CMD_RESPONSE_COMMAND_FAILED', + 0x9004: 'CMD_RESPONSE_UNSUCCESS', + 0x9005: 'CMD_RESPONSE_NO_AUTHORIZATION', + 0x9006: 'CMD_RESPONSE_SIZE_OVERFLOW', + 0x9007: 'CMD_RESPONSE_NO_DATA', + 0xA000: 'THREAD_FAILURE', + 0xA001: 'ERR_OBJ_NOT_CREATED', + 0xA002: 'ERR_CREATE_SEMAPHORE', + 0xB000: 'ERR_STATE_MACHINE', + 0xB001: 'ERR_SM_IDLE__NO_RESPONSE', + 0xB002: 'ERR_SM_COMMAND_IN_PROGRESS', + 0xB003: 'ERR_SM_NOT_IDLE', + 0xB004: 'ERR_SM_CMD_NOT_STARTED', + 0xB005: 'WARN_STOP_POLLING', + 0xD000: 'READER_ERRORS_', + 0xD001: 'READER_UID_ERROR', + 0xD002: 'READER_LOG_ERROR', + 0xE000: 'DL_HAMMING_ERROR', + 0xE001: 'DL_HAMMING_NOT_ACK', + 0xE002: 'DL_HAMMING_WRONG_ACK', + 0xE003: 'DL_HAMMING_WRONG_REPLAY', + 0xE004: 'ERROR_SOME_REPLAY_FAULT', + 0xE005: 'DL_HAMMING_TERR_TIMEOUT', + 0xE006: 'DL_HAMMING_TERR_BAD_FRAME', + 0xE007: 'DL_HAMMING_TERR_BAD_SUM', + 0xE008: 'DL_HAMMING_TERR_BAD_CODE', + 0xE009: 'DL_HAMMING_TERR_TOO_OLD', + 0xE00A: 'DL_HAMMING_TERR_NOISE', + 0xE00B: 'DL_HAMMING_TERR_ERROR_MASK', + 0xF000: 'NO_FTDI_COMM_DEVICES', + 0xF001: 'NO_FTDI_COMM_DEVICES_OPENED', + 0xF002: 'ERR_FTDI', + 0xF003: 'ERR_FTDI_READ', + 0xF004: 'ERR_FTDI_READ_LESS_DATA', + 0xF005: 'ERR_FTDI_WRITE', + 0xF006: 'ERR_FTDI_WRITE_LESS_DATA', + 0xF007: 'DL_FT_ERROR_SET_TIMEOUT', + 0xF100: 'DL_FT_', + 0xF101: 'DL_FT_INVALID_HANDLE', + 0xF102: 'DL_FT_DEVICE_NOT_FOUND', + 0xF103: 'DL_FT_DEVICE_NOT_OPENED', + 0xF104: 'DL_FT_IO_ERROR', + 0xF105: 'DL_FT_INSUFFICIENT_RESOURCES', + 0xF106: 'DL_FT_INVALID_PARAMETER', + 0xF107: 'DL_FT_INVALID_BAUD_RATE', + 0xF108: 'DL_FT_DEVICE_NOT_OPENED_FOR_ERASE', + 0xF109: 'DL_FT_DEVICE_NOT_OPENED_FOR_WRITE', + 0xF10A: 'DL_FT_FAILED_TO_WRITE_DEVICE', + 0xF10B: 'DL_FT_EEPROM_READ_FAILED', + 0xF10C: 'DL_FT_EEPROM_WRITE_FAILED', + 0xF10D: 'DL_FT_EEPROM_ERASE_FAILED', + 0xF10E: 'DL_FT_EEPROM_NOT_PRESENT', + 0xF10F: 'DL_FT_EEPROM_NOT_PROGRAMMED', + 0xF110: 'DL_FT_INVALID_ARGS', + 0xF111: 'DL_FT_NOT_SUPPORTED', + 0xF112: 'DL_FT_OTHER_ERROR', + 0xF113: 'DL_FT_DEVICE_LIST_NOT_READY', + 0xFFFFFFFE: 'NOT_IMPLEMENTED', + 0xFFFFFFFF: 'UNKNOWN_ERROR', + 0xFFFFFFFF: 'MAX_DL_STATUS', + 0xFFFFFFFF: 'LAST_ERROR' } diff --git a/lib b/lib index 2e730e213a3fe8c74e3b84f0cddb3b279ae9d58f..4ab60b789a6f3a5ae39df5daa9e1df77a32e3887 160000 --- a/lib +++ b/lib @@ -1 +1 @@ -Subproject commit 2e730e213a3fe8c74e3b84f0cddb3b279ae9d58f +Subproject commit 4ab60b789a6f3a5ae39df5daa9e1df77a32e3887 diff --git a/readers.ini b/readers.ini index 265a3987c7edd2db85096b19db6f50dc80ca923d..3fc7ab3691da7863fdb1a58bcb01119944f05ddb 100644 --- a/readers.ini +++ b/readers.ini @@ -17,5 +17,5 @@ #DL_AIS_BASE_HD_SDK:0 -DL_AIS_BASE_HD_SDK:15 +DL_AIS_BASE_HD_SDK:18 DL_AIS_BASE_HD_SDK:16 \ No newline at end of file