/
SampleIronPython.py
70 lines (53 loc) · 1.87 KB
/
SampleIronPython.py
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
64
65
66
67
68
69
70
import clr
import sys
clr.AddReference("OpenRTM.Core")
clr.AddReference("OpenRTM.Extension")
clr.AddReference("OpenRTM.IIOP")
clr.AddReference("OpenRTM.WCF")
from OpenRTM.Core import *
from OpenRTM.Extension import *
from OpenRTM.IIOP import *
from System import *
class SampleIronPython(DataFlowComponent):
def __init__(self):
DataFlowComponent.__init__(self)
self.inport = InPort[TimedShort]()
self.outport = OutPort[TimedShort]()
def OnInitialize(self):
self.RegisterInPort("in", self.inport, TypeKind.DynamicContract)
self.RegisterOutPort("out", self.outport, TypeKind.DynamicContract)
return ReturnCode_t.RTC_OK
def OnExecute(self, execHandle):
print "Please Input Number "
data = TimedShort()
#data.Time.SetCurrentTime()
data.Data = long(sys.stdin.readline())
self.outport.Write(data)
data = self.inport.Read()
if data is None:
return ReturnCode_t.RTC_OK
print "time = " + format(data.Time)
print "data = " + str(data.Data)
return ReturnCode_t.RTC_OK
def rtc_finalize(rtc):
rtc.Finalize()
def SampleIronPythonInit(manager):
profile = ComponentProfile()
profile.InstanceName = "SampleIronPython"
profile.TypeName = "SampleIronPython"
profile.Category = "Examples"
profile.Description = "Sample IronPython Component"
profile.Vendor = "Nobu"
profile.Version = "1.0"
manager.DefaultProtocol.RegisterComponent(
profile, SampleIronPython, rtc_finalize)
def main():
manager = Manager(sys.argv)
manager.AddTypes(CorbaProtocolManager)
manager.Activate()
SampleIronPythonInit(manager)
comp = manager.CreateComponent("Examples.SampleIronPython")
#print format(comp.GetComponentProfile())
manager.Run()
if __name__ == "__main__":
main()