summaryrefslogtreecommitdiff
path: root/cesar/mac/pbproc/test/maximus/py/test_pbproc.py
blob: 302549491385b9111b2727502613bcc02a47d5b0 (plain)
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
62
63
RX = False
TX = True

class TestPBProc:
    """PBProc test wrapper."""
    def __init__ (self, maximus, sta):
        self.maximus = maximus
        self.sta = sta

    def create_fcall (self, name, **args):
        """Create a function call with given name and parameters."""
        fc = self.maximus.create_fcall (name)
        for (n, v) in args.iteritems ():
            if type (v) is bool:
                fc.add_param_bool (n, v)
            elif type (v) is int:
                fc.add_param_ulong (n, v)
            else:
                raise TypeError
        return fc
    
    def set_config (self, **args):
        self.create_fcall ('set_config', **args).send (self.sta)

    def add_seg (self, mme, lid, tei, seg_nb, gen):
        self.create_fcall ('add_seg', mme = mme, lid = lid, tei = tei,
                seg_nb = seg_nb, gen = gen).send (self.sta)

    def prepare_beacon (self, **args):
        self.create_fcall ('prepare_beacon', **args).send (self.sta)

    def get_seg (self, **args):
        m = self.create_fcall ('get_seg', **args)
        m.send (self.sta)
        class get_seg_rsp:
            def __init__ (self, m):
                self.seg_nb = m.bind_param_ulong ('seg_nb')
        return get_seg_rsp (m)

    def get_seg_async (self, cb, **args):
        m = self.create_fcall ('get_seg', **args)
        class get_seg_rsp:
            def __init__ (self, m):
                self.seg_nb = m.bind_param_ulong ('seg_nb')
        def get_seg_cb (msg):
            cb (get_seg_rsp (msg))
        m.set_cb (get_seg_cb)
        m.send_async (self.sta)

    def rx_seg_refill (self, **args):
        self.create_fcall ('rx_seg_refill', **args).send (self.sta)

    def add_beacon_period (self, **args):
        self.create_fcall ('add_beacon_period', **args).send (self.sta)

    def set_tonemap (self, tx, **args):
        self.create_fcall ('set_tonemap', tx = tx, **args).send (self.sta)

    def activate (self, activate = True):
        self.create_fcall ('activate', activate = activate).send (self.sta)

    def trace_dump (self, **args):
        self.create_fcall ('trace_dump', **args).send (self.sta)