Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
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()
Ejemplo n.º 9
0
        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;')
Ejemplo n.º 10
0
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()