Пример #1
0
 def target(self, args):
     (port) = args
     self.info(u"%s (%s)" % (_('Open port...'), port))
     s = Mcush(port)
     self.info(_("Reset"))
     s.scpiRst()
     self.info(_("Done"))
Пример #2
0
def memory_read_loop(argv=None):
    s = Mcush()
    count = 1
    while True:
        print(time.strftime('%H:%M:%S'), count)
        mem = s.readMem(0x20000000, 20 * 1024)
        #Utils.dumpMem( mem )
        count += 1
Пример #3
0
def spiffs_loop_append(argv=None):
    buf = open('/proc/misc', 'r').read()
    s = Mcush()
    while True:
        print(s.list())
        for i in range(10):
            print('/s/test.%d' % i)
            s.cat('/s/test.%d' % i, append=True, buf=buf)
Пример #4
0
def spiffs_fill_small_files(argv=None):
    buf = open('/proc/misc', 'r').read()
    s = Mcush()
    print(s.list())
    while True:
        f = tempfile.mktemp(prefix='test', dir='/s')
        print(f)
        s.cat(f, append=True, buf=buf)
Пример #5
0
 def target(self, args):
     (port, path) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"Formating %s..." % (path))
     info = s.spiffsInfo()
     self.info('Total: %d, used: %d (%.1f%%)' %
               (info['total'], info['used'],
                float(info['used']) / info['total'] * 100))
Пример #6
0
def adc_test(argv=None):
    s = Mcush()
    s.adc_init()
    try:
        channel = int(argv[0])
    except:
        channel = None
    while True:
        print(s.adc(channel))
Пример #7
0
 def target(self, args):
     (port) = args
     self.info(u"%s (%s)" % (_('Open port...'), port))
     s = Mcush(port)
     self.info(_("Reboot"))
     s.port.write('reboot\n')
     s.port.flush()
     s.disconnect()
     del s
     self.info(_("Done"))
Пример #8
0
def memory_read_speed_test(argv=None):
    s = Mcush()
    SIZE = 20 * 1024
    count = 0
    while True:
        t0 = time.time()
        mem = s.readMem(0x20000000, SIZE, compact_mode=Env.COMPACT_MODE)
        t1 = time.time()
        speed = len(mem) / (t1 - t0)
        count += 1
        print('[%d] read %d bytes, %.3f kB/s' % (count, SIZE, speed / 1000.0))
Пример #9
0
def get_model_idn(argv=None):
    Env.VERBOSE = False
    Env.DEBUG = False
    Env.INFO = False
    s = Mcush(check_idn=False)
    ret = s.writeCommand('*idn?')
    model = ret[0].split(',')[0].strip()
    if len(ret) > 1:
        sn = ret[1].strip()
    result = '%s_%s' % (model, sn)
    print(result.replace(' ', '_'))
Пример #10
0
 def target(self, args):
     (port, fname) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"removing %s..." % fname)
     try:
         s.remove(fname)
         self.queue.put(('remove_file', fname))
         self.info(_("Done"))
     except Instrument.CommandExecuteError as e:
         self.info("Failed to remove %s" % fname, 'error')
Пример #11
0
 def target(self, args):
     (port) = args
     self.info(u"%s (%s)" % (_('Open port...'), port))
     s = Mcush(port)
     self.info(u"querying...")
     try:
         lst = s.list()
         self.queue.put(('update_filelist', lst))
         self.info(_("Done"))
     except:
         lst = []
         self.info(u"Failed to query file list", 'error')
Пример #12
0
def led(argv=None):
    if len(argv) == 1:  # read status
        cmd = None
        print(Mcush().led(int(argv[0])))
    elif len(argv) == 2:  # set/clr/toggle
        cmd = LED_CMD[argv[1].strip()]
        if cmd == -1:
            Mcush().led(int(argv[0]), toggle=True)
        else:
            Mcush().led(int(argv[0]), on=bool(cmd == 1))
    else:
        halt("led <led_id> [s|c|t]")
Пример #13
0
 def target(self, args):
     (port, oldname, newname) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"rename %s to %s..." % (oldname, newname))
     try:
         s.rename(oldname, newname)
         self.queue.put(('rename_file', (oldname, newname)))
         self.info(_("Done"))
     except Instrument.CommandExecuteError as e:
         self.info(u"Failed to rename %s to %s..." % (oldname, newname),
                   'error')
