00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 import sys
00011 import string
00012 import time
00013 sys.path.append(".")
00014
00015
00016 import RTC
00017 import OpenRTM_aist
00018 import math
00019 import AutoTest, AutoTest__POA
00020 import os.path
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 AutoTestIn_spec = ["implementation_id", "AutoTestIn",
00032 "type_name", "AutoTestIn",
00033 "description", "ModuleDescription",
00034 "version", "1.0.0",
00035 "vendor", "HarumiMiyamoto",
00036 "category", "example",
00037 "activity_type", "STATIC",
00038 "max_instance", "1",
00039 "language", "Python",
00040 "lang_type", "SCRIPT",
00041 "exec_cxt.periodic.rate", "1.0",
00042 ""]
00043
00044
00045
00046
00047 class MyServiceSVC_impl(AutoTest__POA.MyService):
00048 def __init__(self):
00049 self._echoList = []
00050 self._valueList = []
00051 self._value = 0
00052 self.__echo_msg= ""
00053 self._isNew = False
00054
00055 def __del__(self):
00056 pass
00057
00058 def echo(self, msg):
00059 OpenRTM_aist.CORBA_SeqUtil.push_back(self._echoList, msg)
00060 self.__echo_msg = msg
00061 if self._isNew:
00062
00063 pass
00064 self._isNew = True
00065 return msg
00066
00067 def get_echo(self):
00068 if self._isNew:
00069 self._isNew = False
00070 echomsg = self.__echo_msg
00071 return echomsg
00072
00073 return ""
00074
00075 def reset_message(self):
00076 self._isNew = False
00077 self.__echo_msg = ""
00078
00079 class AutoTestIn(OpenRTM_aist.DataFlowComponentBase):
00080
00081 """
00082 \class AutoTestIn
00083 \brief ModuleDescription
00084
00085 """
00086 def __init__(self, manager):
00087 """
00088 \brief constructor
00089 \param manager Maneger Object
00090 """
00091 OpenRTM_aist.DataFlowComponentBase.__init__(self, manager)
00092 self._cnt=0
00093 self._flag=0
00094
00095 def onInitialize(self):
00096 self._d_dp_vIn = RTC.TimedFloat(RTC.Time(0,0),0)
00097 self._d_dp_vSeqIn = RTC.TimedFloatSeq(RTC.Time(0,0),[])
00098
00099 self._InIn = OpenRTM_aist.InPort("in", self._d_dp_vIn, OpenRTM_aist.RingBuffer(8))
00100 self._SeqInIn = OpenRTM_aist.InPort("seqin", self._d_dp_vSeqIn, OpenRTM_aist.RingBuffer(8))
00101
00102
00103
00104 self.addInPort("in",self._InIn)
00105 self.addInPort("seqin",self._SeqInIn)
00106
00107
00108 self._MyServicePort = OpenRTM_aist.CorbaPort("MyService")
00109
00110
00111
00112 self._myservice0_var = MyServiceSVC_impl()
00113
00114
00115 self._MyServicePort.registerProvider("myservice0", "MyService", self._myservice0_var)
00116
00117
00118 self.addPort(self._MyServicePort)
00119
00120 return RTC.RTC_OK
00121
00122
00123 def onActivated(self, ec_id):
00124 self._file=open('received-data','w')
00125 self._msg = ""
00126 return RTC.RTC_OK
00127
00128 def onDeactivated(self, ec_id):
00129 self._file.close()
00130 self._myservice0_var.reset_message()
00131 return RTC.RTC_OK
00132
00133 def onExecute(self, ec_id):
00134 if not self._msg:
00135 self._msg = self._myservice0_var.get_echo()
00136 if self._msg:
00137 self._msg += "\n"
00138
00139 if self._InIn.isNew() and self._SeqInIn.isNew() and self._msg:
00140 floatdata = self._InIn.read()
00141 fdata = "%.6f\n" % floatdata.data
00142 print "fdata:", fdata
00143 self._file.write(fdata)
00144
00145 seqfloatdata = self._SeqInIn.read()
00146
00147 t_sdata = tuple(d for d in seqfloatdata.data)
00148 sdata = "%.6f %.6f %.6f %.6f %.6f\n" % t_sdata
00149
00150 print "sdata: ", sdata
00151 self._file.write(sdata)
00152
00153 self._file.write(self._msg)
00154 self._msg = ""
00155
00156 return RTC.RTC_OK
00157 else:
00158 return RTC.RTC_OK
00159
00160
00161
00162
00163 def AutoTestInInit(manager):
00164 profile = OpenRTM_aist.Properties(defaults_str=AutoTestIn_spec)
00165 manager.registerFactory(profile,
00166 AutoTestIn,
00167 OpenRTM_aist.Delete)
00168
00169 def MyModuleInit(manager):
00170 AutoTestInInit(manager)
00171
00172
00173 comp = manager.createComponent("AutoTestIn")
00174
00175
00176
00177 def main():
00178 mgr = OpenRTM_aist.Manager.init(len(sys.argv), sys.argv)
00179 mgr.setModuleInitProc(MyModuleInit)
00180 mgr.activateManager()
00181 mgr.runManager()
00182
00183 if __name__ == "__main__":
00184 main()
00185