예제 #1
0
 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)
예제 #2
0
 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()
예제 #3
0
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)
예제 #4
0
 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()
예제 #5
0
    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()
예제 #6
0
    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()
예제 #7
0
    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()
예제 #8
0
 def test_create_close_api(self):
     y = Yaks.login(YSERVER)
     self.assertTrue(y.rt.running)
     y.logout()
     self.assertFalse(y.rt.running)
예제 #9
0
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()
예제 #10
0
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:
예제 #11
0
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")
예제 #12
0
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
예제 #13
0
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: