def main (): global fac,time_start parse_args() init_logging() # special case default Tari values if args.modulation in Modulation_DefaultTari: t_suggested = Modulation_DefaultTari[args.modulation] if args.tari: logger.warn('recommended Tari for {} is {}'.format(args.modulation, t_suggested)) else: args.tari = t_suggested logger.info('selected recommended Tari of {} for {}'.format(args.tari, args.modulation)) # will be called when all connections have terminated normally onFinish = defer.Deferred() onFinish.addCallback(finish) enabled_antennas = map(lambda x: int(x.strip()), args.antennas.split(',')) fac = llrp.LLRPClientFactory(onFinish=onFinish, duration=args.time, report_every_n_tags=args.every_n, antennas=enabled_antennas, tx_power=args.tx_power, modulation=args.modulation, tari=args.tari, session=args.session, tag_population= int(32), start_inventory=True, disconnect_when_done=(args.time > 0), reconnect=args.reconnect, tag_content_selector={ 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRRSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': False }) # tagReportCallback will be called every time the reader sends a TagReport # message (i.e., when it has "seen" tags). fac.addTagReportCallback(tagReportCallback) # start tag access once inventorying fac.addStateCallback(llrp.LLRPClient.STATE_INVENTORYING, access) for host in args.host: reactor.connectTCP(host, args.port, fac, timeout=3) # catch ctrl-C and stop inventory before disconnecting reactor.addSystemEventTrigger('before', 'shutdown', politeShutdown, fac) reactor.run()
def initReader(self): args = self.readerConfig() enabled_antennas = map(lambda x: int(x.strip()), args['antennas'].split(',')) self.factory = llrp.LLRPClientFactory( duration=args['time'], report_every_n_tags=args['every_n'], antennas=enabled_antennas, tx_power=args['tx_power'], modulation=args['modulation'], tari=args['tari'], start_inventory=True, disconnect_when_done=(args['time'] > 0), reconnect=args['reconnect'], tag_content_selector={ 'EnableROSpecID': True, 'EnableSpecIndex': True, 'EnableInventoryParameterSpecID': True, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRRSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': True }) self.factory.addTagReportCallback(self.tagReportCallback) self.factory.addStateCallback(llrp.LLRPClient.STATE_INVENTORYING, self.access) reactor.connectTCP(args['host'], args['port'], self.factory, timeout=3) reactor.addSystemEventTrigger('before', 'shutdown', self.politeShutdown, self.factory) reactor.run()
def main (): parse_args() init_logging() onFinish = defer.Deferred() onFinish.addCallback(finish) factory = llrp.LLRPClientFactory(reset_on_connect=False, start_inventory=False, onFinish=onFinish) factory.addStateCallback(llrp.LLRPClient.STATE_CONNECTED, shutdownReader) for host in args.host: reactor.connectTCP(host, args.port, factory, timeout=3) reactor.run()
def main(main_args): global startTime global args args = main_args # will be called when all connections have terminated normally onFinish = defer.Deferred() onFinish.addCallback(finish) fac = llrp.LLRPClientFactory(onFinish=onFinish, disconnect_when_done=True, modulation=args.modulation, tari=args.tari, session=args.session, tag_population=args.population, start_inventory=True, tx_power=args.tx_power, report_every_n_tags=args.every_n, tag_content_selector={ 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRSSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': True }) # tagReportCallback will be called every time the reader sends a TagReport # message (i.e., when it has "seen" tags). fac.addTagReportCallback(tagReportCallback) # start tag access once inventorying fac.addStateCallback(llrp.LLRPClient.STATE_INVENTORYING, access) for host in args.host: reactor.connectTCP(host, args.port, fac, timeout=3) # catch ctrl-C and stop inventory before disconnecting reactor.addSystemEventTrigger('before', 'shutdown', politeShutdown, fac) # start runtime measurement to determine rates startTime = time.monotonic() reactor.run()
def initFactory(args, inventoryFinished, tagReportCallback, finish): # Called when all connections have terminated normally. onFinish = defer.Deferred() onFinish.addCallback(finish) # special case default Tari values if args.modulation in Modulation_DefaultTari: t_suggested = Modulation_DefaultTari[args.modulation] if args.tari: logger.warn("recommended Tari for {} is {}".format( args.modulation, t_suggested)) else: args.tari = t_suggested logger.info("selected recommended Tari of {} for {}".format( args.tari, args.modulation)) factory = llrp.LLRPClientFactory( onFinish=onFinish, disconnect_when_done=True, modulation=args.modulation, tari=args.tari, session=args.session, tag_population=args.population, start_inventory=True, tx_power=args.tx_power, report_every_n_tags=args.every_n, inventory_round_time=args.inventory_round_time, tag_content_selector={ "EnableROSpecID": False, "EnableSpecIndex": True, "EnableInventoryParameterSpecID": False, "EnableAntennaID": True, "EnableChannelIndex": False, "EnablePeakRRSI": True, "EnableFirstSeenTimestamp": False, "EnableLastSeenTimestamp": True, "EnableTagSeenCount": True, "EnableAccessSpecID": True }) # The "main loop" for tags. (set the callback to tagReportCallback) factory.addTagReportCallback(tagReportCallback) # Start transfer session. (set the callback to inventoryFinished) factory.addStateCallback(llrp.LLRPClient.STATE_INVENTORYING, inventoryFinished) return factory
def main(hosts, outfile, antennas, epc, reader_timestamp): global csvlogger enabled_antennas = map(lambda x: int(x.strip()), antennas.split(',')) fac = llrp.LLRPClientFactory(start_first=True, antennas=enabled_antennas, start_inventory=False, disconnect_when_done=True, tag_content_selector={ 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRRSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': False }) csvlogger = CsvLogger(outfile, epc=epc, factory=fac, reader_timestamp=reader_timestamp) fac.addTagReportCallback(csvlogger.tag_cb) for host in hosts: if ':' in host: host, port = host.split(':', 1) port = int(port) else: port = 5084 reactor.connectTCP(host, port, fac, timeout=3) # catch ctrl-C and stop logging before disconnecting reactor.addSystemEventTrigger('before', 'shutdown', finish) reactor.run()
import pprint logging.basicConfig(filename='rfid.log', filemode='w') sllurp_logger = logging.getLogger('sllurp') sllurp_logger.setLevel(logging.INFO) def cb(tagReport): tags = tagReport.msgdict['RO_ACCESS_REPORT']['TagReportData'] if len(tags): print('saw tag(s):', tags) sllurp_logger.info('saw tag(s): %s', pprint.pformat(tags)) else: print('no tags seen') sllurp_logger.info('no tags seen') return factory = llrp.LLRPClientFactory(duration=0.02, tx_power=0, start_inventory=True, impinj_tag_content_selector={ 'EnableRFPhaseAngle': True, 'EnablePeakRSSI': False, 'EnableRFDopplerFrequency': False }) factory.addTagReportCallback(cb) reactor.connectTCP('169.254.1.1', llrp.LLRP_PORT, factory) reactor.run()
def main(): global csvlogger args = parse_args() init_logging(debug=args.debug, logfile=args.logfile) # special case default Tari values if args.modulation in Modulation_DefaultTari: t_suggested = Modulation_DefaultTari[args.modulation] if not args.tari: args.tari = t_suggested enabled_antennas = map(lambda x: int(x.strip()), args.antennas.split(',')) fac = llrp.LLRPClientFactory(start_first=True, duration=args.time, report_every_n_tags=args.every_n, antennas=enabled_antennas, tx_power=args.tx_power, modulation=args.modulation, tari=args.tari, session=args.session, tag_population=args.population, start_inventory=False, disconnect_when_done=(args.time > 0), reconnect=args.reconnect, tag_content_selector={ 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRRSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': False }) csvlogger = CsvLogger(args.csvfile, epc=args.epc, factory=fac) fac.addTagReportCallback(csvlogger.tag_cb) delay = 0 for host in args.host: if ':' in host: host, port = host.split(':', 1) port = int(port) else: port = args.port if args.stagger is not None: logging.debug('Will connect to %s:%d in %d ms', host, port, delay) task.deferLater(reactor, delay / 1000.0, reactor.connectTCP, host, port, fac, timeout=3) delay += args.stagger else: reactor.connectTCP(host, port, fac, timeout=3) # catch ctrl-C and stop inventory before disconnecting reactor.addSystemEventTrigger('before', 'shutdown', finish) reactor.run()
return if __name__ == "__main__": # print(hashlib.sha256(b"foo").hexdigest()) app = QtWidgets.QApplication(sys.argv) login = passwordWindow() # RFID init if login.exec_() == QtWidgets.QDialog.Accepted: window = mainWindow() work = WorkerThread() window.show() ETEK_log.info('Application login successful.') logging.getLogger().setLevel(logging.INFO) factory = llrp.LLRPClientFactory(antennas=[1], start_inventory=True, session=0, duration=0.8) factory.addTagReportCallback(work.cb) #connect to RFID Reader - change this if you change beyond default settings of RFID Reader reactor.connectTCP('169.254.10.1', llrp.LLRP_PORT, factory) #load information from config file server = window.server database = window.database # define a connection string cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \ SERVER=' + server + ';\ DATABASE=' + database + ';\ Trusted_Connection=yes;')
def main (): parse_args() init_logging() # special case default Tari values if args.modulation in Modulation_DefaultTari: t_suggested = Modulation_DefaultTari[args.modulation] if args.tari: logger.warn('recommended Tari for %s is %d', args.modulation, t_suggested) else: args.tari = t_suggested logger.info('selected recommended Tari of %d for %s', args.tari, args.modulation) enabled_antennas = map(lambda x: int(x.strip()), args.antennas.split(',')) # d.callback will be called when all connections have terminated normally. # use d.addCallback(<callable>) to define end-of-program behavior. d = defer.Deferred() d.addCallback(finish) fac = llrp.LLRPClientFactory(onFinish=d, duration=args.time, report_every_n_tags=args.every_n, antennas=enabled_antennas, tx_power=args.tx_power, modulation=args.modulation, tari=args.tari, session=args.session, tag_population=args.population, start_inventory=True, disconnect_when_done=(args.time > 0), reconnect=args.reconnect, tag_content_selector={ 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, 'EnableChannelIndex': False, 'EnablePeakRRSI': True, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': True, 'EnableTagSeenCount': True, 'EnableAccessSpecID': False }) # tagReportCallback will be called every time the reader sends a TagReport # message (i.e., when it has "seen" tags). fac.addTagReportCallback(tagReportCallback) for host in args.host: reactor.connectTCP(host, args.port, fac, timeout=3) # catch ctrl-C and stop inventory before disconnecting reactor.addSystemEventTrigger('before', 'shutdown', politeShutdown, fac) # start runtime measurement to determine rates startTimeMeasurement() reactor.run()