コード例 #1
0
ファイル: test_groups.py プロジェクト: trigrass2/machinekit-2
    def test_group__ops(self):
        assert self.g1.userarg1 == 123
        assert self.g1.userarg2 == 4711

        assert len(hal.groups()) == 1
        assert "group1" in hal.groups()

        # access via name - second wrapper
        self.g2 = hal.Group("group1")
        assert self.g2.userarg1 == 123
        assert self.g2.userarg2 == 4711

        # add signals to group
        self.s1 = hal.Signal("sigs32", hal.HAL_S32)
        self.s2 = hal.Signal("sigfloat", hal.HAL_FLOAT)
        self.s3 = hal.Signal("sigbit", hal.HAL_BIT)
        self.s4 = hal.Signal("sigu32", hal.HAL_U32)

        # by object
        self.g2.add(self.s1, eps_index=2)
        self.g2.add(self.s2)
        # by name
        self.g2.add("sigbit")
        self.g2.add("sigu32")

        assert len(self.g2.signal_members()) == 4

        try:
            # try to add a duplicate
            self.g2.add("sigu32")
            raise Exception, "should not happen!"
        except RuntimeError:
            pass

        # change detection - all defaults, so no change yet
        assert len(self.g2.changed()) == 0

        # change a member signal
        self.s2.set(3.14)

        # see this is reflected once
        assert len(self.g2.changed()) == 1

        # but only once
        assert len(self.g2.changed()) == 0

        self.s1.set(-112345)
        self.s2.set(2.71828)
        self.s3.set(True)
        self.s4.set(815)

        # retrieve changed values
        for s in self.g2.changed():
            print "\t", s.name, s.type, s.get(), s.writers, s.readers

        # one more group
        self.g3 = hal.Group("group3")
        self.g3.add(hal.Signal("someu32", hal.HAL_U32))

        # add as nested group
        self.g2.add(self.g3)

        # iterate members
        for m in self.g2.members():
            # m is a Member() object
            # m.item is the object the member is referring to -
            # Signal or Group instance
            print m, m.item, m.epsilon, m.handle, m.userarg1, m.type
コード例 #2
0
ファイル: group.py プロジェクト: kinsamanka/machinekit-NG
# basic group example

from machinekit import hal
g2 = hal.Group("group1")
s1 = hal.Signal("sigs32", hal.HAL_S32)
s2 = hal.Signal("sigfloat", hal.HAL_FLOAT)
s3 = hal.Signal("sigbit", hal.HAL_BIT)
s4 = hal.Signal("sigu32", hal.HAL_U32)

# by object
g2.add(s1, eps_index=2)
g2.add(s2)
# by name
g2.add("sigbit")
g2.add("sigu32")

print g2.members()
コード例 #3
0
ファイル: test_groups.py プロジェクト: trigrass2/machinekit-2
 def setUp(self):
     self.g1 = hal.Group("group1", arg1=123, arg2=4711)
     hal.epsilon[2] = 0.1