예제 #1
0
def main():
    logfile = 'log.bin'
    parser = argparse.ArgumentParser(
        description="Utility for experimenting with GreatFET's ADC")
    parser.add_argument('-s',
                        dest='serial',
                        metavar='<serialnumber>',
                        type=str,
                        help="Serial number of device, if multiple devices",
                        default=None)
    parser.add_argument('-f',
                        dest='filename',
                        metavar='<filename>',
                        type=str,
                        help="Write data to file",
                        default=logfile)
    parser.add_argument('-v',
                        dest='verbose',
                        action='store_true',
                        help="Write data from file")
    parser.add_argument('-a',
                        dest='adc',
                        action='store_true',
                        help="Use internal ADC")
    args = parser.parse_args()

    log_function = log_verbose if args.verbose else log_silent

    try:
        log_function("Trying to find a GreatFET device...")
        device = GreatFET(serial_number=args.serial)
        log_function("{} found. (Serial number: {})".format(
            device.board_name(), device.serial_number()))
    except greatfet.errors.DeviceNotFoundError:
        if args.serial:
            print("No GreatFET board found matching serial '{}'.".format(
                args.serial),
                  file=sys.stderr)
        else:
            print("No GreatFET board found!", file=sys.stderr)
        sys.exit(errno.ENODEV)

    if args.adc:
        device.vendor_request_out(vendor_requests.ADC_INIT)
    #else:
    #    device.vendor_request_out(vendor_requests.SDIR_RX_START)

    while True:
        data = device.vendor_request_in(vendor_requests.ADC_READ, length=2)
        print('%d' % (data[1] << 8 | data[0]))
        time.sleep(1)

    if not args.adc:
        device.vendor_request_out(vendor_requests.SDIR_RX_STOP)
예제 #2
0
def main():
    # Set up a simple argument parser.
    parser = argparse.ArgumentParser(
        description="Periodically print temperature from DS18B20 sensor")
    parser.add_argument('-S', dest='s20', action='store_true', help='DS18S20')
    parser.add_argument('-s',
                        dest='serial',
                        metavar='<serialnumber>',
                        type=str,
                        help="Serial number of device, if multiple devices",
                        default=None)
    parser.add_argument('-v',
                        dest='verbose',
                        action='store_true',
                        help="Write data from file")
    args = parser.parse_args()

    log_function = log_verbose if args.verbose else log_silent

    try:
        log_function("Trying to find a GreatFET device...")
        device = GreatFET(serial_number=args.serial)
        log_function("{} found. (Serial number: {})".format(
            device.board_name(), device.serial_number()))
    except greatfet.errors.DeviceNotFoundError:
        if args.serial:
            print("No GreatFET board found matching serial '{}'.".format(
                args.serial),
                  file=sys.stderr)
        else:
            print("No GreatFET board found!", file=sys.stderr)
        sys.exit(errno.ENODEV)

    while True:
        data = device.vendor_request_in(vendor_requests.DS18B20_READ,
                                        length=2,
                                        timeout=2000)
        # temperature data is 16 bit signed
        temp = struct.unpack('<h', data)[0]
        if args.s20:
            temp /= 2.0
        else:
            temp /= 16.0
        print(time.strftime("%H:%M:%S"), temp,
              '{:.01f}'.format(temp * 9 / 5 + 32))
        time.sleep(1)
예제 #3
0
def main():
    # Set up a simple argument parser.
    parser = argparse.ArgumentParser(description="Utility for flashing the GreatFET's onboard SPI flash")
    parser.add_argument('-s', dest='serial', metavar='<serialnumber>', type=str,
                        help="Serial number of device, if multiple devices", default=None)
    parser.add_argument('-v', dest='verbose', action='store_true', help="Write data from file")
    args = parser.parse_args()

    log_function = log_verbose if args.verbose else log_silent

    try:
        log_function("Trying to find a GreatFET device...")
        device = GreatFET(serial_number=args.serial)
        log_function("{} found. (Serial number: {})".format(device.board_name(), device.serial_number()))
    except greatfet.errors.DeviceNotFoundError:
        if args.serial:
            print("No GreatFET board found matching serial '{}'.".format(args.serial), file=sys.stderr)
        else:
            print("No GreatFET board found!", file=sys.stderr)
        sys.exit(errno.ENODEV)

    print(device.vendor_request_in(vendor_requests.MSP430_JTAG, length=1))