def test_create_delete_storage(self): y = Yaks.login(YSERVER) admin = y.admin() stid = '123' res1 = admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove res2 = admin.remove_storage(stid) y.logout() self.assertTrue(res1) self.assertTrue(res2)
def test_create_delete_workspace(self): y = Yaks.login(YSERVER) admin = y.admin() stid = '123' admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove workspace = y.workspace('/myyaks') self.assertEqual(workspace.path, Path('/myyaks')) admin.remove_storage(stid) y.logout()
def main(addr): y = Yaks.login(addr) ws = y.workspace('/demo/fprod') ws.subscribe('/demo/fprod/filter', update_filter) while(True): x = random.randint(0, 100) ## The filter is evaluated in the current context if eval (filter) == True: print (x) else: print ('Filtered...') time.sleep(3)
def test_put_get_remove(self): y = Yaks.login(YSERVER) admin = y.admin() stid = '123' admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove workspace = y.workspace('/myyaks') d = Value('hello!', encoding=Encoding.STRING) self.assertTrue(workspace.put('/myyaks/key1', d)) entry = workspace.get('/myyaks/key1')[0] self.assertEqual(entry.get_value(), d) self.assertEqual(entry.get_path(), '/myyaks/key1') self.assertTrue(workspace.remove('/myyaks/key1')) self.assertEqual(workspace.get('/myyaks/key1'), []) admin.remove_storage(stid) y.logout()
def test__big_put_get_remove(self): y = Yaks.login('127.0.0.1') admin = y.admin() stid = '123' admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove workspace = y.workspace('/myyaks') for i in range(0, 100): v = 'x{}'.format(i) * 512 workspace.put('/myyaks/big/{}'.format(i), Value(v, encoding=Encoding.STRING)) entries = workspace.get('/myyaks/big/**') self.assertEqual(len(entries), 100) admin.remove_storage(stid) y.logout()
def test_eval(self): y = Yaks.login(YSERVER) admin = y.admin() stid = '123' admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove workspace = y.workspace('/myyaks') def cb(path, args): return Value('{} World!'.format(args['hello']), encoding=Encoding.STRING) workspace.register_eval('/myyaks/key1', cb) entries = workspace.get('/myyaks/key1?(hello=mondo)') self.assertEqual(entries[0].get_path(), '/myyaks/key1') self.assertEqual(entries[0].get_value(), Value('mondo World!', encoding=Encoding.STRING)) workspace.unregister_eval('/myyaks/key1') admin.remove_storage(stid) y.logout()
def test_sub_remove(self): y = Yaks.login(YSERVER) admin = y.admin() stid = '123' admin.add_storage(stid, {'selector': '/myyaks/**'}) time.sleep(1) # TODO remove workspace = y.workspace('/myyaks') local_var = mvar.MVar() workspace.put('/myyaks/key1', Value('123', encoding=Encoding.STRING)) def cb(kvs): self.assertEqual(kvs[0].get_path(), '/myyaks/key1') self.assertEqual(kvs[0].get_kind(), ChangeKind.REMOVE) local_var.put(kvs) sid = workspace.subscribe('/myyaks/key1', cb) workspace.remove('/myyaks/key1') self.assertTrue(workspace.unsubscribe(sid)) admin.remove_storage(stid) y.logout()
def test_create_close_api(self): y = Yaks.login(YSERVER) self.assertTrue(y.rt.running) y.logout() self.assertFalse(y.rt.running)
import sys from yaks import Yaks, Selector, Path, Workspace, Encoding, Value # If not specified as 1st argument, use a relative path # (to the workspace below): 'yaks-python-put' path = 'yaks-python-put' if len(sys.argv) > 1: path = sys.argv[1] locator = None if len(sys.argv) > 2: locator = sys.argv[2] print('Login to Yaks (locator={})...'.format(locator)) y = Yaks.login(locator) print('Use Workspace on "/demo/example"') w = y.workspace('/demo/example') print('Remove {}'.format(path)) w.remove(path) y.logout()
SENSOR_RESOURCE = '/turtlebot/sensors' ultrasonic_ranger = 6 thum_sensor = 5 aq_sensor = 0 # temp_humidity_sensor_type # Grove Base Kit comes with the blue sensor. blue = 0 # The Blue colored sensor. white = 1 # The White colored sensor. threshold = 10 grovepi.pinMode(aq_sensor, "INPUT") yaks = Yaks.login(locator=sys.argv[1]) ws = yaks.workspace('/') while True: try: # Read distance value from Ultrasonic dist = grovepi.ultrasonicRead(ultrasonic_ranger) #print(dist) [temp, humidity] = grovepi.dht(thum_sensor, blue) if math.isnan(temp) == False and math.isnan(humidity) == False: temp = str("%.02f" % temp) humidity = str("%.02f" % humidity) #print("temp = %.02f C humidity =%.02f%%"%(temp, humidity)) aq_sensor_value = grovepi.analogRead(aq_sensor) if aq_sensor_value > 700:
import time import grovepi period = 500000 ap = argparse.ArgumentParser() ap.add_argument("-y", "--yaks", type=str, default="127.0.0.1", help="the YAKS instance") ap.add_argument("-u", "--uri", required=True, help="the publication path") ap.add_argument("-p", "--pin", required=True, help="GrovePi Pin") args = vars(ap.parse_args()) pin = int(args['pin']) y = Yaks.login(args['yaks']) path = args['uri'] ws = y.workspace('/') while True: try: value = grovepi.temp(pin, '1.2') print("value = {}".format(value)) ws.put(path, Value(str(value), encoding=Encoding.STRING)) time.sleep(.5) except IOError: print("Error")
import time import sys from yaks import Yaks, Selector, Path, Workspace, Encoding, Value import threading import argparse ap = argparse.ArgumentParser() ap.add_argument("-z", "--zenoh", required=False, help="ip:port for the zenoh router") args = vars(ap.parse_args()) zlocator = args['zenoh'] y = Yaks.login(zlocator) ws = y.workspace('/') N = 50000 count = 0 start = 0 def listener(kvs): for (k, v) in kvs: global count global start global N if count == 0: start = time.time() count += 1 elif count < N: count += 1
def names_listener(kvs): for k, v in kvs: chunks = k.split('/') cam = chunks[-3] face = int(chunks[-2]) if cam not in cams: cams[cam] = {} if face not in cams[cam]: cams[cam][face] = {"img": b'', "name": "", "time": 0} cams[cam][face]["name"] = v.get_value().get_value() print("[INFO] Connecting to yaks...") y = Yaks.login(args['zenoh']) ws = y.workspace('/') ws.subscribe(args['prefix'] + "/faces/*/*", faces_listener) ws.subscribe(args['prefix'] + "/faces/*/*/name", names_listener) kvs = ws.get(args['prefix'] + "/faces/*/*/name", encoding=Encoding.STRING) names_listener(map(lambda x: (x[0], Change(ChangeKind.PUT, 0, x[1])), kvs)) while True: now = time.time() for cam in list(cams): faces = cams[cam] vbuf = np.zeros((250, 1000, 3), np.uint8) for face in list(faces): if faces[face]["time"] > now - 0.2: