コード例 #1
0
class MyMeter(Meter):
    def __init__(self, x, text):
        CWriter.set_textpos(ssd, 0,
                            0)  # In case previous tests have altered it
        wri = CWriter(ssd, arial10, GREEN, BLACK, verbose=False)
        wri.set_clip(True, True, False)
        super().__init__(wri,
                         5,
                         x,
                         divisions=4,
                         ptcolor=YELLOW,
                         label=text,
                         style=Meter.BAR,
                         legends=('0.0', '0.5', '1.0'))
        self.led = LED(wri,
                       ssd.height - 16 - wri.height,
                       x,
                       bdcolor=YELLOW,
                       label='over')
        self.task = asyncio.create_task(self._run())

    async def _run(self):
        while True:
            v = int.from_bytes(uos.urandom(3), 'little') / 16777216
            self.value(v, color(v))
            self.led.color(color(v))
            self.led.text(txt(v), fgcolor=color(v))
            # Slow asynchronous data acquisition might occur here. Note
            # that meters update themselves  asynchronously (in a real
            # application as data becomes available).
            await asyncio.sleep(v)  # Demo variable times
コード例 #2
0
ファイル: asnano.py プロジェクト: watrt/micropython-nano-gui
async def meter(n, x, text, t):
    print('Meter {} test.'.format(n))
    m = Meter(wri, 5, x, divisions = 4, ptcolor=YELLOW,
              label=text, style=Meter.BAR, legends=('0.0', '0.5', '1.0'))
    l = LED(wri, ssd.height - 16 - wri.height, x, bdcolor=YELLOW, label ='over')
    while True:
        v = int.from_bytes(uos.urandom(3),'little')/16777216
        m.value(v, color(v))
        l.color(color(v))
        l.text(txt(v), fgcolor=color(v))
        refresh(ssd)
        await asyncio.sleep_ms(t)
コード例 #3
0
def meter():
    print('meter')
    refresh(ssd, True)  # Clear any prior image
    m = Meter(wri, 5, 2, height = 45, divisions = 4, ptcolor=YELLOW,
              label='level', style=Meter.BAR, legends=('0.0', '0.5', '1.0'))
    l = LED(wri, 5, 40, bdcolor=YELLOW, label ='over')
    steps = 10
    for _ in range(steps):
        v = int.from_bytes(uos.urandom(3),'little')/16777216
        m.value(v)
        l.color(GREEN if v < 0.5 else RED)
        refresh(ssd)
        utime.sleep(1)
    refresh(ssd)
コード例 #4
0
def meter():
    print('Meter test.')
    refresh(ssd, True)  # Clear any prior image
    color = lambda v: RED if v > 0.7 else YELLOW if v > 0.5 else GREEN
    txt = lambda v: 'ovr' if v > 0.7 else 'high' if v > 0.5 else 'ok'
    m0 = Meter(wri,
               5,
               2,
               divisions=4,
               ptcolor=YELLOW,
               label='left',
               style=Meter.BAR,
               legends=('0.0', '0.5', '1.0'))
    l0 = LED(wri,
             ssd.height - 16 - wri.height,
             2,
             bdcolor=YELLOW,
             label='over')
    m1 = Meter(wri,
               5,
               50,
               divisions=4,
               ptcolor=YELLOW,
               label='right',
               style=Meter.BAR,
               legends=('0.0', '0.5', '1.0'))
    l1 = LED(wri,
             ssd.height - 16 - wri.height,
             50,
             bdcolor=YELLOW,
             label='over')
    m2 = Meter(wri,
               5,
               98,
               divisions=4,
               ptcolor=YELLOW,
               label='bass',
               style=Meter.BAR,
               legends=('0.0', '0.5', '1.0'))
    l2 = LED(wri,
             ssd.height - 16 - wri.height,
             98,
             bdcolor=YELLOW,
             label='over')
    steps = 10
    for n in range(steps):
        v = int.from_bytes(uos.urandom(3), 'little') / 16777216
        m0.value(v, color(v))
        l0.color(color(v))
        l0.text(txt(v), fgcolor=color(v))
        v = n / steps
        m1.value(v, color(v))
        l1.color(color(v))
        l1.text(txt(v), fgcolor=color(v))
        v = 1 - n / steps
        m2.value(v, color(v))
        l2.color(color(v))
        l2.text(txt(v), fgcolor=color(v))
        refresh(ssd)
        utime.sleep(1)