Пример #14
0
 def target(self, args):
     (port, config, data) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     addr = int(eval(config['address'])) & 0x7F
     pin_sda = config['sda']
     pin_scl = config['scl']
     delay_us = int(config['delay_us'])
     reg_from = int(eval(config['reg_from']))
     reg_to = int(eval(config['reg_to']))
     if reg_to > 255:
         reg_to = 255
     #if reg_to >= reg_from:
     #    length = reg_to - reg_from + 1
     #else:
     #    length = 1
     s.i2c_init(addr, scl=pin_scl, sda=pin_sda, delay=delay_us)
     if reg_from + len(data) > 256:
         # cut
         data = data[:256 - reg_from]
     self.info(_("Writing..."))
     addr = reg_from
     wr = [addr]
     while True:
         wr.append(data.pop(0))
         addr += 1
         if len(wr) > 16:
             s.i2c(wr)
             wr = [addr]
         if not data:
             if len(wr) > 1:
                 s.i2c(wr)
             break
     self.info(_("Done"))
Пример #15
0
 def target(self, args):
     (port, fname, savename) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"download file %s..." % (fname))
     try:
         r = s.cat(fname, b64=True)
     except Instrument.CommandExecuteError as e:
         self.info(u"Failed to download file %s" % (fname), 'error')
     self.info('save as %s...' % savename)
     try:
         open(savename, 'w+').write(r)
         self.info("File %s saved, size %d." % (savename, len(r)))
     except Exception as e:
         self.info(u"Failed to save file %s" % (savename), 'error')
Пример #16
0
 def target(self, args):
     (port, fname) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"download file %s..." % (fname))
     try:
         r = s.cat(fname, b64=True)
         contents = unicode(r)
         self.queue.put(('view_file', (fname, r)))
         self.info(_("Done"))
     except UnicodeDecodeError:
         self.info('Fail to decode contents, this may be a binary file!',
                   'error')
     except Instrument.CommandExecuteError as e:
         self.info(u"Failed to download file %s" % (fname), 'error')
Пример #17
0
def memory_read(argv=None):
    try:
        assert 2 <= len(argv) <= 3
        addr = int(eval(argv[0]))
        length = int(eval(argv[1]))
    except:
        halt('parms: addr length <file_name>')
        return
    try:
        fname = argv[2]
    except IndexError:
        fname = None
    if Env.VERBOSE:
        print('addr: 0x%08X, length: %d' % (addr, length))
        print('output: %s' % ('stdout' if fname is None else fname))
    if length <= 0:
        return
    t0 = time.time()
    mem = Mcush().readMem(addr, length, compact_mode=Env.COMPACT_MODE)
    dt = time.time() - t0
    if fname is None:
        #Utils.dumpMem( mem, method=1 )
        open(Env.TEST_WR, 'w+').write(mem)
        #Utils.dumpFile( Env.TEST_WR )
        sys.stdout.write(mem)  # write binary directly to console
        os.remove(Env.TEST_WR)
    else:
        open(fname, 'w+').write(str(mem))
    print('speed: %.3f kBytes/sec' % (len(mem) / dt / 1000.0))
Пример #18
0
 def target(self, args):
     (port, path) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"Formating %s..." % (path))
     s.setTimeout(30)
     s.writeCommand('s -c format')
     s.setTimeout()
     self.info(_("Done"))
Пример #19
0
def beep(argv=None):
    freq, duration = None, None
    try:
        freq = int(argv[1])
        duration = float(argv[2])
    except:
        pass
    Mcush().beep(freq, duration)
Пример #20
0
def spiffs_get(argv=None):
    if len(argv) < 1:
        print('syntax: spiffs_get <remote_pathname> [local_pathname]')
        return
    r = Mcush().cat(argv[0], b64=True)
    if len(argv) > 1:
        open(argv[1], 'w+').write(r)
    else:
        print(r)
Пример #21
0
def pwm_test(argv=None):
    s = Mcush()
    s.pwm_init(init_value=0)
    while True:
        for i in [0, 2]:
            t0 = time.time()
            while True:
                t = time.time()
                if t > t0 + 2 * math.pi:
                    break
                s.pwm(index=i, value=int(abs((math.sin(t - t0)**2) * 100)))
            s.pwm(index=i, value=1)
Пример #22
0
 def target(self, args):
     (port, config) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     addr = int(eval(config['address'])) & 0x7F
     pin_sda = config['sda']
     pin_scl = config['scl']
     delay_us = int(config['delay_us'])
     reg_from = int(eval(config['reg_from']))
     reg_to = int(eval(config['reg_to']))
     if reg_to > 255:
         reg_to = 255
     if reg_to >= reg_from:
         length = reg_to - reg_from + 1
     else:
         length = 1
     s.i2c_init(addr, scl=pin_scl, sda=pin_sda, delay=delay_us)
     result = []
     self.info(_("Reading..."))
     r = s.i2c([reg_from], read=length)
     self.queue.put(('i2c_data', r))
     self.info('%d bytes read' % length)
