Example #1
0
def send_time(addr=""):
    logger.info("Sending date to {}".format(addr))
    retcode = 0
    bdg = None
    try:
        bdg = Badge(addr)
        logger.info("Connected")
        bdg.sendDateTime()
        logger.info("Sent date")
    except BTLEException, e:
        retcode = -1
        logger.error("failed sending time,{},{}".format(e.code, e.message))
Example #2
0
def dialogue(addr=""):
    logger.info("Talking with {}".format(addr))
    retcode = 0
    bdg = None
    try:
        bdg = Badge(addr)
        logger.info("Connected")
        while not bdg.dlg.gotStatus:
            bdg.RfdReadWrite.write("s")  # ask for status
            bdg.waitForNotifications(1.0)  # waiting for status report

        logger.info("Got status")
        if bdg.dlg.needDate:
            bdg.sendDateTime()
            logger.info("Date sent")
        else:
            logger.info("Already synced")

        if bdg.dlg.dataReady:
            logger.info("Requesting data...")
            bdg.RfdReadWrite.write("d")  # ask for data
            wait_count = 0
            while True:
                if bdg.waitForNotifications(1.0):
                    # if got data, don't inrease the wait counter
                    continue
                logger.info("Waiting for more data...")
                wait_count = wait_count + 1
                if wait_count >= PULL_WAIT: break
            logger.info("finished reading data")

    except BTLEException, e:
        retcode = -1
        logger.error("failed pulling data")
        logger.error(e.code)
        logger.error(e.message)