VMware Player Scientific Linux 5.x 6.x 7.x RPM
|
|
- ときな たなせ
- 5 years ago
- Views:
Transcription
1 DAQ-Middleware $Date: 2015/02/26 02:05:14 $ DAQ-Middleware 1. DAQ-Middleware DAQ-Middleware DAQ-Middleware DAQ-Middleware [2] SampleReader SampleReader SampleMonitor SampleReader 1. C C++ 2. gcc, make 3.
2 VMware Player Scientific Linux 5.x 6.x 7.x RPM DAQ-Middleware InPort OutPort newcomp Makefile Skeleton SampleReader SampleReader.h
3 10.2 SampleReader.cpp Makefile SampleMonitor SampleData.h SampleMonitor.h SampleMonitor.cpp SampleMonitorComp.cpp Makefile Condition Condition WebUI A DAQ-Middleware 71 B 73 C rpm yum 74 D 77 E 79 E E.2 xinetd E.3 xinetd E E E F Scientific Linux 85 F.1 (SL 5.x) F.2 (SL 5.x) F.3 (SL 6.x) F.4 (SL 6.x)
4 F.5 (SL 7.x) F.6 (SL 7.x) F.7 SL 5.x, 6.x SELinux, iptables F.8 SL 7.x SELinux, G DAQ 92 H InPort 93 4
5 1 1 DAQ-Middleware ( 2 ) DAQ-Middleware ( 3 ) DAQ-Middleware ( 4 ) ( 5 ) Skeleton ( 6 ) ( 7 ) ( 8 ) Condition ( 13 ) DAQ-Middleware DAQ- Middleware [2] DAQ DAQ-Middleware /usr/ share/daqmw/examples Date Scientific Linux 5.x 6.x 7.x DAQ-Middleware Scientific Linux yum DAQ-Middleware OS DAQ-Middleware DAQ-Middleware 2.3 URL 5
6 2 2 DAQ-Middleware DAQ-Middleware VMware Player 2. Scientific Linux 5.x 6.x 7.x RPM (SL 5.x, 6.x i686 (32 ), x86 64 (64 ) SL 7.x SL 7.x x86 64 (64 ) x86 64(64 ) ) VMware Player VMware Player Scientific Linux 5.8 DAQ- Middleware VMware Player VMware VMware Player 3.x CPU VMware Player 3.x CPU CMOV PAE TSC FXSAVE CPU CPU Pentium M PAE 3.x 3.x VMware Player VMware Player Scintific Linux vmplayer/sl-55-daqmw.zip daq abcd1234 root abcd MB VMware Player ROOT (http: //root.cern.ch/) /usr/local/root daq ROOTSYS /usr/local/root 6
7 2 VMware Player Scientific Linux 5.8 RPM 2.2 Scientific Linux 5.x 6.x 7.x RPM Scientific Linux RedHat Enterprise Linux Linux Scientific Linux 5.x, 6.x 7.x F DAQ-Middleware DAQ-Middleware rpm URL root # chmod +x daqmw-rpm #./daqmw-rpm distclean chmod sh daqmw-rpm distclean ( ) daqmw-rpm distclean rpm -e kek-daqmiddleware-repo rpm -e OpenRTM-aist rm -fr /var/cache/yum/kek-daqmiddleware Scientific Linux 5.x 6.x 7.x DAQ-Middleware RPM root root# chmod +x daqmw-rpm root#./daqmw-rpm install chmod sh daqmw-rpm install ( ) daqmw-rpm install root# rpm -ihv root# yum --disablerepo= * --enablerepo=kek-daqmiddleware install DAQ-Middleware C 7
8 2 yum rpm 32 rpm 22MB 64 rpm 23MB 32 78MB 64 95MB DAQ-Middleware OpenRTM-aist (+ ) OmniORB omniorb-doc omniorb-servers omniorb-utils omniorb-devel omniorb SL 5.x xerces-c xerces-c-devel SL 6.x xerces-c xerces-c-devel xalan-c xalan-c-devel (ROOT ) 13 Condition boost boost Scientific Linux 5.x 6.x 7.x yum yum DAQ-Middleware ( ) wget chmod +x daqmw-rpm./daqmw-rpm install #./daqmw-rpm distclean 8
9 2 # rpm -qa --last less rpm ( ) rpm -e 2.3 DAQ-Middleware DAQ- Middleware-M.m.p.tar.gz M m p make; make install OpenRTM-aist OmniORB RPM yum Scientific Linux CentOS RedHat Enterprise Linux (5.x 6.x 7.x) D 2.4 Skeleton Skeleton DAQ-Middleware /usr/share/daqmw/examples/ Skeleton/ % cp -r /usr/share/daqmw/examples/skeleton. ( (".") ) % cd Skeleton % ls Makefile Skeleton.cpp Skeleton.h SkeletonComp.cpp % make SkeletonComp make *1 *1 Scientific Linux 5.x libuuid Scientific Linux 5.x e2fsprogs-devel 9
10 2 2.5 DAQ-Middleware RPM VMware Player rpm -ql DAQ-Middleware VMware Player native Linux rpm DAQ-Middleware /usr/bin run.py, run.pyc, run.pyo DaqOperator Python run.pyc, run.pyo run.py daqmw-rpm RPM DAQ-Middleware rpm -e DAQ-Middleware DAQ-Middleware condition_xml2json xml2json-with-attribute.xslt DAQ-Middleware Condition XML XML XML JSON JSON XML JSON condition_xml2json xml2json-with-attribute.xslt XSL 10
11 2 newcomp /usr/include/daqmw 4.1 DAQ-Middleware API /usr/include/daqmw/idl IDL /usr/lib/daqmw (32 ) /usr/lib64/daqmw (64 ) DAQ ( ) (json spirit) Makefile /usr/share/daqmw/mk/ comp.mk DAQMW LIB DIR LDLIBS += -L$(DAQMW_LIB_DIR) -lsock comp.mk 4.2 A /usr/libexec/daqmw/daqoperator DAQ /usr/share/daqmw/ DaqOperator/ /usr/share/daqmw/conf DAQ-Middleware ( ) SampleReader SampleMonitor sample.xml sample.xml 12 /usr/share/daqmw/daqoperator DAQ DAQ DAQ /usr/share/daqmw/docs DAQ-Middleware 11
12 2 /usr/share/daqmw/etc DAQ xinetd E /usr/share/daqmw/examples (SampleReader SampleMonitor) /usr/share/daqmw/mk Makefile comp.mk Makefile
13 3 DAQ-MIDDLEWARE 1 DAQ-Middleware overview 3 DAQ-Middleware DAQ-Middleware DAQ-Middleware [2] 1 DAQ-Middleware DAQ-Middleware DAQ ( ) DaqOperator DaqOperator DaqOperator XML DaqOperator ( ) DaqOperator DaqOperator HTTP DaqOperator XML XML XML JSON 13
14 3 DAQ-MIDDLEWARE 2 3 JSON DAQ-Middleware 2 1 DAQ-Middleware DAQ-Middleware InPort OutPort InPort OutPort OutPort InPort DAQ-Middleware ServicePort DaqOperator 14
15 3 DAQ-MIDDLEWARE / daq configure() LOADED CONFIGURED DaqOperator ( IP ) daq start() CONFIGURED RUNNING connect daq run() RUNNING daq stop() RUNNING CONFIGURED disconnect 1 Gatherer / daq configure() LOADED CONFIGURED DaqOperator daq start() CONFIGURED RUNNING daq run() RUNNING daq stop() RUNNING CONFIGURED 2 Monitor InPort LOADED CONFIGURED RUNNING PAUSED LOADED DaqOperator CONFIGURE LOADED CONFIGURE CONFIGURED 15
16 3 DAQ-MIDDLEWARE LOADED CONFIGURED daq_configure() RUNNING daq_run() 1 daq_run() STOP daq_run() STOP daq_run() daq_run() *2 (gatherer) 1 (monitor) ( ) 5 2 header magic 0xe7 2 footer matic 0xcc 4 Reserved DAQ-Middleware EventByteSize EventByteSize sequence number *2 read() 16
17 3 DAQ-MIDDLEWARE Component Header... Compoent Footer Event Data 4 5 Component Header Header Magic (0xe7) Component Footer Footer Magic (0xcc) Header Magic (0xe7) Footer Magic (0xcc) Reserved Reserved Reserved Reserved Data ByteSize (24:31) sequence number (24:31) Data ByteSize (16:23) sequence number (16:23) Data ByteSize (8:15) sequence number (8:15) Data ByteSize (0:7) sequence number (0:7) sequence number EventByteSize sequence number set_event_byte_size() inc_sequence_num() get_sequence_num() DAQ- Middleware [2] 3.4 InPort OutPort InPort OutPort Sample InPort OutPort Sample.h InPort OutPort Port private: TimedOctetSeq m_in_data; // InPort InPort<TimedOctetSeq> m_inport; TimedOctetSeq m_out_data; // OutPort OutPort<TimedOctetSeq> m_outport; m in data m out data Sample.cpp InPort OutPort 17
18 3 DAQ-MIDDLEWARE Sample::Sample(RTC::Manager* manager) : DAQMW::DaqComponentBase(manager), m_inport("sample_in", m_in_data), m_outport("sample_out", m_out_data), InPort m_inport.read() true false false check_inport_status(m_inport) InPort check_inport_status(m_inport) BUF_TIMEOUT BUF_FATAL fatal_error_report() DaqOperator m_in_data.data m_in_data.data.length() OutPort m out data. data.length( ) m_out_data.data m_outport.write() m_outport.write() true false true false check_outport_status(m_outport) OutPort check_outport_status() BUF_TIMEOUT BUF_FATAL fatal_error_report() DaqOperator DAQ-Middleware [2] 3.5 fatal_error_report() DaqOperator fatal_error_report() DAQ- Middleware [2] 18
19 newcomp 2.4 Skeleton newcomp /usr/bin/newcomp ( newcomp MyMonitor ): Makefile MyMonitor.h MyMonitor.cpp MyMonitorComp.cpp % newcomp MyMonitor % ls MyMonitor % cd MyMonitor % ls Makefile MyMonitorComp.cpp MyMonitor.cpp MyMonitor.h MyMonitor newcomp Makefile MYMONITOR mymonitor Skeleton make make * 3 MyMonitorComp.cpp main() SampleMonitor ROOT main() TApplication SampleMonitorComp.cpp MyMonitor.cpp daq_start() daq_run() *3 make autogen autogen 19
20 4 Source ( Source ) Sink ( Sink ) newcomp InPort OutPort newcomp -h newcomp $ newcomp -h Usage: newcomp [-f] [-t component_type] NewCompName ( ) You may specify component type as -t option. Valid component types are: null sink source ( ) newcomp -h null -t null Source Sink null ( -t ) ( ( ) ) Source % newcomp -t source MySampleReader MySampleReader Sink % newcomp -t sink MySampleMonitor MySampleMonitor Source newcomp -t source MyReader MyReader.h 1 private: 2 TimedOctetSeq m_out_data; 3 OutPort<TimedOctetSeq> m_outport; 4 5 private: 6 int daq_dummy(); 7 int daq_configure(); 8 int daq_unconfigure(); 20
21 4 9 int daq_start(); 10 int daq_run(); 11 int daq_stop(); 12 int daq_pause(); 13 int daq_resume(); int parse_params(::nvlist* list); 16 int read_data_from_detectors(); 17 int set_data(unsigned int data_byte_size); 18 int write_outport(); static const int SEND_BUFFER_SIZE = 4096; 21 unsigned char m_data[send_buffer_size]; 22 unsigned int m_recv_byte_size; 3 2 ( ) MyReader.cpp 1 int MyReader::read_data_from_detectors() 2 { 3 int received_data_size = 0; 4 /// write your logic here 5 return received_data_size; 6 } read_data_from_detectors() m_data Sink newcomp -t sink MyMonitor MyMonitor.cpp 1 check_header_footer(m_in_data, recv_byte_size); // check header and footer 2 unsigned int event_byte_size = get_event_size(recv_byte_size); 3 4 ///////////// Write component main logic here. ///////////// 5 // online_analyze(); 6 ///////////////////////////////////////////////////////////// 7 8 inc_sequence_num(); // increase sequence num. 9 inc_total_data_size(event_byte_size); // increase total data byte size 5 online_analyze() event_byte_size 21
22 4 m_in_data.data[header_byte_size] m_in_data.data[header_byte_size + event_byte_size - 1] ( 4 ) 4.2 Makefile newcomp Makefile (newcomp MyMonitor ): COMP_NAME = MyMonitor all: $(COMP_NAME)Comp SRCS += $(COMP_NAME).cpp SRCS += $(COMP_NAME)Comp.cpp # sample install target # # MODE = 0755 # BINDIR = /tmp/mybinary # # install: $(COMP_NAME)Comp # mkdir -p $(BINDIR) # install -m $(MODE) $(COMP_NAME)Comp $(BINDIR) include /usr/share/daqmw/mk/comp.mk MyMonitor.cpp MyMonitorComp.cpp /usr/share/daqmw/mk/comp.mk Makefile ( ) newcomp Makefile (*.cpp) Makefile SRCS (ModuleUtils.cpp FileUtils.cpp ): 1 COMP_NAME = MyMonitor 2 3 all: $(COMP_NAME)Comp 4 5 SRCS += $(COMP_NAME).cpp 6 SRCS += $(COMP_NAME)Comp.cpp 7 # 8 # ModuleUtils.cpp FileUtils.cpp 9 # 10 SRCS += ModuleUtils.cpp 11 SRCS += FileUtils.cpp 22
23 # sample install target 14 # 15 # MODE = # BINDIR = /tmp/mybinary 17 # 18 # install: $(COMP_NAME)Comp 19 # mkdir -p $(BINDIR) 20 # install -m $(MODE) $(COMP_NAME)Comp $(BINDIR) include /usr/share/daqmw/mk/comp.mk OBJS : OBJS += ModuleUtils.o OBJS += FileUtils.o SRCS OBJS ( ): ( ) SRCS += FileUtils.cpp OBJS += FileUtils.o OBJS (*.cpp) make clean FileUtils.o FileUtils.h FileUtils.cpp FileUtils.h FileUtils.cpp FileUtils.o: FileUtils.h FileUtils.cpp newcomp cpp ( newcomp MyMonitor MyMonitor.o MyMonitorComp.o ) comp.mk comp.mk CPPFLAGS -I. -I/usr/include/daqmw -I/usr/include/daqmw/idl make *.h -I. /usr/include CPPFLAGS += -I/path/to/myheader_dir CPPFLAGS += LDLIBS mylibarary /usr/local/include 23
24 4 /usr/local/lib/libmylibrary.so Makefile COMP_NAME = MyMonitor 2 3 all: $(COMP_NAME)Comp 4 5 SRCS += $(COMP_NAME).cpp 6 SRCS += $(COMP_NAME)Comp.cpp 7 8 # 9 # /usr/local/include 10 # /usr/local/lib/libmylibrary.so 11 # Makefile 12 # 13 CPPFLAGS += -I/usr/local/include 14 LDLIBS += -L/usr/local/lib -lmylibrary # sample install target 17 # 18 # MODE = # BINDIR = /tmp/mybinary 20 # 21 # install: $(COMP_NAME)Comp 22 # mkdir -p $(BINDIR) 23 # install -m $(MODE) $(COMP_NAME)Comp $(BINDIR) include /usr/share/daqmw/mk/comp.mk DAQ-Middleware ( json ) (32 SL /usr/lib/daqmw 64 SL /usr/lib64/daqmw) DAQMW_LIB_DIR (/usr/include/daqmw) CPPFLAGS make autogen autogen DAQ-Middleware makefile (comp.mk) 1 1 DAQ-Middleware comp.mk.cpp.h (.cc.hh) 24
25 6 SKELETON 5 daq /home/daq/mydaq % cd % mkdir MyDaq % cd MyDaq % pwd /home/daq/mydaq 6 Skeleton Skeleton Skeleton newcomp Skeleton ( /usr/share/daqmw/examples/skeleton ) Skeleton make % cd % cd MyDaq % newcomp Skeleton % cd Skeleton % ls Makefile SkeletonComp.cpp Skeleton.cpp Skeleton.h % make ( ) % ls -l SkeletonComp -rwxrwxr-x 1 daq daq Apr 1 09:00 SkeletonComp % cd % cd MyDaq % cp /usr/share/daqmw/conf/skel.xml. skel.xml execpath execpath SkeletonComp SkeletonComp /usr/share/daqmw/conf/skel.xml 1 <configinfo> 2 <daqoperator> 3 <hostaddr> </hostaddr> 25
26 6 SKELETON 4 </daqoperator> 5 <daqgroups> 6 <daqgroup gid="group0"> 7 <components> 8 <component cid="skeletoncomp0"> 9 <hostaddr> </hostaddr> 10 <hostport>50000</hostport> 11 <instname>skeleton0.rtc</instname> 12 <execpath>/home/daq/mydaq/skeleton/skeletoncomp</execpath> 13 <conffile>/tmp/daqmw/rtc.conf</conffile> 14 <startord>1</startord> 15 <inports> 16 </inports> 17 <outports> 18 </outports> 19 <params> 20 </params> 21 </component> 22 </components> 23 </daqgroup> 24 </daqgroups> 25 </configinfo> DAQ-Middleware [2] execpath inports OutPorts DAQ-Middleware [2] DAQ-Middleware DAQ DaqOperator DaqOperator (DaqOperator ) shell xinetd DAQ-Middleware /usr/bin/run.py run.py -l( ) run.py DaqOperator run.py -c run.py DaqOperator DaqOperator ( DaqOperator ) Skeleton 0 % cd % cd MyDaq % run.py -c -l skel.xml 26
27 6 SKELETON ( run.py -cl skel.xml ) run.py ( CPU 4 ) Command: 0:configure 1:start 2:stop 3:unconfigure 4:pause 5:resume RUN NO: 0 start at: stop at: GROUP:COMP_NAME EVENT SIZE STATE COMP STATUS group0:skeletoncomp0: 0 LOADED WORKING DaqOperator DaqOperator Skeleton STATE LOADED 1 Command: LOADED start DaqOperator STATE LOADED 0 configure STATE CONFIGURED 1 start (1 ) STATE RUNNING 2 stop STATE CONFIG- URED 2 stop Ctrl-C DaqOperator SIGINT DaqOperator DaqOperator run.py SIGINT (run.py DaqOperator ) exit DaqOperator Ctrl-C ### ERROR: : cannot connect DaqOperator run.py /tmp/daqmw/log. /tmp/daqmw/log.skeletoncomp Skeleton Skeleton /usr/ share/daqmw/examples/ m_debug 27
28 6 SKELETON if (m_debug) { std::cerr << "debug message here" << std::endl; } Skeleton (Skeleton.cpp ) Skeleton::Skeleton(RTC::Manager* manager) : DAQMW::DaqComponentBase(manager), m_inport("skeleton_in", m_in_data), m_outport("skeleton_out", m_out_data), m_in_status(buf_success), m_out_status(buf_success), m_debug(true) // false true onexecute RTC::ReturnCode_t Skeleton::onExecute(RTC::UniqueId ec_id) { // std::cerr << "*** onexecute\n"; // daq_do(); } return RTC::RTC_OK; daq_dummy() int Skeleton::daq_dummy() { std::cerr << "Skeleton::dummy" << std::endl; // } return 0; make run.py -cl skel.xml run.py Skeleton DaqOperator /tmp/daqmw/ Skeleton /tmp/daqmw/log.skeletoncomp tail -f DaqOperator CONFIGURE 28
29 7 7 newcomp Source ( TinySource ) Sink ( TinySink ) TinySource TinySink 16 DAQ-Middleware TinySource TinySink /usr/share/daqmw/ examples/tinysource /usr/share/daqmw/examples/tinysink /usr/share/daqmw/conf/tiny.xml % cd % cd MyDaq % newcomp -t source TinySource % newcomp -t sink TinySink % cp /usr/share/daqmw/conf/tiny.xml. TinySource TinySink TinySource.cpp 1 int TinySource::read_data_from_detectors() 2 { 3 int received_data_size = 0; 4 /// write your logic here 5 usleep(500000); // 6 for (int i = 0; i < SEND_BUFFER_SIZE; i++) { // 7 m_data[i] = (i % 256); // 8 } // 9 received_data_size = SEND_BUFFER_SIZE; // 10 /// end of my tiny logic return received_data_size; 13 } TinySource.h sleep TinySink.h 1 private: 2 int daq_dummy(); 3 int daq_configure(); 4 int daq_unconfigure(); 5 int daq_start(); 6 int daq_run(); 7 int daq_stop(); 29
30 7 8 int daq_pause(); 9 int daq_resume(); int parse_params(::nvlist* list); 12 int reset_inport(); unsigned int read_inport(); 15 //int online_analyze(); 16 static const unsigned int RECV_BUFFER_SIZE = 4096; // 17 unsigned char m_data[recv_buffer_size]; // 18 BufferStatus m_in_status; 19 bool m_debug; InPort TinySink.cpp 1 check_header_footer(m_in_data, recv_byte_size); // check header and footer 2 unsigned int event_byte_size = get_event_size(recv_byte_size); 3 4 ///////////// Write component main logic here. ///////////// 5 // online_analyze(); 6 if (event_byte_size > RECV_BUFFER_SIZE) { // 7 fatal_error_report(user_defined_error1, "Length Too Large"); // 8 } // 9 memcpy(m_data, &m_in_data.data[header_byte_size], event_byte_size); // 10 for (unsigned int i = 0; i < event_byte_size; i++) { // 11 fprintf(stderr, "%02X ", m_data[i]); // 12 if ((i + 1) % 16 == 0) { // 13 fprintf(stderr, "\n"); // 14 } // 15 } // 16 ///////////////////////////////////////////////////////////// inc_sequence_num(); // increase sequence num. 19 inc_total_data_size(event_byte_size); // increase total data byte size memcpy() m_in_data.data[header_byte_size] event_byte_size memcpy() memcpy() (RECV_BUFFER_SIZE) fatal_error_report() DaqOperator 10 for % cd % cd MyDaq % cd TinySource % make % cd.. % cd TinySink % make % cd.. 30
31 7 /usr/share/daqmw/conf/tiny.xml Tiny execpath /usr/share/daqmw/conf/tiny.xml 1 <configinfo> 2 <daqoperator> 3 <hostaddr> </hostaddr> 4 </daqoperator> 5 <daqgroups> 6 <daqgroup gid="group0"> 7 <components> 8 <component cid="tinysource0"> 9 <hostaddr> </hostaddr> 10 <hostport>50000</hostport> 11 <instname>tinysource0.rtc</instname> 12 <execpath>/home/daq/mydaq/tinysource/tinysourcecomp</execpath> 13 <conffile>/tmp/daqmw/rtc.conf</conffile> 14 <startord>2</startord> 15 <inports> 16 </inports> 17 <outports> 18 <outport>tinysource_out</outport> 19 </outports> 20 <params> 21 </params> 22 </component> 23 <component cid="tinysink0"> 24 <hostaddr> </hostaddr> 25 <hostport>50000</hostport> 26 <instname>tinysink0.rtc</instname> 27 <execpath>/home/daq/mydaq/tinysink/tinysinkcomp</execpath> 28 <conffile>/tmp/daqmw/rtc.conf</conffile> 29 <startord>1</startord> 30 <inports> 31 <inport from="tinysource0:tinysource_out">tinysink_in</inport> 32 </inports> 33 <outports> 34 </outports> 35 <params> 36 </params> 37 </component> 38 </components> 39 </daqgroup> 40 </daqgroups> 41 </configinfo> TinySource OutPort 17 OutPorts OutPort TinySink InPort 30 InPorts InPort DAQ-Middleware [2] 31
32 7 % cd % cd MyDaq % ls tiny.xml (tiny.xml ) % cp /usr/share/daqmw/conf/tiny.xml. % run.py -c -l tiny.xml ( 5 2 ) (CONFIGURED Ctrl-C run.py ) run.py /tmp/daqmw/log. /tmp/daqmw/log.tinysinkcomp fprintf() DAQ Source Sink 32
33 9 Emulator SampleReader SampleMonitor Histogram 6 SampleReader Emulator SampleMonitor SampleMonitor 8 6 SampleReader Emulator SampleMonitor SampleMonitor Emulator DAQ-Middleware /usr/bin/daqmw-emulator *4 DAQ-Middleware URL /home/daq/mydaq/ % cd % cd MyDaq % lftpget % tar xf daqmw-emulator.tar.gz % ls daqmw-emulator *4 /usr/share/daqmw/daqmw-emulator/ 33
34 9 % cd daqmw-emulator % make % cp emulator ~/bin/daqmw-emulator 9.2 % daqmw-emulator kB/s -t % daqmw-emulator -t 128k 128kB/s -t 1M 1MB/s VMware Player Ctrl-C ( ) 0x5a (0x01) 0x0 0x7 1 4 ( ) ntohl() 9.4 nc 1 34
35 10 SAMPLEREADER Signature (Magic) Data Format Version Module Number Reserved Event Data x5a 0x01 0x01 0x07 *5 (sleep 10; pkill -f /usr/bin/nc) & /usr/bin/nc > data.out nc data.out sleep 10 ( int ntohl() ) SampleReader SampleReader SampleMonitor /usr/share/daqmw/ examples/ SampleReader SampleMonitor newcomp diff *5 pkill nc nc nc exit nc 35
36 10 SAMPLEREADER SampleHisto 1400 SampleHistogram Entries Mean RMS % mkdir diff-test % cd diff-test % newcomp -t source SampleReader % ls SampleReader % newcomp -t sink SampleMonitor % ls SampleMonitor SampleReader % mv SampleReader SK-SampleReader % mv SampleMonitor SK-SampleMonitor % cp -r /usr/share/daqmw/examples/samplereader. % cp -r /usr/share/daqmw/examples/samplemonitor. % diff -urnp SK-SampleReader SampleReader less % diff -urnp SK-SampleMonitor SampleMonitor less -85,6 int SampleReader::daq_configure() ( ) 8 DAQ SampleReader 36
37 10 SAMPLEREADER SampleReader DAQ-Middleware Sock IP daq run() daq run() DAQ-Middleware Sock /usr/include/daqmw/ Sock.h /usr/lib/daqmw/libsock.so newcomp -t source SampleReader Source ( SampleReader) make 1 % newcomp -t source SampleReader ( ) 2 % cd SampleReader (SampleReader ) 3 % ls ( ) 4 Makefile SampleReader.cpp SampleReader.h SampleReaderComp.cpp 5 % make ( ) 6 rm -fr autogen ( SampleReaderComp 7 mkdir autogen ) 8 ( ) 9 % ls ( ) 10 Makefile SampleReader.h SampleReaderComp* SampleReaderComp.o 11 SampleReader.cpp SampleReader.o SampleReaderComp.cpp autogen/ 12 % make clean ( 13 (autogen 14 ) ) 15 % ls 16 Makefile SampleReader.cpp SampleReader.h SampleReaderComp.cpp 10.1 SampleReader.h SampleReader.h Sock Sock 37
38 10 SAMPLEREADER 1 #include "DaqComponentBase.h" 2 3 #include <daqmw/sock.h> // 4 5 using namespace RTC; 4 #include DAQ-Middleware Sock int set_data(unsigned int data_byte_size); 2 int write_outport(); 3 4 DAQMW::Sock* m_sock; /// socket for data server 5 6 static const int EVENT_BYTE_SIZE = 8; // event byte size 7 static const int SEND_BUFFER_SIZE = 1024; // 8 unsigned char m_data[send_buffer_size]; 9 unsigned int m_recv_byte_size; // BufferStatus m_out_status; int m_srcport; // Port No. of data server 14 std::string m_srcaddr; // IP addr. of data server (4 ) Sock (6 ) 1 8 (7 ) (13 ) IP (14 ) IP IP 9 m_recv_byte_size daq run() daq run() daq run()
39 10 SAMPLEREADER 10.2 SampleReader.cpp SampleReader.cpp ( 3) 1 SampleReader::SampleReader(RTC::Manager* manager) 2 : DAQMW::DaqComponentBase(manager), 3 m_outport("samplereader_out", m_out_data), 4 m_sock(0), // 5 m_recv_byte_size(0), 6 m_out_status(buf_success), 7 8 m_debug(false) 9 { 10 // Registration: InPort/OutPort/Service // Set OutPort buffers 13 registeroutport("samplereader_out", m_outport); init_command_port(); 16 init_state_table(); 17 set_comp_name("samplereader"); 18 } (m sock) 0 0 delete daq_stop() fatal type 1 using DAQMW::FatalType::DATAPATH_DISCONNECTED; 2 using DAQMW::FatalType::OUTPORT_ERROR; 3 using DAQMW::FatalType::USER_DEFINED_ERROR1; 4 using DAQMW::FatalType::USER_DEFINED_ERROR2; using fatal_error_report() fatal_error_report() DAQ-Middleware [2] daq configure() 1 int SampleReader::daq_configure() 2 { 3 std::cerr << "*** SampleReader::configure" << std::endl; 4 5 ::NVList* paramlist; 6 paramlist = m_daq_service0.getcompparams(); 7 parse_params(paramlist); 39
40 10 SAMPLEREADER 8 9 return 0; 10 } newcomp -t source SampleReader daq_configure() 6 getcompparams() parse_params() parse_params() parse_params() m srcaddr m srcport 1 int SampleReader::parse_params(::NVList* list) 2 { 3 bool srcaddrspecified = false; // 4 bool srcportspecified = false; // 5 6 std::cerr << "param list length:" << (*list).length() << std::endl; 7 8 int len = (*list).length(); 9 for (int i = 0; i < len; i+=2) { 10 std::string sname = (std::string)(*list)[i].value; 11 std::string svalue = (std::string)(*list)[i+1].value; std::cerr << "sname: " << sname << " "; 14 std::cerr << "value: " << svalue << std::endl; // (m_srcaddr m_srcport ) 17 if ( sname == "srcaddr" ) { 18 srcaddrspecified = true; 19 if (m_debug) { 20 std::cerr << "source addr: " << svalue << std::endl; 21 } 22 m_srcaddr = svalue; 23 } 24 if ( sname == "srcport" ) { 25 srcportspecified = true; 26 if (m_debug) { 27 std::cerr << "source port: " << svalue << std::endl; 28 } 29 char* offset; 30 m_srcport = (int)strtol(svalue.c_str(), &offset, 10); 31 } } 34 // (srcaddr srcport 35 // ) 36 if (!srcaddrspecified) { 37 std::cerr << "### ERROR:data source address not specified\n"; 38 fatal_error_report(user_defined_error1, "NO SRC ADDRESS"); 39 } 40 if (!srcportspecified) { 41 std::cerr << "### ERROR:data source port not specified\n"; 42 fatal_error_report(user_defined_error2, "NO SRC PORT"); 43 } 44 40
41 10 SAMPLEREADER 45 return 0; 46 } bool (3 4 ) m srcaddr m srcport list 17 strtol() 36 m_srcaddr m_srcport fatal_error_report() DaqOperator daq_configure() daq start() 1 int SampleReader::daq_start() 2 { 3 std::cerr << "*** SampleReader::start" << std::endl; 4 5 m_out_status = BUF_SUCCESS; 6 7 // 8 try { 9 // Create socket and connect to data server. 10 m_sock = new DAQMW::Sock(); 11 m_sock->connect(m_srcaddr, m_srcport); 12 } catch (DAQMW::SockException& e) { 13 std::cerr << "Sock Fatal Error : " << e.what() << std::endl; 14 fatal_error_report(user_defined_error1, "SOCKET FATAL ERROR"); 15 } catch (...) { 16 std::cerr << "Sock Fatal Error : Unknown" << std::endl; 17 fatal_error_report(user_defined_error1, "SOCKET FATAL ERROR"); 18 } // Check data port connections 21 bool outport_conn = check_dataport_connections( m_outport ); 22 if (!outport_conn) { 23 std::cerr << "### NO Connection" << std::endl; 24 fatal_error_report(datapath_disconnected); 25 } return 0; 28 } 9 Sock (10 ) m_srcaddr m_srcport ( ) (12 ) check_dataport_connection() (21 41
42 10 SAMPLEREADER ) daq run() 1 int SampleReader::daq_run() 2 { 3 if (m_debug) { 4 std::cerr << "*** SampleReader::run" << std::endl; 5 } 6 7 if (check_trans_lock()) { // check if stop command has come 8 set_trans_unlock(); // transit to CONFIGURED state 9 return 0; 10 } if (m_out_status == BUF_SUCCESS) { // previous OutPort.write() successfully done 13 int ret = read_data_from_detectors(); 14 if (ret > 0) { 15 m_recv_byte_size = ret; 16 unsigned long sequence_num = get_sequence_num(); 17 set_data(m_recv_byte_size); // set data to OutPort Buffer 18 } 19 } if (write_outport() < 0) { 22 ; // Timeout. do nothing. 23 } 24 else { // OutPort write successfully done 25 inc_sequence_num(); // increase sequence num. 26 inc_total_data_size(m_recv_byte_size); // increase total data byte size 27 } return 0; 30 } daq_run() newcomp (7 10 ) stop stop check_trans_lock() true set_trans_lock() CONFIGURED daq_run() stop ( daq run() ) check_trans_lock() set_trans_lock() DAQ-Middleware [2] (12 19 ) if daq_run() (m_out_status BUF_SUCCESS ) daq_run() SampleReader.h 42
43 10 SAMPLEREADER m_data read_data_from_detector() read_data_from_detector() ( read_data_from_detector() ) set_data() OutPort (20 ) write_outport() inc_sequence_num() 1 inc_total_data_size() inc_sequence_num() inc_total_data_size() DAQ-Middleware [2] read data from datectors() 1 int SampleReader::read_data_from_detectors() 2 { 3 int received_data_size = 0; 4 5 /// write your logic here 6 /// read 1024 byte data from data server 7 int status = m_sock->readall(m_data, SEND_BUFFER_SIZE); 8 if (status == DAQMW::Sock::ERROR_FATAL) { 9 std::cerr << "### ERROR: m_sock->readall" << std::endl; 10 fatal_error_report(user_defined_error1, "SOCKET FATAL ERROR"); 11 } 12 else if (status == DAQMW::Sock::ERROR_TIMEOUT) { 13 std::cerr << "### Timeout: m_sock->readall" << std::endl; 14 fatal_error_report(user_defined_error2, "SOCKET TIMEOUT"); 15 } 16 else { 17 received_data_size = SEND_BUFFER_SIZE; 18 } return received_data_size; 21 } read_data_from_detectors() m_data (Sock 2 ) 43
44 10 SAMPLEREADER ( ) DAQ-Middleware Sock readall() readall() 2 readall() DAQMW::Sock::ERROR_FATAL ( 2 ) DAQMW::Sock::ERROR_TIMEOUT 7 readall() 8 18 read data from detectors() (20 ) set data() 1 int SampleReader::set_data(unsigned int data_byte_size) 2 { 3 unsigned char header[8]; 4 unsigned char footer[8]; 5 6 set_header(&header[0], data_byte_size); 7 set_footer(&footer[0]); 8 9 ///set OutPort buffer length 10 m_out_data.data.length(data_byte_size + HEADER_BYTE_SIZE + FOOTER_BYTE_SIZE); 11 memcpy(&(m_out_data.data[0]), &header[0], HEADER_BYTE_SIZE); 12 memcpy(&(m_out_data.data[header_byte_size]), &m_data[0], data_byte_size); 13 memcpy(&(m_out_data.data[header_byte_size + data_byte_size]), &footer[0], 14 FOOTER_BYTE_SIZE); return 0; 17 } set_data() newcomp set_data() *6 header footer set_header() *6 4 5 DataByteSize sequence number check_header_footer() 44
45 10 SAMPLEREADER DataByteSize set_footer() sequence number sequence number m_loop set_footer() footer 10 m_out_data.data.length() OutPort m_out_data.data memcpy() (11 14 ) write OutPort() 1 int SampleReader::write_OutPort() 2 { 3 ////////////////// send data from OutPort ////////////////// 4 bool ret = m_outport.write(); 5 6 //////////////////// check write status ///////////////////// 7 if (ret == false) { // TIMEOUT or FATAL 8 m_out_status = check_outport_status(m_outport); 9 if (m_out_status == BUF_FATAL) { // Fatal error 10 fatal_error_report(outport_error); 11 } 12 if (m_out_status == BUF_TIMEOUT) { // Timeout 13 return -1; 14 } 15 } 16 m_out_status = BUF_SUCCESS; 17 return 0; // successfully done 18 } m_outport write() set_data() m_out_data.data false check_outport_status(m_outport) fatal_error_report() DaqOperator -1 write() m_out_status BUF_SUCCESS daq stop() 1 int SampleReader::daq_stop() 2 { 3 std::cerr << "*** SampleReader::stop" << std::endl; 4 5 if (m_sock) { // 6 m_sock->disconnect(); // 7 delete m_sock; // 8 m_sock = 0; // 9 } // return 0; 12 } 45
46 11 SAMPLEMONITOR Sock disconnect() daq_stop() m_sock *7 (SampleReader ) daq pause() daq resume() daq_pause() daq_resume() 10.3 Makefile SampleReader Sock Makefile Makefile SRCS += $(COMP_NAME).cpp SRCS += $(COMP_NAME)Comp.cpp # LDLIBS += -L/usr/lib/daqmw -lsock Sock /usr/include/daqmw/sock.h CPPFLAGS -I/usr/include/daqmw Makefile include /usr/share/ daqmw/comp.mk ROOT /usr/local/root/include /usr/include/daqmw Makefile ( SampleMonitor ) make 11 SampleMonitor SampleReader SampleMonitor ROOT *8 SampleReader newcomp Sink -t sink % cd ( ) % mkdir MyDaq ( ) *7 SiTCP slow control daq_start() slow control fatal_error_report() *8 46
47 11 SAMPLEMONITOR % cd MyDaq % newcomp -t sink SampleMonitor (-t sink newcomp ) % cd SampleMonitor % ls ( ) Makefile SampleMonitor.cpp SampleMonitor.h SampleMonitorComp.cpp % make (make OK ) rm -fr autogen mkdir autogen ( ) % ls Makefile SampleMonitor.h SampleMonitorComp* SampleMonitorComp.o SampleMonitor.cpp SampleMonitor.o SampleMonitorComp.cpp autogen % make clean ROOT SampleMonitor daq_run() get_sequence_num() 11.1 SampleData.h *9 SampleData.h #ifndef SAMPLEDATA_H #define SAMPLEDATA_H const int ONE_EVENT_SIZE = 8; struct sampledata { unsigned char magic; unsigned char format_ver; *9 (2 ) 47
48 11 SAMPLEMONITOR unsigned char module_num; unsigned char reserved; unsigned int data; }; #endif 11.2 SampleMonitor.h SampleMonitor.h 1 #include <arpa/inet.h> // for ntohl() 2 3 ////////// ROOT Include files ////////// 4 #include "TH1.h" // 5 #include "TCanvas.h" // 6 #include "TStyle.h" // 7 #include "TApplication.h" // 8 9 #include "SampleData.h" // 1 <arpa/inet.h> ntol() 3 7 ROOT 9 SampleData.h 1 int decode_data(const unsigned char* mydata); // 2 int fill_data(const unsigned char* mydata, const int size); // 3 4 BufferStatus m_in_status; 5 6 ////////// ROOT Histogram ////////// 7 TCanvas *m_canvas; // 8 TH1F *m_hist; // 9 int m_bin; // 10 double m_min; // 11 double m_max; // 12 int m_monitor_update_rate; // 13 unsigned char m_recv_data[4096]; // 14 unsigned int m_event_byte_size; // 15 struct sampledata m_sampledata; // 1 decode_data() 2 fill_data() ROOT m_canvas daq_run() 48
49 11 SAMPLEMONITOR 12 m_monitor_update_rate daq_run() 13 m_recv_data 14 m_event_byte_size 1 * m_sampledata 11.3 SampleMonitor.cpp 1 SampleMonitor::SampleMonitor(RTC::Manager* manager) 2 : DAQMW::DaqComponentBase(manager), 3 m_inport("samplemonitor_in", m_in_data), 4 m_in_status(buf_success), 5 m_canvas(0), // 6 m_hist(0), // 7 m_bin(0), // 8 m_min(0), // 9 m_max(0), // 10 m_monitor_update_rate(30), // 11 m_event_byte_size(0), // 12 m_debug(false) daq dummy() 1 int SampleMonitor::daq_dummy() 2 { 3 if (m_canvas) { // 4 m_canvas->update(); // 5 // daq_dummy() will be invoked again after 10 msec. 6 // This sleep reduces X servers load. 7 sleep(1); // 8 } // 9 10 return 0; 11 } CONFIGURED (stop ) ROOT window ROOT canvas CONFIGURED *10 SampleReader
50 11 SAMPLEMONITOR daq unconfigure() 1 int SampleMonitor::daq_unconfigure() 2 { 3 std::cerr << "*** SampleMonitor::unconfigure" << std::endl; 4 if (m_canvas) { // 5 delete m_canvas; // 6 m_canvas = 0; // 7 } // 8 9 if (m_hist) { // 10 delete m_hist; // 11 m_hist = 0; // 12 } // 13 return 0; 14 } canvas delete daq start() 1 //////////////// CANVAS FOR HISTOS /////////////////// 2 if (m_canvas) { // 3 delete m_canvas; // 4 m_canvas = 0; // 5 } // 6 m_canvas = new TCanvas("c1", "histos", 0, 0, 600, 400); // 7 8 //////////////// HISTOS /////////////////// 9 if (m_hist) { // 10 delete m_hist; // 11 m_hist = 0; // 12 } // int m_hist_bin = 100; // 15 double m_hist_min = 0.0; // 16 double m_hist_max = ; // gstyle->setstatw(0.4); // 19 gstyle->setstath(0.2); // 20 gstyle->setoptstat("em"); // m_hist = new TH1F("hist", "hist", m_hist_bin, m_hist_min, m_hist_max); // 23 m_hist->getxaxis()->setndivisions(5); // 24 m_hist->getyaxis()->setndivisions(4); // 25 m_hist->getxaxis()->setlabelsize(0.07); // 26 m_hist->getyaxis()->setlabelsize(0.06); // m_canvas m_hist m_canvas m_hist stop start 50
51 11 SAMPLEMONITOR delete 0 new * ROOT ROOT daq run() 1 int SampleMonitor::daq_run() 2 { 3 if (m_debug) { 4 std::cerr << "*** SampleMonitor::run" << std::endl; 5 } 6 7 unsigned int recv_byte_size = read_inport(); 8 if (recv_byte_size == 0) { // Timeout 9 return 0; 10 } check_header_footer(m_in_data, recv_byte_size); // check header and footer 13 m_event_byte_size = get_event_size(recv_byte_size); // ///////////// Write component main logic here. ///////////// 16 memcpy(&m_recv_data[0], &m_in_data.data[header_byte_size], m_event_byte_size); // fill_data(&m_recv_data[0], m_event_byte_size); // if (m_monitor_update_rate == 0) { // 21 m_monitor_update_rate = 1000; // 22 } // unsigned long sequence_num = get_sequence_num(); // 25 if ((sequence_num % m_monitor_update_rate) == 0) { // 26 m_hist->draw(); // 27 m_canvas->update(); // 28 } // 29 ///////////////////////////////////////////////////////////// 30 inc_sequence_num(); // increase sequence num. 31 inc_total_data_size(m_event_byte_size); // increase total data byte size return 0; 34 } (7 10 ) read_inport() Inport ( m_in_data.data ) read_inport() timeout 0 read_inport() newcomp -t sink *11 daq_stop() delete 0 51
52 11 SAMPLEMONITOR (12 ) check_header_footer() check_header_footer() fatal_error_report() DaqOperator (13 ) get_event_size() (16 ) read_inport() m_in_data.data memcpy() (18 ) fill fill_data() fill_data() (20 28 ) daq_run() 24 get_sequence_num() 25 m_monitor_update_rate 20 if 0 (29 30 ) get_sequence_num() inc_total_data_size() DAQ-Middleware [2] read InPort 1 unsigned int SampleMonitor::read_InPort() 2 { 3 /////////////// read data from InPort Buffer /////////////// 4 unsigned int recv_byte_size = 0; 5 bool ret = m_inport.read(); 6 7 //////////////////// check read status ///////////////////// 8 if (ret == false) { // false: TIMEOUT or FATAL 9 m_in_status = check_inport_status(m_inport); 10 if (m_in_status == BUF_TIMEOUT) { // Buffer empty. 11 if (check_trans_lock()) { // Check if stop command has come. 12 set_trans_unlock(); // Transit to CONFIGURE state. 13 } 14 } 15 else if (m_in_status == BUF_FATAL) { // Fatal error 16 fatal_error_report(inport_error); 17 } 18 } 19 else { 20 recv_byte_size = m_in_data.data.length(); 21 } if (m_debug) { 24 std::cerr << "m_in_data.data.length():" << recv_byte_size 25 << std::endl; 26 } 27 52
53 11 SAMPLEMONITOR 28 return recv_byte_size; 29 } InPort newcomp -t sink (5 ) read() InPort m_in_data.data read() (8 14 ) read() false check_inport_status() InPort BUF_TIMEOUT check_trans_lock() STOP STOP CONFIGURE (15 17 ) check_inport_status() BUF_FATAL fatal_error_report() DaqOperator fatal_error_report() (19 21 ) read() true m_in_data.data.length() ( ) (28 ) 0 fill data() 1 // 2 int SampleMonitor::fill_data(const unsigned char* mydata, const int size) 3 { 4 for (int i = 0; i < size/(int)one_event_size; i++) { 5 decode_data(mydata); 6 float fdata = m_sampledata.data/1000.0; // 1000 times value is received 7 m_hist->fill(fdata); 8 9 mydata+=one_event_size; 10 } 11 return 0; 12 } fill 1 ( ONE_EVENT_SIZE = 8 ) * 12 ROOT Fill() *12 53
54 11 SAMPLEMONITOR decode data() 1 int SampleMonitor::decode_data(const unsigned char* mydata) // 2 { 3 m_sampledata.magic = mydata[0]; 4 m_sampledata.format_ver = mydata[1]; 5 m_sampledata.module_num = mydata[2]; 6 m_sampledata.reserved = mydata[3]; 7 unsigned int netdata = *(unsigned int*)&mydata[4]; 8 m_sampledata.data = ntohl(netdata); 9 10 if (m_debug) { 11 std::cerr << "magic: " << std::hex << (int)m_sampledata.magic << std::endl; 12 std::cerr << "format_ver: " << std::hex << (int)m_sampledata.format_ver << std::endl; 13 std::cerr << "module_num: " << std::hex << (int)m_sampledata.module_num << std::endl; 14 std::cerr << "reserved: " << std::hex << (int)m_sampledata.reserved << std::endl; 15 std::cerr << "data: " << std::dec << (int)m_sampledata.data << std::endl; 16 } return 0; 19 } decode_data m_sampledata daq stop() 1 int SampleMonitor::daq_stop() 2 { 3 std::cerr << "*** SampleMonitor::stop" << std::endl; 4 5 m_hist->draw(); // 6 m_canvas->update(); // 7 8 reset_inport(); 9 10 return 0; 11 } 5 6 daq stop stop Entries DaqOpertor 8(1 ) 11.4 SampleMonitorComp.cpp SampleReader main() SampleReaderComp.cpp SampleMonitor ROOT main() TApplication SampleMonitorComp.cpp 54
55 12 1 int main (int argc, char** argv) 2 { 3 RTC::Manager* manager; 4 manager = RTC::Manager::init(argc, argv); 5 6 // for root application 7 TApplication theapp("app", &argc, argv); // 8 9 // Initialize manager 10 manager->init(argc, argv); 11.5 Makefile ROOT Makefile Makefile ifndef ROOTSYS $(error This program requires ROOTSYS environment variable\ but does not defined. Please define ROOTSYS as follows at\ shell prompt: "export ROOTSYS=/usr/local/root". If you don t install\ ROOT in /usr/local/root, please substiture your ROOT root directory) endif CPPFLAGS LDLIBS ROOT root-config ROOTSYS CPPFLAGS LDLIBS CPPFLAGS += -I$(shell ${ROOTSYS}/bin/root-config --incdir) LDLIBS += $(shell ${ROOTSYS}/bin/root-config --glibs) root-config --glibs LDLIBS -L -L root-config --incdir -I make SampleMonitorComp 12 5 /home/daq/mydaq /home/daq/mydaq/samplereader 55
56 12 /home/daq/mydaq/samplemonitor DAQ-Middleware [2] DAQ-Middleware DAQ DaqOperator DaqOperator xinetd DAQ-Middleware /usr/bin/run.py DAQ-Middleware XML DAQ DAQ-Middleware [2] /usr/share/daqmw/ conf/sample.xml % cd % pwd /home/daq/mydaq % cp /usr/share/daqmw/conf/sample.xml. 2 execpath /usr/share/daqmw/conf/sample.xml 1 <configinfo> 2 <daqoperator> 3 <hostaddr> </hostaddr> 4 </daqoperator> 5 <daqgroups> 6 <daqgroup gid="group0"> 7 <components> 8 <component cid="samplereader0"> 9 <hostaddr> </hostaddr> 10 <hostport>50000</hostport> 11 <instname>samplereader0.rtc</instname> 12 <execpath>/home/daq/mydaq/samplereader/samplereadercomp</execpath> 13 <conffile>/tmp/daqmw/rtc.conf</conffile> 14 <startord>2</startord> 15 <inports> 16 </inports> 17 <outports> 18 <outport>samplereader_out</outport> 19 </outports> 20 <params> 21 <param pid="srcaddr"> </param> 22 <param pid="srcport">2222</param> 23 </params> 24 </component> 25 <component cid="samplemonitor0"> 56
57 12 26 <hostaddr> </hostaddr> 27 <hostport>50000</hostport> 28 <instname>samplemonitor0.rtc</instname> 29 <execpath>/home/daq/mydaq/samplemonitor/samplemonitorcomp</execpath> 30 <conffile>/tmp/daqmw/rtc.conf</conffile> 31 <startord>1</startord> 32 <inports> 33 <inport from="samplereader0:samplereader_out">samplemonitor_in</inport> 34 </inports> 35 <outports> 36 </outports> 37 <params> 38 </params> 39 </component> 40 </components> 41 </daqgroup> 42 </daqgroups> 43 </configinfo> SampleReader OutPort 17 OutPorts SampleReader IP 20 params SampleReader (SampleReader.cpp) parse_params() SampleMonitor InPort 32 InPorts DAQ-Middleware [2] % daqmw-emulator run.py % cd /home/daq/mydaq % ls SampleReader SampleMonitor emulator sample.xml % run.py -c -l sample.xml run.py -c DaqOperator DaqOperator ( DaqOperator ) run.py -l sample.xml run.py ( CPU 4 ) DaqOperator DaqOperator 1 Command: 57
58 12 start DaqOperator run.py 3 UNCONFIGURED Command: 0:configure 1:start 2:stop 3:unconfigure 4:pause 5:resume RUN NO: 0 start at: stop at: GROUP:COMP_NAME EVENT SIZE STATE COMP STATUS group0:samplereader0: 0 LOADED WORKING group0:samplemonitor0: 0 LOADED WORKING 0 CONFIGURED Command: 0:configure 1:start 2:stop 3:unconfigure 4:pause 5:resume RUN NO: 0 start at: stop at: GROUP:COMP_NAME EVENT SIZE STATE COMP STATUS group0:samplereader0: 0 CONFIGURED WORKING group0:samplemonitor0: 0 CONFIGURED WORKING 1 1 DaqComponent SampleReader SampleMonitor start DaqOperator m_monitor_update_rate (30) 4 2 STOP 9 2 stop Ctrl-C DaqOperator SIGINT DaqOperator DaqOperator run.py SIGINT (run.py DaqOperator ) exit DaqOperator Ctrl-C ### ERROR: : cannot connect ### ERROR: : cannot connect DaqOperator m_monitor_update_rate SampleMonitor.cpp 1 SampleMonitor::SampleMonitor(RTC::Manager* manager) 2 : DAQMW::DaqComponentBase(manager), 3 m_inport("samplemonitor_in", m_in_data), 58
59 m_in_status(buf_success), 5 m_canvas(0), // 6 m_hist(0), // 7 m_bin(0), // 8 m_min(0), // 9 m_max(0), // 10 m_monitor_update_rate(30), // 11 m_event_byte_size(0), // 12 m_debug(false) m_monitor_update_date() ( ) DAQ-Middleware Condition 59
60 13 CONDITION 13 Condition DAQ-Middleware Condition SampleMonitor Condition Condition Condition [3] class daq_start() /usr/share/daqmw/examples/conditionsamplemonitor /usr/share/daqmw/examples/samplemonitor % cd /usr/share/daqmw/examples % diff -uprn SampleMonitor ConditionSampleMonitor condition.xml /usr/share/ daqmw/conf/condition.xml SampleMonitor Condition % cd % cd MyDaq % cp -r SampleMonitor ConditionSampleMonitor % cd ConditionSampleMonitor ConditionSampleMonitor.h ConditionSampleMonitor.cpp ConditionSampleMonitor DAQ Condition JsonSpirit boost regex Makefile JsonSpirit boost regex ConditionSampleMonitor.cpp SRCS 60
61 13 CONDITION 2 SRCS += ConditionSampleMonitor.cpp ConditionSampleMonitor.o: ConditionSampleMonitor.h ConditionSampleMonitor.cpp LDLIBS += -L/usr/lib/daqmw -ljsonspirit -lboost_regex ConditionSampleMonitor.h monitorparam 1 #ifndef _CONDITION_SAMPLEMONITOR_H 2 #define _CONDITION_SAMPLEMONITOR_H #include <string> 5 #include "Condition.h" 6 7 struct monitorparam { 8 unsigned int hist_bin; 9 unsigned int hist_min; 10 unsigned int hist_max; 11 unsigned int monitor_update_rate; 12 }; typedef struct monitorparam monitorparam; class ConditionSampleMonitor : public Condition { 17 public: 18 ConditionSampleMonitor(); 19 virtual ~ConditionSampleMonitor(); 20 bool initialize(std::string filename); 21 bool getparam(std::string prefix, monitorparam* monitorparam); 22 private: 23 Json2ConList m_json2conlist; 24 conlist m_conlistsamplemonitor; 25 }; #endif condition.json monitorparam ConditionSampleMonitor.cpp 1 #include "ConditionSampleMonitor.h" 2 3 ConditionSampleMonitor::ConditionSampleMonitor() {} 4 ConditionSampleMonitor::~ConditionSampleMonitor() {} 5 6 bool 7 ConditionSampleMonitor::getParam(std::string prefix, monitorparam* monitorparam) 8 { 9 setprefix(prefix); 10 unsigned int hist_bin; 11 unsigned int hist_min; 12 unsigned int hist_max; 13 unsigned int monitor_update_rate; if (find("hist_bin", &hist_bin)) { 16 monitorparam->hist_bin = hist_bin; 61
62 13 CONDITION 17 } 18 else { 19 std::cerr << prefix + " hist_bin not fould" << std::endl; 20 return false; 21 } if (find("hist_min", &hist_min)) { 24 monitorparam->hist_min = hist_min; 25 } 26 else { 27 std::cerr << prefix + " hist_min not fould" << std::endl; 28 return false; 29 } if (find("hist_max", &hist_max)) { 32 monitorparam->hist_max = hist_max; 33 } 34 else { 35 std::cerr << prefix + " hist_max not fould" << std::endl; 36 return false; 37 } if (find("monitor_update_rate", &monitor_update_rate)) { 40 monitorparam->monitor_update_rate = monitor_update_rate; 41 } 42 else { 43 std::cerr << prefix + " monitor_update_rate not fould" << std::endl; 44 return false; 45 } return true; 48 } bool ConditionSampleMonitor::initialize(std::string filename) 51 { 52 if (m_json2conlist.makeconlist(filename, &m_conlistsamplemonitor) == false) { 53 std::cerr << "### ERROR: Fail to read the Condition file " 54 << filename << std::endl; 55 } 56 init(&m_conlistsamplemonitor); 57 return true; 58 } ConditionSampleMonitor SampleMonitor Condition Condition CONDITION_FILE m_monitorparam SampleMonitor.h : ////////// ROOT Histogram ////////// TCanvas *m_canvas; TH1F *m_hist; unsigned char m_recv_data[4096]; unsigned int m_event_byte_size; struct sampledata m_sampledata; ///////// Condition database //////// static const std::string CONDITION_FILE; // 62
63 13 CONDITION monitorparam m_monitorparam; // }; bool m_debug; SampleMonitor.cpp CONDITION_FILE static const char* samplemonitor_spec[] = { "implementation_id", "SampleMonitor", "type_name", "SampleMonitor", "description", "SampleMonitor component", "version", "1.0", "vendor", "Kazuo Nakayoshi, KEK", "category", "example", "activity_type", "DataFlowComponent", "max_instance", "1", "language", "C++", "lang_type", "compile", "" }; const std::string SampleMonitor::CONDITION_FILE = "./condition.json"; // DAQ conditionsamplemonitor.h SampleMonitor.cpp #include "SampleMonitor.h" #include "ConditionSampleMonitor.h" // SampleMonitor.cpp set_condition() ConditionSampleMonitor daq_start() set_condition() // int set_condition(std::string condition_file, monitorparam *monitorparam) { ConditionSampleMonitor conditionsamplemonitor; conditionsamplemonitor.initialize(condition_file); if (conditionsamplemonitor.getparam("common_samplemonitor_", monitorparam)) { std::cerr << "condition OK" << std::endl; } else { throw "SampleMonitor condition error"; } } return 0; int SampleMonitor::daq_start() { std::cerr << "*** SampleMonitor::start" << std::endl; 63
64 13 CONDITION m_in_status = BUF_SUCCESS; try { // set_condition(condition_file, &m_monitorparam); // } // catch (std::string error_message) { // std::cerr << error_message << std::endl; // fatal_error_report(user_defined_error1, "Condition error"); // } // catch (...) { // std::cerr << "unknown error" << std::endl; // fatal_error_report(user_defined_error1, "Unknown error"); // } // TH1F() m_hist = new TH1F("hist", "hist", m_monitorparam.hist_bin, // m_monitorparam.hist_min, // m_monitorparam.hist_max); // unsigned long sequence_num = get_sequence_num(); if ((sequence_num % m_monitorparam.monitor_update_rate) == 0) { // m_hist->draw(); m_canvas->update(); } SampleMonitor m_hist_bin SampleMonitor::SampleMonitor(RTC::Manager* manager) : DAQMW::DaqComponentBase(manager), m_inport("samplemonitor_in", m_in_data), m_in_status(buf_success), m_canvas(0), m_hist(0), // m_hist_bin, m_hist_min, m_hist_max, m_monitor_update_rate m_event_byte_size(0), m_debug(false) 13.1 Condition condition.xml /usr/share/daqmw/conf/ condition.xml /home/daq/mydaq % cd /home/daq/mydaq % cp /usr/share/daqmw/conf/condition.xml. 64
65 13 CONDITION xml JSON condition.json JSON condition_xml2json % condition_xml2json condition.xml condition.json * 13 Condition run.py -c -l sample.xml ( SampleMonitor ConditionSampleMonitor sample.xml execpath sample.xml <component cid="samplemonitor0"> <hostaddr> </hostaddr> <hostport>50000</hostport> <instname>samplemonitor0.rtc</instname> <!-- execpath changed --> <execpath>/home/daq/mydaq/conditionsamplemonitor/samplemonitorcomp</execpath> <!-- execpath changed ^^^^^^^^^^^^^^^^^^^^^^^^ --> <conffile>/tmp/daqmw/rtc.conf</conffile> <startord>1</startord> <inports> <inport from="samplereader0:samplereader_out">samplemonitor_in</inport> </inports> <outports> </outports> <params> </params> </component> run.py -c -l sample.xml * 14 condition.xml condition.xml condition_xml2json condition.xml condition.json Condition Condition 10 DaqOperator Entries *13 Xalan xalan *14 sample.xml sample.xml conditionsample.xml execpath run.py -c -l conditionsample.xml 65
66 13 CONDITION 10 Condition Entries 66
67 14 WEBUI 14 WebUI DaqOperator DaqOperator DAQ-Middleware WebUI DAQ-Middleware Web firefox DAQ- Middleware IE firefox, chrome, safari IE 11 XML Response from DaqOperator XML DaqOperator XML ( ) 14.1 WebUI Scientific Linux 5.x mod python Linux distribution(scientific Linux 6.x ) mod wsgi % rpm -q mod_python rpm -q mod_wsgi package mod python is not installed % su ( ) # yum install mod_python yum install mod_wsgi mod python mod wsgi httpd httpd # service httpd restart httpd Stopping httpd: [FAILED] Starting httpd: [OK] OK httpd # chkconfig httpd on SELinux WebUI SELinux F.7 67
68 14 WEBUI c run.py -l 1 [daq@localhost MyDaq]$ run.py -l sample.xml 2 Use config file sample.xml 3 Use /usr/share/daqmw/conf/config.xsd for XML schema 4 Use /usr/libexec/daqmw/daqoperatorcomp for DAQ-Operator 5 Conf file validated: sample.xml 6 start new naming service... done 7 Local Comps booting... done 8 Now booting the DAQ-Operator... done 9 [daq@localhost MyDaq]$ pgrep 1 [daq@localhost MyDaq]$ pgrep -fl Comp /home/daq/mydaq/samplereader/samplereadercomp -f /tmp/daqmw/rtc.conf /home/daq/mydaq/samplemonitor/samplemonitorcomp -f /tmp/daqmw/rtc.conf /usr/libexec/daqmw/daqoperatorcomp -f./rtc.conf -h p x sample.xml 5 [daq@localhost MyDaq]$ ID (SampleReader SampleMonitor DaqOperator) Web ( System ) 11 Web Current Status Run Number DAQ DAQ status DaqOperator XML Run Number save runnumber DaqOperator DAQ state DAQ status State Status Configure Begin 12 End Begin End Unconfigure LOADED DAQ Status State LOADED 68
69 14 WEBUI 11 WebUI ( Emulator ) run.py -l sample.xml Web pkill pkill 15 pkill Comp SIGTERM -f pkill % pkill -f Comp 69
70 14 WEBUI 12 RUNNING 70
71 A DAQ-MIDDLEWARE A DAQ-Middleware DAQ-Middleware DAQ C C SiTCP Bus Control Protocol (BCP) C++ Condition JsonSpirit /usr/include/daqmw 32bit Scientific Linux (SL) /usr/lib/ daqmw 64bit SL /usr/lib64/daqmw OS /usr/lib/daqmw /usr/lib ld.so ld.so /usr/lib/daqmw (1) LD LIBRARY PATH LD_LIBRARY_PATH 32bit SL /usr/lib/daqmw 64bit SL /usr/lib64/daqmw xinetd LD_LIBRARY_PATH LD_LIBRARY_PATH xinetd (/etc/xinetd.d/ ) env (2) ld.so Scientific Linux /etc/ld.so.conf.d/ ld.so /etc/ld.so.conf.d/ daqmw.conf 32bit SL /usr/lib/daqmw 64bit SL /usr/lib64/daqmw root root# ldconfig 71
72 A DAQ-MIDDLEWARE ldconfig OS Linux /etc/ld.so.conf /etc/ld.so.conf.d/ DAQ-Middleware /etc/ld.so.conf.d/ LD_LIBRARY_PATH LD_LIBRARY_PATH ( xinetd env ) make install /etc/ld.so.conf.d/ daqmw.conf /usr/lib64/ /usr/lib64/daqmw /usr/lib/daqmw/ 72
73 B B Initial revision DAQ-Middleware DAQ-Middleware DAQ-Middleware 1.0.1(/usr/share/daqmw/docs/DAQ-Middleware-DevManual.pdf) DAQ-Middleware DAQ-Middleware bit DAQ-Middleware DAQ-Middleware WebUI Scientific Linux 5.x DAQ-Middleware
74 C RPM YUM C rpm yum [root@localhost ~]# rpm -ihv ( ) kek-daqmiddleware-repo-2-0.noarch.rpm ( ( ) ) Retrieving Preparing... ########################################### [100%] 1:kek-daqmiddleware-repo ########################################### [100%] [root@localhost ~]# yum --enablerepo=kek-daqmiddleware install DAQ-Middleware Loaded plugins: kernel-module kek-daqmiddleware 951 B 00:00 kek-daqmiddleware/primary 5.1 kb 00:00 kek-daqmiddleware 15/15 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package DAQ-Middleware.i386 0: el5 set to be updated --> Processing Dependency: OpenRTM-aist >= for package: DAQ-Middleware --> Processing Dependency: xerces-c-devel for package: DAQ-Middleware --> Processing Dependency: libomnidynamic4.so.0 for package: DAQ-Middleware --> Processing Dependency: libcoil.so.0 for package: DAQ-Middleware --> Processing Dependency: librtc so.0 for package: DAQ-Middleware --> Processing Dependency: xalan-c-devel for package: DAQ-Middleware --> Processing Dependency: libxerces-c.so.27 for package: DAQ-Middleware --> Processing Dependency: libomniorb4.so.0 for package: DAQ-Middleware --> Processing Dependency: libomnithread.so.3 for package: DAQ-Middleware --> Running transaction check ---> Package OpenRTM-aist.i386 0: el5 set to be updated --> Processing Dependency: omniorb-doc for package: OpenRTM-aist --> Processing Dependency: omniorb-bootscripts for package: OpenRTM-aist --> Processing Dependency: omniorb-utils for package: OpenRTM-aist --> Processing Dependency: omniorb-servers for package: OpenRTM-aist --> Processing Dependency: omniorb-devel for package: OpenRTM-aist ---> Package omniorb.i386 0: el5 set to be updated ---> Package xalan-c-devel.i386 0: el5 set to be updated --> Processing Dependency: xalan-c = el5 for package: xalan-c-devel --> Processing Dependency: libxalanmsg.so.110 for package: xalan-c-devel --> Processing Dependency: libxalan-c.so.110 for package: xalan-c-devel ---> Package xerces-c.i386 0: el5.rf set to be updated ---> Package xerces-c-devel.i386 0: el5.rf set to be updated --> Running transaction check ---> Package omniorb-bootscripts.i386 0: el5 set to be updated ---> Package omniorb-devel.i386 0: el5 set to be updated ---> Package omniorb-doc.i386 0: el5 set to be updated ---> Package omniorb-servers.i386 0: el5 set to be updated ---> Package omniorb-utils.i386 0: el5 set to be updated ---> Package xalan-c.i386 0: el5 set to be updated --> Finished Dependency Resolution Beginning Kernel Module Plugin Finished Kernel Module Plugin Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ 74
75 C RPM YUM Installing: DAQ-Middleware i el5 kek-daqmiddleware 1.0 M Installing for dependencies: OpenRTM-aist i el5 kek-daqmiddleware 6.6 M omniorb i el5 kek-daqmiddleware 6.4 M omniorb-bootscripts i el5 kek-daqmiddleware 6.1 k omniorb-devel i el5 kek-daqmiddleware 2.9 M omniorb-doc i el5 kek-daqmiddleware 986 k omniorb-servers i el5 kek-daqmiddleware 59 k omniorb-utils i el5 kek-daqmiddleware 37 k xalan-c i el5 kek-daqmiddleware 1.2 M xalan-c-devel i el5 kek-daqmiddleware 443 k xerces-c i el5.rf kek-daqmiddleware 1.6 M xerces-c-devel i el5.rf kek-daqmiddleware 649 k Transaction Summary ================================================================================ Install 12 Package(s) Upgrade 0 Package(s) Total download size: 22 M Is this ok [y/n]: y (y ) Downloading Packages: (1/12): omniorb-bootscripts el5.i386.rpm 6.1 kb 00:00 (2/12): omniorb-utils el5.i386.rpm 37 kb 00:00 (3/12): omniorb-servers el5.i386.rpm 59 kb 00:00 (4/12): xalan-c-devel el5.i386.rpm 443 kb 00:00 (5/12): xerces-c-devel el5.rf.i386.rpm 649 kb 00:00 (6/12): omniorb-doc el5.i386.rpm 986 kb 00:00 (7/12): DAQ-Middleware el5.i386.rpm 1.0 MB 00:00 (8/12): xalan-c el5.i386.rpm 1.2 MB 00:00 (9/12): xerces-c el5.rf.i386.rpm 1.6 MB 00:00 (10/12): omniorb-devel el5.i386.rpm 2.9 MB 00:00 (11/12): omniorb el5.i386.rpm 6.4 MB 00:00 (12/12): OpenRTM-aist el5.i386.rpm 6.6 MB 00: Total 10 MB/s 22 MB 00:02 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : omniorb 1/12 Installing : xerces-c 2/12 Installing : xerces-c-devel 3/12 Installing : omniorb-doc 4/12 Installing : omniorb-utils 5/12 Installing : omniorb-servers 6/12 Installing : xalan-c 7/12 Installing : omniorb-devel 8/12 Installing : xalan-c-devel 9/12 Installing : omniorb-bootscripts 10/12 Installing : OpenRTM-aist 11/12 Installing : DAQ-Middleware 12/12 Installed: DAQ-Middleware.i386 0: el5 Dependency Installed: OpenRTM-aist.i386 0: el5 omniorb.i386 0: el5 75
76 C RPM YUM omniorb-bootscripts.i386 0: el5 omniorb-doc.i386 0: el5 omniorb-utils.i386 0: el5 xalan-c-devel.i386 0: el5 xerces-c-devel.i386 0: el5.rf omniorb-devel.i386 0: el5 omniorb-servers.i386 0: el5 xalan-c.i386 0: el5 xerces-c.i386 0: el5.rf Complete! ~]# 76
77 D D Scientific Linux CentOS RedHat Enterprise Linux (5.x 6.x) RPM OS OS DAQ-Middleware DAQ-Middleware DAQ-Middleware OS omniorb (4.1.x) OpenRTM-aist xerces-c 2.x 3.x xalan-c 1.10 boost DAQ-Middleware OpenRTM-aist OpenRTM-aist omniorb DAQ-Middleware XML xerces-c XML json xalan-c boost boost omniorb omniidl omninames OS omninames omninames run.py omninames OS omninames RHEL root chkconfig omninames off xerces-c 2.x 3.x xalan-c xerces-c Linux xerces-c xalan-c OpenRTM-aist OpenRTM-aist X.r1971.el5.src.rpm SRPM OpenRTM-aist rpm2cpio Autotools tar xf OpenRTM-aist-r1971.tar.gz cd OpenRTM-aist-r
78 D SRPMS ( ) sh build/autogen./configure --prefix=/usr (--prefix ) make make install DAQ-Middleware make make install Makefile uninstall cd DAQ-Middleware-1.x.y make uninstall 78
79 E OperatorPC EmulatorPC ReaderPC MonitorPC run.py DaqOperator Emulator Sample Reader Sample Monitor OperatorPC, EmulatorPC IP DAQ E DAQ 13 ReaderPC SampleReader MonitorPC SampleReader DAQ DAQ xinetd xinet /etc/services /etc/xinetd.d/ bootcomps /usr/share/daqmw/etc/remote-boot/bootcomps.py E.1 ping iptables * 15 iptables root# service iptables stop root# chkconfig iptables off *15 79
80 E E.2 xinetd rpm -q xinetd xinetd OS root# yum install xinetd DAQ xinetd 13 ReaderPC MonitorPC xinetd E.3 xinetd /etc/services bootcomps (> > 2 >> ) root# cat /usr/share/daqmw/etc/remote-boot/services.sample >> /etc/services xinetd /etc/xinetd.d/bootcomps (1 ( ) 1 ) root# cp /usr/share/daqmw/etc/remote-boot/bootcomps-xinetd.sample ( ) /etc/xinetd.d/bootcomps xinetd root# service xinetd restart root# service xinetd restart Stopping xinetd: [FAILED] ( FAILED Starting xinetd: [ OK ] Starting xinetd OK ) root# /var/log/messages % echo hello nc remote-host (remote-host xinetd IP ) 80
81 E -1 need more info. OK xinetd /var/log/messages bootcomps-xinetd.sample daq DAQ DAQ daq ( /etc/xinetd.d/bootcomps user = ) xinetd root# chkconfig xinetd on run.py DAQ DAQ xinetd DAQ /tmp/daqmw/ DAQ /tmp/daqmw/ E execpath DAQ conffile DAQ run.py run.py /tmp/daqmw/rtc.conf E.5 Emulator remote.xml daq% run.py -c remote.xml SampleMonitor X DaqOpeator 81
82 E <configinfo> <daqoperator> <hostaddr> </hostaddr> </daqoperator> <daqgroups> <daqgroup gid="group0"> <components> <component cid="samplereader0"> <hostaddr> </hostaddr> <hostport>50000</hostport> <instname>samplereader0.rtc</instname> <execpath>/home/daq/mydaq/samplereader/samplereadercomp</execpath> <conffile>/tmp/daqmw/rtc.conf</conffile> <startord>2</startord> <inports> </inports> <outports> <outport>samplereader_out</outport> </outports> <params> <param pid="srcaddr"> </param> <param pid="srcport">2222</param> </params> </component> <component cid="samplemonitor0"> <hostaddr> </hostaddr> <hostport>50000</hostport> <instname>samplemonitor0.rtc</instname> <execpath>/home/daq/mydaq/samplemonitor/samplemonitorcomp</execpath> <conffile>/tmp/daqmw/rtc.conf</conffile> <startord>1</startord> <inports> <inport from="samplereader0:samplereader_out">samplemonitor_in</inport> </inports> <outports> </outports> <params> </params> </component> </components> </daqgroup> </daqgroups> </configinfo> OperatorPC OperatorPC xhost +MonitorPC run.py -d OperatorPC:0 -c remote.xml 82
83 E X daq@operatorpc% ssh -x MonitorPC ( -x SSH X forwarding ) daq@monitorpc% DISPLAY=OperatorPC:0 xterm MonitorPC X OperatorPC X -d IP :0 X X tcp listen SL Gnome /etc/gdm/custom.conf [security] [security] DisallowTCP=false X ( ) PC X PC xhost + X xhost +hostname.example.jp IP E.6 15 DaqOperator SampleReader SampleMonitor 1. run.py run.py DAQ 2. run.py DAQ Port rtc.conf xinetd bootcomps.py 3. bootcomps.py rtc.conf run.py 4. run.py rtc.conf xinetd bootcomps.py DAQ config.xml 5. DAQ rtc.conf Naming Service 83
84 E rtc.conf run.py DaqOperator config.xml OperatorPC Naming Service SampleReader SampleMonitor xinetd bootcomps.py xinetd bootcomps.py rtc.conf SampleReader rtc.conf SampleMonitor ReaderPC MonitorPC 15 Naming Service 6. run.py DaqOperator DaqOperator config.xml DAQ Naming Service DAQ 84
85 F SCIENTIFIC LINUX 16 F Scientific Linux Scientific Linux CD DVD ( ) (KDDI ) (JAIST) (KEK (KEK )) GUI DAQ F.1 (SL 5.x) Software Development ( 16) WebUI mod_python 85
86 F SCIENTIFIC LINUX 17 SL 5.x root# yum install mod_python Scientific Linux 5.x Emacs root# yum install emacs SELinux iptables F.7 F.2 (SL 5.x) Gnome Desktop (gcc, make ) Add/Remove Software Development apply ( 17) mod_python Emacs Development Libraries Development Tools GNOME Software Development 86
87 F SCIENTIFIC LINUX X Software Development SELinux iptables F.7 F.3 (SL 6.x) Software Development ( 18) DAQ libuuid-devel # yum install libuuid-devel WebUI mod_wsgi root# yum install mod_wsgi Scientific Linux 6.x Emacs root# yum install emacs SELinux iptables F.7 F.4 (SL 6.x) Gnome Desktop (gcc, make ) yum Development tools Additional development * 16 libuuid-devel root# yum groupinstall Development tools root# yum groupinstall Additional development root# yum install libuuid-devel libuuid-devel mod wsgi emacs SELinux iptables F.7 *16 GUI 87
88 F SCIENTIFIC LINUX 18 SL 6.x F.5 (SL 7.x) Development and Creative Workstation ( 19) DAQ libuuid-devel boost-devel # yum install libuuid-devel # yum install boost-devel WebUI mod_wsgi root# yum install mod_wsgi Scientific Linux 7.x Emacs 88
89 F SCIENTIFIC LINUX 19 SL 7.x root# yum install emacs SELinux iptables F.7 F.6 (SL 7.x) SL 7.x SOFTWARE SELECTION General purpose system Gnome Desktop (gcc, make ) root# yum groupinstall Development and Creative Workstation root# yum install boost-devel root# yum install libuuid-devel root# yum install mod_wsgi SELinux F.8 89
DAQ-Middleware $Date: 2010/08/15 00:36:51 $ DAQ-Middleware 1. DAQ-Middleware DAQ-Middleware DAQ-Middleware DAQ-Middlewar
DAQ-Middleware 1.0.1 $Date: 2010/08/15 00:36:51 $ DAQ-Middleware 1. DAQ-Middleware 1.0.1 2. DAQ-Middleware 1.0.1 3. DAQ-Middleware 1.0.1 DAQ-Middleware 1.0.0 [2] SampleReader SampleReader SampleMonitor
More informationDAQ-Middleware講習会 コンポーネント作成方法
DAQ-Middleware 講習会 DAQ コンポーネント開発 濱田英太郎 高エネルギー加速器研究機構 素粒子原子核研究所 2017-9-22 DAQ-Middlewareトレーニングコース 1 もくじ ドキュメンテーション 開発環境セットアップ DAQ コンポーネント作成方法 DAQ コンポーネント状態遷移 コンポーネント間データフォーマット エラー時の処理 InPort, OutPort の読み書き
More informationDAQ-Middleware講習会 コンポーネント作成方法
DAQ-Middleware 講習会 DAQ コンポーネント開発 千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所 2016-10-19 DAQ-Middlewareトレーニングコース 1 もくじ ドキュメンテーション 開発環境セットアップ DAQ コンポーネント作成方法 DAQ コンポーネント状態遷移 コンポーネント間データフォーマット エラー時の処理 InPort, OutPort の読み書き
More informationCondition DAQ condition condition 2 3 XML key value
Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................
More informationMLF-DAY2.dvi
MLF DAQ $Date: 2009/08/04 08:01:39 $ 1 3 1.1 DAQ................. 3 2 DAQ 5 2.1 OS....................................... 5 2.2 DAQ....................... 8 2.3 CPU DAQ DAQ............... 12 2.4 CPU UI
More information(Microsoft PowerPoint - daqmiddware-overview [\214\335\212\267\203\202\201[\203h])
DAQ ミドルウエアの概要 2008 年 8 月 5 6 日 DAQ 実習 -DAQ-Middleware KEK エレクトロニクスシステムグループ KEK 測定器開発室 DAQ プロジェクト安芳次 DAQ ミドルウエアの狙い 多数の計算機を使ったネットワーク分散型 D AQ ソフトウエア ソフトウエアの汎用化 国際標準ロボット技術 (RT ミドルウエア ) の利用 XML によるデータ収集パラメータの記述
More informationDAQ-Middleware 開発環境の準備
DAQ-Middleware 開発環境の準備 千代浩司 1 動作環境 いまのところ動作を確認しているのは32bit 環境のみ 64bit では確認していない ( 動かないというわけではない バイナリは RHEL 5.2(i386) 上で作成している 2 内容 DAQ-Middlewareを使うのに必要なソフトウェアセットアップの方法 時間があれば実演 3 vmplayer を使う人 vmplayerイメージにはこれから述べる手順でインストールが完了している
More informationDAQ- Middleware について 千代浩司 ( せんだいひろし ) 大学共同利用機関法人高エネルギー加速器研究機構 (KEK) 素粒子原子核研究所
DAQ- Middleware について 千代浩司 ( せんだいひろし ) 大学共同利用機関法人高エネルギー加速器研究機構 (KEK) 素粒子原子核研究所 2013-09- 03 1 DAQ- Middleware とは RT- Middleware を実験データ収集用に拡張 DAQ コンポーネント (RT コンポーネント ) を組み合わせてシステムを構築する 以下をユーザーに提供する 状態遷移 DAQ
More informationfx-9860G Manager PLUS_J
fx-9860g J fx-9860g Manager PLUS http://edu.casio.jp k 1 k III 2 3 1. 2. 4 3. 4. 5 1. 2. 3. 4. 5. 1. 6 7 k 8 k 9 k 10 k 11 k k k 12 k k k 1 2 3 4 5 6 1 2 3 4 5 6 13 k 1 2 3 1 2 3 1 2 3 1 2 3 14 k a j.+-(),m1
More informationdouble float
2015 3 13 1 2 2 3 2.1.......................... 3 2.2............................. 3 3 4 3.1............................... 4 3.2 double float......................... 5 3.3 main.......................
More informationエラー処理・分割コンパイル・コマンドライン引数
L10(2017-12-05 Tue) : Time-stamp: 2017-12-17 Sun 11:59 JST hig. recv/send http://hig3.net ( ) L10 (2017) 1 / 21 IP I swallow.math.ryukoku.ac.jp:13 = 133.83.83.6:13 = : IP ( = ) (well-known ports), :. :,.
More informationIP L09( Tue) : Time-stamp: Tue 14:52 JST hig TCP/IP. IP,,,. ( ) L09 IP (2017) 1 / 28
L09(2017-11-21 Tue) : Time-stamp: 2017-11-21 Tue 14:52 JST hig TCP/IP. IP,,,. http://hig3.net L09 (2017) 1 / 28 9, IP, - L09 (2017) 2 / 28 C (ex. ) 1 TCP/IP 2 3 ( ) ( L09 (2017) 3 / 28 50+5, ( )50+5. (
More information1.... 1 2.... 1 2.1. RATS... 1 2.1.1. expat... 1 2.1.2. expat... 1 2.1.3. expat... 2 2.2. RATS... 2 2.2.1. RATS... 2 2.2.2.... 3 3. RATS... 4 3.1.... 4 3.2.... 4 3.3.... 6 3.3.1.... 6 3.3.2.... 6 3.3.3....
More information[user@linux tmp]$ tar xzvf utvpn-src-unix-v100-7092-beta-2010.06.25.tar.gz [user@linux tmp]$ cd utvpn-unix-v100-7092-beta [user@linux utvpn-unix-v100-7092-beta]$ ls License-ja.txt configure makefiles src
More informationprogrammingII2019-v01
II 2019 2Q A 6/11 6/18 6/25 7/2 7/9 7/16 7/23 B 6/12 6/19 6/24 7/3 7/10 7/17 7/24 x = 0 dv(t) dt = g Z t2 t 1 dv(t) dt dt = Z t2 t 1 gdt g v(t 2 ) = v(t 1 ) + g(t 2 t 1 ) v v(t) x g(t 2 t 1 ) t 1 t 2
More informationCM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧)
CM-3G 周辺モジュール拡張技術文書 MS5607 センサ ( 温度 気圧 ) ( 第 1 版 ) Copyright (C)2016 株式会社コンピューテックス 目次 1. はじめに... 1 2. MS5607 について... 1 3. 接続図... 1 4. アプリケーション ソース... 2 5. アプリケーションのコンパイル方法... 7 6. アプリケーションの実行... 8 1. はじめに
More informationA : kerl kerl Erlang/OTP Erlang/OTP 2 2 Elixir/Phoenix URL 2 PDF A.2 Bash macos.bash_profile exp
A Erlang/OTP Elixir Phoenix nvm Node.js A.1 Erlang/OTP 21.1 $ kerl update releases $ kerl build 21.1 21.1 $ kerl install 21.1 ~/erlang/21.1 $ source ~/erlang/21.1/activate Erlang/OTP 1 203 A : kerl kerl
More informationRX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM
R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33 1.... 3 1.1... 3 1.2... 3
More information第5回お試しアカウント付き並列プログラミング講習会
qstat -l ID (qstat -f) qscript ID BATCH REQUEST: 253443.batch1 Name: test.sh Owner: uid=32637, gid=30123 Priority: 63 State: 1(RUNNING) Created at: Tue Jun 30 05:36:24 2009 Started at: Tue Jun 30 05:36:27
More informationsyspro-0405.ppt
3 4, 5 1 UNIX csh 2.1 bash X Window 2 grep l POSIX * more POSIX 3 UNIX. 4 first.sh #!bin/sh #first.sh #This file looks through all the files in the current #directory for the string yamada, and then prints
More information<4D F736F F D2089FC92F994C E E E B E332E B838B837D836A B2E646F6378>
Dec 18, 2013 Ubuntu 12.04 用 DAQ ミドルウェア 1.3.0 インストールマニュアル 高エネルギー加速器研究機構 素粒子原子核研究所 井上栄二 目次 1.. はじめに... 2 2.. この文書について... 2 3. インストール用のスクリプトファイル... 2 4. スクリプトファイルの入手... 2 5.. パッケージのージのインストール... 3 6.. パッケージの削除...
More informationuntitled
FutureNet Microsoft Corporation Microsoft Windows Windows 95 Windows 98 Windows NT4.0 Windows 2000, Windows XP, Microsoft Internet Exproler (1) (2) (3) COM. (4) (5) ii ... 1 1.1... 1 1.2... 3 1.3... 6...
More informationJava演習(4) -- 変数と型 --
50 20 20 5 (20, 20) O 50 100 150 200 250 300 350 x (reserved 50 100 y 50 20 20 5 (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics; (reserved public class Blocks1 extends
More informationDocuWide 2051/2051MF 補足説明書
ëêèõ . 2 3 4 5 6 7 8 9 0 2 3 4 [PLOTTER CONFIGURATION] [DocuWide 2050/205 Version 2.2.0] [SERIAL] BAUD_RATE =9600 DATA_BIT =7 STOP_BIT = PARITY =EVEN HANDSHAKE =XON/XOFF EOP_TIMEOUT_VALUE =0 OUTPUT RESPONSE
More informationUNIX
2000 1 UNIX 2000 4 14 1 UNIX? 2 1.1 UNIX OS....................................... 2 1.2.................................................... 2 1.3 UNIX...................................... 2 1.4 Windows
More informationCLUSTERPRO ファイルサーバ監視オプション編
CLUSTERPRO SE for Linux Ver3.0 2004.03.31 1 1 2004/03/31 2 CLUSTERPRO for Linux R2.0 CLUSTERPRO Linux Linus Torvalds URL NEC http://soreike.wsd.mt.nec.co.jp/ [ ][ ][CLUSTERPRO ] NEC http://www.ace.comp.nec.co.jp/clusterpro/
More informationr07.dvi
19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1
More informationPowerGres on Linuxマニュアル
PowerGres R on Linux Linux Linus Torvalds TM R 1 2 2 PowerGres on Linux 2 2.1 PowerGres on Linux.................................... 2 2.2.............................................. 2 2.3..............................................
More informationohp07.dvi
19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5
More informationNios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」
ALTIMA Company, MACNICA, Inc Nios II HAL API Modular Scatter-Gather DMA Core Ver.17.1 2018 8 Rev.1 Nios II HAL API Modular Scatter-Gather DMA Core...3...3...4... 4... 5 3-2-1. msgdma... 6 3-2-2. On-Chip
More informationunix.dvi
1 UNIX 1999 4 27 1 UNIX? 2 1.1 Windows/Macintosh? : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2 UNIX OS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.3 : : : : : : : : : : : :
More informationExpress5800/R110a-1Hユーザーズガイド
4 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Xeon Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0B60: DIMM group #1 has been disabled. : Press to resume, to
More informationuntitled
HP OpenSource MySQL Server 5.0 Red Hat Enterprise Linux 4 ver 1.5 MySQL Red Hat Enterprise Linux 4 Super Smack Super Smac MySQL Super Smack RHEL4 1 2 MySQL SuperSmack SuperSmack 3 SuperSmack MySQL 4 MySQL
More informationcpp1.dvi
2017 c 1 C++ (1) C C++, C++, C 11, 12 13 (1) 14 (2) 11 1 n C++ //, [List 11] 1: #include // C 2: 3: int main(void) { 4: std::cout
More informationprogram.dvi
2001.06.19 1 programming semi ver.1.0 2001.06.19 1 GA SA 2 A 2.1 valuename = value value name = valuename # ; Fig. 1 #-----GA parameter popsize = 200 mutation rate = 0.01 crossover rate = 1.0 generation
More informationuntitled
II 4 Yacc Lex 2005 : 0 1 Yacc 20 Lex 1 20 traverse 1 %% 2 [0-9]+ { yylval.val = atoi((char*)yytext); return NUM; 3 "+" { return + ; 4 "*" { return * ; 5 "-" { return - ; 6 "/" { return / ; 7 [ \t] { /*
More informationr08.dvi
19 8 ( ) 019.4.0 1 1.1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( ) 1 next 1 prev 1 head cur tail head cur prev
More informationHABOC manual
HABOC manual Version 2.0 takada@cr.scphys.kyoto-u.ac.jp HABOC とは Event by event 解析用の Framework C++ による coding ANL や FULL の C++ 版を目標 ANL/FULL は Object Oriented な設計概念なので C++ と相性が良い Histogram や視覚化には ROOT(http://root.cern.ch)
More information解きながら学ぶC++入門編
!... 38!=... 35 "... 112 " "... 311 " "... 4, 264 #... 371 #define... 126, 371 #endif... 369 #if... 369 #ifndef... 369 #include... 3, 311 #undef... 371 %... 17, 18 %=... 85 &... 222 &... 203 &&... 40 &=...
More informationC
C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................
More informationPowerGres on Linux HAマニュアル
PowerGres R on Linux HA 2006 11 SteelEye LifeKeeper SteelEye Technology, Inc. Linux Linus Torvalds TM R 1 2 2 PowerGres on Linux HA 2 2.1 PowerGres on Linux HA.................................. 2 2.2..............................................
More informationK227 Java 2
1 K227 Java 2 3 4 5 6 Java 7 class Sample1 { public static void main (String args[]) { System.out.println( Java! ); } } 8 > javac Sample1.java 9 10 > java Sample1 Java 11 12 13 http://java.sun.com/j2se/1.5.0/ja/download.html
More informationIntroduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for
Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for embedded systems that use microcontrollers (MCUs)
More informationDAQ- Middleware の新機能と 実験への展開千代浩司 A,F 濱田英太郎 A,F 井上栄二 A,F 長坂康史 B,F 味村周平 C,F 神徳徹雄 D,F 安藤慶昭 D,F 和田正樹 E 高エネルギー加速器研究機構素粒子原子核研究所 A 広島工業大学 B 大坂大学 C 産業技術総合研究所
DAQ- Middleware の新機能と 実験への展開千代浩司 A,F 濱田英太郎 A,F 井上栄二 A,F 長坂康史 B,F 味村周平 C,F 神徳徹雄 D,F 安藤慶昭 D,F 和田正樹 E 高エネルギー加速器研究機構素粒子原子核研究所 A 広島工業大学 B 大坂大学 C 産業技術総合研究所 D ( 株 )Bee Beans Technologies E Open- It F もくじ DAQ-
More informationINR-HG5579a_Netshut_Guide_Linux-Solaris_.doc
( ) ( ) () 1 Netshut...1 1.1....1 1.1.1....1 1.1.2. OS...1 1.2....2 2...2 2.1....2 2.2. Linux(RPM )...3 2.3. Solaris(PKG )...4 3 Netshut...7 3.1....7 3.2....8 3.3. Netshut...9 3.4. Syslog...10 3.4.1....11
More information第173回東京エリアDebian勉強会 grml-debootstrapを用いた USB起動メモリの作成
173 Debian grml-debootstrap USB NOKUBI Takatsugu ( ) knok@debian.org 2019-04-20 NOKUBI Takatsugu ( ) knok@debian.org / knok@daionet.gr.jp Twitter: @knok Debian developer since 2002 bo USB grml-debootstrap
More informationuntitled
Dell PowerEdgeDell EMC CX500BakBone NetVault VMware ESX Server 2.5 & NetVault... 2... 2... 3 OS... 4 VMWARE ESX SERVER 2.5 SERVICE CONSOLE... 5 VMWARE ESX SERVER 2.5 NETVAULT... 6... 7 OS... 7 OS... 8
More informationohp08.dvi
19 8 ( ) 2019.4.20 1 (linked list) ( ) next ( 1) (head) (tail) ( ) top head tail head data next 1: 2 (2) NULL nil ( ) NULL ( NULL ) ( 1 ) (double linked list ) ( 2) 3 (3) head cur tail head cur prev data
More informationex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) double
More information$ sudo apt-get install libavahi-compat-libdnssd-dev $ sudo apt-get autoremove nodejs $ wget http://nodejs.org/dist/latest/node-v7.6.0-linux-armv7l.tar.gz $ tar xzf node-v7.6.0-linux-armv7l.tar.gz $ sudo
More informationロードバランサー配下のシボレス IdP 環境設定に関する検証実験 2009 年 12 月 22 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典
ロードバランサー配下のシボレス IdP 環境設定に関する検証実験 2009 年 12 月 22 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典 2 1. 目的ロードバランサー配下で複数のシボレス IdP からなるクラスタを構築するための設定方法を調べることを目的とする. 2. 実験環境検証実験は, ロードバランサー 1 台 (F5 ネットワークスジャパン株式会社 BIG-IP),
More informationTeraTerm Pro V.2.32の利用法
Tera Term Pro ver.2.23 Windows Ver.2.1 2 Tterm23Zip Ttermp23 cedar ttermpro Ttermpro 3 Setup Terminal 3 Setup Window 4 Setup Font 5 Setup keyboard 6 Setup Serial port 7 Setup General 8 9 Tera Term Pro
More information2017_08_ICN研究会_印刷用
class Producer : noncopyable public: run() m_face.setinterestfilter("/example/testapp", bind(&producer::oninterest, this, _1, _2), RegisterPrefixSuccessCallback(), bind(&producer::onregisterfailed, this,
More informationWordPress Web
0948011 1 1 1.............................. 1 2 WordPress....................... 2 3........................ 3 4........................ 4 2 4 1 Web......... 4 3 5 1 WordPress...................... 5 2..........................
More information大統一Debian勉強会 gdb+python拡張を使ったデバッグ手法
Debian 2013 gdb+python nozzy@debian.or.jp 2013 6 29 Level Debian Up Debian Debian debian sid unstable Debian debian sid unstable *-dbg Debian debian sid unstable *-dbg gdb Debian debian sid unstable *-dbg
More informationMOTIF XF 取扱説明書
MUSIC PRODUCTION SYNTHESIZER JA 2 (7)-1 1/3 3 (7)-1 2/3 4 (7)-1 3/3 5 http://www.adobe.com/jp/products/reader/ 6 NOTE http://japan.steinberg.net/ http://japan.steinberg.net/ 7 8 9 A-1 B-1 C0 D0 E0 F0 G0
More informationRHEA key
2 P (k, )= k e k! 3 4 Probability 0.4 0.35 0.3 0.25 Poisson ( λ = 1) Poisson (λ = 3) Poisson ( λ = 10) Poisson (λ = 20) Poisson ( λ = 30) Gaussian (µ = 1, s = 1) Gaussian ( µ = 3, s = 3) Gaussian (µ =
More information3.2 Linux root vi(vim) vi emacs emacs 4 Linux Kernel Linux Git 4.1 Git Git Linux Linux Linus Fedora root yum install global(debian Ubuntu apt-get inst
1 OS Linux OS OS Linux Kernel 900 1000 IPA( :http://www.ipa.go.jp/) 8 12 ( ) 16 ( ) 4 5 22 60 2 3 6 Linux Linux 2 LKML 3 3.1 Linux Fedora 13 Ubuntu Fedora CentOS 3.2 Linux root vi(vim) vi emacs emacs 4
More information<Documents Title Here>
Oracle Application Server 10g Release 2 (10.1.2) for Microsoft Windows Business Intelligence Standalone Oracle Application Server 10g Release 2 (10.1.2) for Microsoft Windows Business Intelligence Standalone
More informationHA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2
HB102050A0-4 制限 補足 Esc Enter Esc Enter Esc Enter Main Advanced Server Security Boot Exit A SATA Configuration SATA Controller(s) SATA Mode Selection [Enabled] [RAID] Determines how
More information55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a
55 7 Java C Java TCP/IP TCP/IP 7.1 7.1.1 TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] argv) { Socket readsocket = new Socket(argv[0], Integer.parseInt(argv[1]));
More informationAppendix
Appendix Appendix-A PHP 392 Appendix-B -> cd ext/pgsql -> phpize ->./configure --with-pgsql -> make -> make EXTENSION_DIR=/usr/local/lib/php/extensions install extension_dir = "/usr/local/lib/php/extensions/"
More informationMicrosoft Word - J doc
Oracle Application Server for HP-UX 4.0.8.2 2000 11 : J02449-01 : Oracle Application Server Release Notes for HP 9000 Servers and Workstations A86087-01 Oracle Application Server for HP-UX 4.0.8.2 Oracle
More informationHA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル
P1E1M01500-3 - - - LSI MegaRAID SAS-MFI BIOS Version x.xx.xx (Build xxxx xx, xxxx) Copyright (c) xxxx LSI Corporation HA -0 (Bus xx Dev
More informationLinuxデバイスドライバ.PDF
Linux hidaka@devdrv.com 2002/10/9 Linux Kernel Conference 2002 1 Linux 2 Linux 3 Software Hardware Device Algolith m Protocol Applicati on 4 CPU 128MB NIC ATI Radeon GeForce2 MX400 Matrox G400 DISK 5 OS
More informationCisco Umbrella Branch Cisco Umbrella Branch Cisco ISR Umbrella Branch
Cisco Umbrella Branch Cisco Umbrella Branch Cisco ISR 4000 1 2 3 Umbrella Branch 1 Cisco Umbrella Branch Cisco ISR 4000 Cisco Umbrella Branch Security K9 ROM Monitor (ROMMON) 16.2(1r) ROMMON 16.2(1r) 3
More informationLAN Copyright c Daikoku Manabu This tutorial is licensed under a Creative Commons Attribution 2.1 Japan License
LAN 2014 3 19 Copyright c 1993 2014 Daikoku Manabu This tutorial is licensed under a Creative Commons Attribution 2.1 Japan License. 1 2 1.1................................... 2 1.2.........................
More informationAsterisk PBX 不正利用防止
Asterisk PBX ICTR120716-OR01A Info Circus,Inc. 1 2 2 IP-PBX 3 2.1........................... 3 3 IP-PBX 4 3.1........................................... 4 3.2..................................... 4 3.3..............................
More informationI 2 tutimura/ I 2 p.1/??
I 2 tutimura@mist.i.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/ 2002 4 25 I 2 p.1/?? / / Makefile I 2 p.2/?? Makefile make GNU make I 2 p.3/?? Makefile L A T E X I 2 p.4/?? core (1) gcc,
More informationOracle Application Server 10g(9
Oracle Application Server 10g (9.0.4) for Microsoft Windows J2EE Oracle Application Server 10g (9.0.4) for Microsoft Windows J2EE and Web Cache...2...3...3...4...6...6...6 OS...9...10...12...13...24...24
More information10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV
tutimura@mist.i.u-tokyo.ac.jp kaneko@ipl.t.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/sem3/ 2002 12 11 p.1/33 10/16 1. 10/23 2. 10/30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20
More information最も一般的な手法: ファイアウォールによってノード間の MPI 通信がブロックされた場合の対応方法
最も一般的な手法 : ファイアウォールによってノード間 の MPI 通信がブロックされた場合の対応方法 この記事は インテル デベロッパー ゾーンに公開されている Best Known Methods: Firewall Blocks MPI Communication among Nodes の日本語参考訳です この記事では ファイアウォールによって複数のマシン間のメッセージ パッシング インターフェイス
More informationPowerGres on Linuxマニュアル
PowerGres R on Linux Linux Linus Torvalds TM R 1 2 2 PowerGres on Linux 2 2.1 PowerGres on Linux.................................... 2 2.2.............................................. 2 2.3..............................................
More information/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1
I117 II I117 PROGRAMMING PRACTICE II 2 MEMORY MANAGEMENT 2 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara yasu@jaist.ac.jp / SCHEDULE 1. 2011/06/07(Tue) / Basic of Programming
More informationXen入門 ppt
http://begi.net/ Xen Xen 2 Fedora Core 5 IP IP IP 192.168.1.10/24 server.example.com HDD Web Disabled SELinux Disabled 3 Xen Virtual Machine Monitor 4 Hypervisor Xenoserver 5 6 Xen OS VT AMD-V OSWindows
More informationXen入門 ppt
http://begi.net/ Xen Xen 2 1 Fedora Core 5 IP IP IP 192.168.1.10/24 server.example.com HDD Web Disabled SELinux Disabled 3 Xen Virtual Machine Monitor 4 Hypervisor Xenoserver 2 5 6 Xen OS VT AMD-V OSWindows
More informationfp.gby
1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]
More informationやさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF
pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) 3 5 14 18 21 23 23 24 28 29 29 31 32 34 35 35 36 38 40 44 44 45 46 49 49 50 pref : 2004/6/5 (11:8) 50 51 52 54 55 56 57 58 59 60 61
More informationthesis.dvi
H8 e041220 2009 2 Copyright c 2009 by Kentarou Nagashima c 2009 Kentarou Nagashima All rights reserved , H8.,,,..,.,., AKI-H8/3052LAN. OS. OS H8 Write Turbo. H8 C, Cygwin.,., windows. UDP., (TA7279P).,.
More informationRedHat OpenFOAM OpenFOAM ver 2.3 RedHat(RHEL)
RedHat Linux OpenFOAM (OpenFOAM 2.2.x, 2.3.x) y.imagawa 14.3.8 RedHat OpenFOAM OpenFOAM ver 2.3 RedHat(RHEL) OpenFOAM OpenFOAM Linux git Repository RedHat Linux OpenFOAM centfoam? OpenFOAM OS CentOS 6.5
More informationSmalltalk_
DLLCC VisualWorks C Mac OS SSK-LampControl/ VisualWorksWithJun SSK-LampControl.h include SSK SSK FileBrowser SSK-LampControl.st FIle in SSK-LampControl File in SSK File in ( Smalltalk.SSK) ( C ) Controller
More information新版明解C言語 実践編
2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,
More information昨年度までの研究紹介 および 研究計画
第 12 回 ICN 研究会ワークショップ Cefore で キャッシュプラグイン開発 2018 年 8 月 30 日 ( 木 ) キャッシュプラグイン csmgrd は起動時に使用するキャッシュプラグインを指定 Cache plugin: キャッシュデータ保存方式 Cache algorithm: キャッシュ選択 / 置換アルゴリズム Cache Plugin Cache algorithm csmgrd
More informationSystemC言語概論
SystemC CPU S/W 2004/01/29 4 SystemC 1 SystemC 2.0.1 CPU S/W 3 ISS SystemC Co-Simulation 2004/01/29 4 SystemC 2 ISS SystemC Co-Simulation GenericCPU_Base ( ) GenericCPU_ISS GenericCPU_Prog GenericCPU_CoSim
More informationE2 Spider 2018/08/03 Intel NUC Core i7 PC 2.5 /M.2 SSD BOXNUC7I7BNH PC DDR4-2133(PC ) 8GBX2 260pin 1.2V CL15 SP016GBSFU213B22 WD SSD M /51
E2 Spider 2018/08/03 Intel NUC Core i7 PC 2.5 /M.2 SSD BOXNUC7I7BNH PC DDR4-2133(PC4-17000) 8GBX2 260pin 1.2V CL15 SP016GBSFU213B22 WD SSD M.2-2280/512GB/WD Black/PCIe Gen3 NVMe/5 /WDS512G1X0C 1 NUC NUC7i7BNH
More informationスライド 1
普通のこと OpenSolaris にとって 普通のこと を 普通に 話してみたいと思います ユーザーズグループの活動の話 勉強会や ML IRC にきてね apache 2.2 # svcadm enable apache22 # svcs -xv apache22 svc:/network/http:apache22 (Apache 2.2 HTTP server) State: online
More informationARM gcc Kunihiko IMAI 2009 1 11 ARM gcc 1 2 2 2 3 3 4 3 4.1................................. 3 4.2............................................ 4 4.3........................................
More information橡環境設定.PDF
UNIX Vine Linux 1.1 A B C D E F G XML H mod_rewrite(url Rewriting Engine # /etc/rc.d/init.d/httpd stop /usr/local/src % cd /usr/local/src % cp /copysrcpath/apache_1.3.9.tar.gz./ copysrcpath % gzip cd apache_1.3.9.tar.gz
More informationHARK Designer Documentation 0.5.0 HARK support team 2013 08 13 Contents 1 3 2 5 2.1.......................................... 5 2.2.............................................. 5 2.3 1: HARK Designer.................................
More information新・明解Java入門
537,... 224,... 224,... 32, 35,... 188, 216, 312 -... 38 -... 38 --... 102 --... 103 -=... 111 -classpath... 379 '... 106, 474!... 57, 97!=... 56 "... 14, 476 %... 38 %=... 111 &... 240, 247 &&... 66,
More informationPowerPoint Presentation
For experiment coordinators CREST, JST Go IWAI 2004/09/05 Introduction to CLDAQ for experiment coordinators 2 2004/09/05 Introduction to CLDAQ for experiment coordinators 3 2004/09/05 Introduction to CLDAQ
More informationMicrosoft Word - Win-Outlook.docx
Microsoft Office Outlook での設定方法 (IMAP および POP 編 ) How to set up with Microsoft Office Outlook (IMAP and POP) 0. 事前に https://office365.iii.kyushu-u.ac.jp/login からサインインし 以下の手順で自分の基本アドレスをメモしておいてください Sign
More informationMail_Spam_Manual_120815b
server~>su - server:~#mount /mnt/cdrom server:~#umount /mnt/cdrom # cd /mnt/cdrom #./ginstall -F -M [MTA ] -P AV # wget http://download.gideon.co.jp/ginstall.tgz #./ginstall -F -M P -P AV #./ginstall -M
More informationMicrosoft Word - C.....u.K...doc
C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1 C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ
More informationII 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y
II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C 1 6 9 1 main main 1 NULL NULL 1 15 23 25 48 26 30 32 36 38 43 45 47 50 52 for 2 (a) 2 2 1 Yacc 2 (b) 2 3 yytext tmp2 ("") tmp2->next->word tmp2 yytext tmp2->next->word
More informationMicrosoft Word - PSB導入ガイド_ docx
入 1 / 49 入 日 1.0.0 2013/12/02 用 用 F-Secure 角 自 止 一 2 / 49 ... 4 1.... 4 2.... 4 3. 入... 4 4. 手 Windows... 5 4.1... 5 4.2 Windows... 9 5. 手 Windows Server... 13 6. 手 Linux... 19 6.1... 19 6.2 PSB... 20
More informationWEB DB PRESS Vol.1 65
http://www.fastcgi.com/ http://perl.apache.org/ 64 WEB DB PRESS Vol.1 WEB DB PRESS Vol.1 65 Powered by mod_perl, Apache & MySQL my $input; my %form; read STDIN, $input, $ENV{'CONTENT_LENGTH'}; foreach
More informationLinux XScreenSaver T020074
Linux XScreenSaver T020074 Linux XScreenSaver XScreenSaver Linux Linux Linux X Window System X Window System Xlib XScreenSaver X Window System Xlib XScreenSaver Xlib vroot.h Xlib XScreenSaver Linux Linux
More information取扱説明書の読み替え一覧表
SCSI アレイコントローラカード取扱説明書 ( 追補版 ) PG-140BL PG-140C PG-140CL PG-141B PG-142B PG-142C PG-142D GP5-150 GP5-1501 GP5-151 はじめに Linux MicrosoftWindows NTMicrosoft Corporation NetwareNovell Copyright 1985-2001 Microsoft
More information