Пример #23
0
def morse_code_beeper(argv=None):
    bp = MorseCodeBeeper.MorseCodeBeeper(Mcush())
    #bp.gpio( '0.0', o=True, c=True )
    #def beeper_pin( duration ):
    #    bp.gpio( '0.0', s=True )
    #    time.sleep( duration )
    #    bp.gpio( '0.0', c=True )
    #bp.set_beeper( beeper_pin )
    #bp.set_beeper( bp.beeper_led1 )
    #bp.BeepFile('Readme.txt')
    while True:
        bp.BeepString('SOS')
        time.sleep(5)
Пример #24
0
def i2c_search(argv=None):
    s = Mcush()
    if argv:
        try:
            pin_sda, pin_scl = argv[0], argv[1]
        except:
            print('arguments: pin_sda pin_scl')
            return
        s.i2c_init(0, scl=pin_scl, sda=pin_sda)
    for addr in range(128):
        s.i2c_init(addr)
        try:
            s.i2c([0])
            print('Addr 0x%02X, OK' % (addr))
        except Instrument.CommandExecuteError:
            pass
Пример #25
0
 def target(self, args):
     (port) = args
     self.info(u'%s (%s)' % (_('Testing port...'), port))
     s = Mcush(port)
     model = s.getModel()
     version = s.getVersion()
     sn = s.getSerialNumber()
     info = u'%s %s' % (_('Model'), model)
     info += u', %s %s' % (_('Version'), version)
     if sn:
         info += u', %s %s' % (_('SN'), sn)
     self.info(info, 'ok')
     for i in range(10):
         try:
             s.led(0, toggle=True)
         except Exception as e:
             print(e)
             break
         time.sleep(0.05)
     s.disconnect()
Пример #26
0
 def target(self, args):
     (port, config) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     pin_sda = config['sda']
     pin_scl = config['scl']
     delay_us = int(config['delay_us'])
     s.i2c_init(0, scl=pin_scl, sda=pin_sda, delay=delay_us)
     result = []
     for addr in range(128):
         self.info('Scan address: 0x%02X' % (addr))
         s.i2c_init(addr)
         try:
             s.i2c([0])
             result.append(addr)
         except Instrument.CommandExecuteError:
             pass
     if result:
         self.info('Responed address: %s' %
                   (' '.join(['0x%02X' % i for i in result])))
     else:
         self.info('No address responsed')
Пример #27
0
def gpio_set_high(argv=None):
    # set gpio high for 100ms(default) and back
    port_pin = argv[0]
    try:
        ms = int(argv[1])
    except:
        ms = 100
    try:
        set_back = Env.getenv_bool(argv[2])
    except:
        set_back = True
    s = Mcush()
    s.gpio(port_pin, o=True)
    s.gpio(port_pin, s=True)
    if ms:
        time.sleep(ms / 1000.0)
    if set_back:
        s.gpio(port_pin, c=True)
Пример #28
0
 def target(self, args):
     (port, srcname, fname) = args
     self.info(u"Open port %s..." % port)
     s = Mcush(port)
     self.info(u"read file %s..." % (srcname))
     try:
         raw = open(srcname, 'r').read()
         raw_len = len(raw)
     except:
         self.info('read file %s error' % srcname, 'error')
         return
     self.info(u"write file %s..." % (fname))
     raw_split = []
     i = 0
     while True:
         seg = raw[PUTFILE_SEGMENT_SIZE * i:PUTFILE_SEGMENT_SIZE * (i + 1)]
         if seg:
             raw_split.append(seg)
         else:
             break
         i += 1
     try:
         cnt = 0
         buf0 = raw_split.pop(0)
         self.info(u"Transfering file %s, 0 / %d bytes (0 %%)" %
                   (fname, raw_len))
         s.cat(fname, write=True, b64=True, buf=buf0)
         cnt += len(buf0)
         for buf in raw_split:
             self.info(u"Transfering file %s, %d / %d bytes (%d %%)" %
                       (fname, cnt, raw_len, int(cnt * 100 / raw_len)))
             s.cat(fname, write=True, append=True, b64=True, buf=buf)
             cnt += len(buf)
         self.info(u"File %s written, size %d." % (fname, len(raw)))
         self.queue.put(('update_filelist', s.list()))
     except Instrument.CommandExecuteError as e:
         self.info(u"Failed to download file %s" % (fname), 'error')
Пример #29
0
def reset(argv=None):
    Mcush().reset()
Пример #30
0
def info(argv=None):
    Mcush().printInfo()