File: subscribertest.py

package info (click to toggle)
robotraconteur 1.2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 101,380 kB
  • sloc: cpp: 1,149,268; cs: 87,653; java: 58,127; python: 26,897; ansic: 356; sh: 152; makefile: 90; xml: 51
file content (61 lines) | stat: -rw-r--r-- 1,446 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from RobotRaconteur.Client import *
import sys
import time

try:
    raw_input  # type: ignore
except NameError:
    raw_input = input


def main():

    if (len(sys.argv) < 2):
        print("Usage for subscribertest:  subscribertest servicetype")
        return

    service_type = sys.argv[1]

    s = RRN.SubscribeServiceByType(service_type)

    def connected(s, client_id, client):
        print("Client connected: " + str(client_id.NodeID) +
              "," + client_id.ServiceName)

    def disconnected(s, client_id, client):
        print("Client disconnected: " + str(client_id.NodeID) +
              "," + client_id.ServiceName)
    s.ClientConnected += connected
    s.ClientDisconnected += disconnected

    def wire_value_changed(s, value, time):
        # print "Wire value changed: " + str(value) + ", " + str(time)
        pass

    w = s.SubscribeWire('broadcastwire')
    w.WireValueChanged += wire_value_changed

    def pipe_value_changed(s):
        while True:
            (res, p) = s.TryReceivePacket()
            if (not res):
                break
            print(p)

    p = s.SubscribePipe('broadcastpipe')
    p.PipePacketReceived += pipe_value_changed
    time.sleep(3)
    print(s.GetConnectedClients())
    print(w.InValue)

    try_val_res, try_val, try_val_ts = w.TryGetInValue()
    assert try_val_res
    print(try_val)

    raw_input("Press enter")

    return


if __name__ == "__main__":
    main()