def create(): def mapper(xy): x, y = xy return "{}{}".format(x.value, y.value) return xs.pipe( ops.join( ys, lambda x: rx.timer(x.interval), lambda y: rx.timer(y.interval).pipe(ops.flat_map(rx.throw(ex) if y.value == "tin" else rx.empty())), ), ops.map(mapper), )
def create(): def mapper(xy): x, y = xy return "{}{}".format(x.value, y.value) return xs.pipe( ops.join( ys, lambda x: rx.timer(x.interval), lambda y: rx.timer(y.interval), ), ops.map(mapper), )
def create(): def mapper(xy): x, y = xy return "{}{}".format(x.value, y.value) return xs.pipe( ops.join( ys, lambda x: rx.timer(x.interval), lambda y: rx.timer(y.interval).pipe( ops.flat_map( rx.throw(ex) if y.value == "tin" else rx.empty())), ), ops.map(mapper), )
def init_buttons(self): self.buttons = {} colStream = rx.create(self.observeColPins(COL_PINS)) rowStream = rx.create(self.observeRowPins(ROW_PINS)) keyStream = rowStream.pipe( ops.join( colStream, lambda l: rx.timer(.01), lambda r: rx.timer(.01) ), ops.map(self.findKey), ) keyStream.subscribe(on_next=lambda i: self.on_compose(i))
def create(): def right_duration_mapper(y): if len(y.value) >= 0: raise Exception(ex) else: return rx.empty() def mapper(xy): x, y = xy return "{}{}".format(x.value, y.value) return xs.pipe( ops.join( ys, lambda x: rx.timer(x.interval), right_duration_mapper, ), ops.map(mapper), )
colStream = rx.create(observeColPins(COL_PINS)) rowStream = rx.create(observeRowPins(ROW_PINS)) #colStream.subscribe(on_next=lambda i: print(i)) #rowStream.subscribe(on_next=lambda i: print(i)) def findKey(xy): row, col = xy return KEYPAD[row.n][col.n] keyStream = rowStream.pipe( ops.join( colStream, lambda l: rx.timer(.01), lambda r: rx.timer(.01) ), ops.map(findKey), ) def makeColor(i): print(i) if i == 1: led.red = 1 if i == 2: led.green = 1 if i == 3: led.blue = 1 if i == 4: led.red = 0.66
import rx import rx.operators as ops from rx.subject import Subject import time numbers1 = Subject() numbers2 = Subject() numbers1.pipe( ops.join( numbers2, lambda i: rx.just(True).pipe(ops.delay(200)), lambda i: rx.just(True).pipe(ops.delay(300)), ), ops.starmap(lambda i, j: i + j), ).subscribe(on_next=lambda i: print("on_next {}".format(i)), on_error=lambda e: print("on_error: {}".format(e)), on_completed=lambda: print("on_completed")) numbers1.on_next(0) numbers2.on_next(2) numbers1.on_next(1) time.sleep(0.4) numbers1.on_next(2) numbers2.on_next(5) time.sleep(0.25) numbers1.on_next(3) numbers2.on_next(3)