VMware Player Scientific Linux 5.x 6.x 7.x RPM

Size: px
Start display at page:

Download "VMware Player Scientific Linux 5.x 6.x 7.x RPM"

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 $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 information

DAQ-Middleware講習会 コンポーネント作成方法

DAQ-Middleware講習会 コンポーネント作成方法 DAQ-Middleware 講習会 DAQ コンポーネント開発 濱田英太郎 高エネルギー加速器研究機構 素粒子原子核研究所 2017-9-22 DAQ-Middlewareトレーニングコース 1 もくじ ドキュメンテーション 開発環境セットアップ DAQ コンポーネント作成方法 DAQ コンポーネント状態遷移 コンポーネント間データフォーマット エラー時の処理 InPort, OutPort の読み書き

More information

DAQ-Middleware講習会 コンポーネント作成方法

DAQ-Middleware講習会 コンポーネント作成方法 DAQ-Middleware 講習会 DAQ コンポーネント開発 千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所 2016-10-19 DAQ-Middlewareトレーニングコース 1 もくじ ドキュメンテーション 開発環境セットアップ DAQ コンポーネント作成方法 DAQ コンポーネント状態遷移 コンポーネント間データフォーマット エラー時の処理 InPort, OutPort の読み書き

More information

Condition DAQ condition condition 2 3 XML key value

Condition 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 information

MLF-DAY2.dvi

MLF-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])

(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 information

DAQ-Middleware 開発環境の準備

DAQ-Middleware 開発環境の準備 DAQ-Middleware 開発環境の準備 千代浩司 1 動作環境 いまのところ動作を確認しているのは32bit 環境のみ 64bit では確認していない ( 動かないというわけではない バイナリは RHEL 5.2(i386) 上で作成している 2 内容 DAQ-Middlewareを使うのに必要なソフトウェアセットアップの方法 時間があれば実演 3 vmplayer を使う人 vmplayerイメージにはこれから述べる手順でインストールが完了している

More information

DAQ- Middleware について 千代浩司 ( せんだいひろし ) 大学共同利用機関法人高エネルギー加速器研究機構 (KEK) 素粒子原子核研究所

DAQ- Middleware について 千代浩司 ( せんだいひろし ) 大学共同利用機関法人高エネルギー加速器研究機構 (KEK) 素粒子原子核研究所 DAQ- Middleware について 千代浩司 ( せんだいひろし ) 大学共同利用機関法人高エネルギー加速器研究機構 (KEK) 素粒子原子核研究所 2013-09- 03 1 DAQ- Middleware とは RT- Middleware を実験データ収集用に拡張 DAQ コンポーネント (RT コンポーネント ) を組み合わせてシステムを構築する 以下をユーザーに提供する 状態遷移 DAQ

More information

fx-9860G Manager PLUS_J

fx-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 information

double float

double 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 information

IP L09( Tue) : Time-stamp: Tue 14:52 JST hig TCP/IP. IP,,,. ( ) L09 IP (2017) 1 / 28

IP 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 information

1.... 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 information

programmingII2019-v01

programmingII2019-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 information

CM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧)

CM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧) CM-3G 周辺モジュール拡張技術文書 MS5607 センサ ( 温度 気圧 ) ( 第 1 版 ) Copyright (C)2016 株式会社コンピューテックス 目次 1. はじめに... 1 2. MS5607 について... 1 3. 接続図... 1 4. アプリケーション ソース... 2 5. アプリケーションのコンパイル方法... 7 6. アプリケーションの実行... 8 1. はじめに

More information

A : kerl kerl Erlang/OTP Erlang/OTP 2 2 Elixir/Phoenix URL 2 PDF A.2 Bash macos.bash_profile exp

A : 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 information

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

RX600 & 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回お試しアカウント付き並列プログラミング講習会

第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 information

syspro-0405.ppt

syspro-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>

<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 information

untitled

untitled 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 information

Java演習(4) -- 変数と型 --

Java演習(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 information

DocuWide 2051/2051MF 補足説明書

DocuWide 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 information

UNIX

UNIX 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 information

CLUSTERPRO ファイルサーバ監視オプション編

CLUSTERPRO ファイルサーバ監視オプション編 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 information

r07.dvi

r07.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 information

PowerGres on Linuxマニュアル

PowerGres 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

ohp07.dvi

ohp07.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 information

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

Nios® 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 information

unix.dvi

unix.dvi 1 UNIX 1999 4 27 1 UNIX? 2 1.1 Windows/Macintosh? : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2 UNIX OS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.3 : : : : : : : : : : : :

More information

Express5800/R110a-1Hユーザーズガイド

Express5800/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 information

untitled

untitled 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 information

cpp1.dvi

cpp1.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 information

program.dvi

program.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 information

untitled

untitled 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 information

r08.dvi

r08.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 information

HABOC manual

HABOC 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++入門編

解きながら学ぶ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 information

C

C C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................

More information

PowerGres on Linux HAマニュアル

PowerGres 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 information

K227 Java 2

K227 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 information

Introduction 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 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 information

DAQ- 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 産業技術総合研究所 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 information

INR-HG5579a_Netshut_Guide_Linux-Solaris_.doc

INR-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起動メモリの作成 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 information

untitled

untitled 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 information

ohp08.dvi

ohp08.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 information

ex01.dvi

ex01.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 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典 ロードバランサー配下のシボレス IdP 環境設定に関する検証実験 2009 年 12 月 22 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典 2 1. 目的ロードバランサー配下で複数のシボレス IdP からなるクラスタを構築するための設定方法を調べることを目的とする. 2. 実験環境検証実験は, ロードバランサー 1 台 (F5 ネットワークスジャパン株式会社 BIG-IP),

More information

TeraTerm Pro V.2.32の利用法

TeraTerm 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 information

2017_08_ICN研究会_印刷用

2017_08_ICN研究会_印刷用 class Producer : noncopyable public: run() m_face.setinterestfilter("/example/testapp", bind(&producer::oninterest, this, _1, _2), RegisterPrefixSuccessCallback(), bind(&producer::onregisterfailed, this,

More information

WordPress Web

WordPress 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勉強会 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 information

MOTIF XF 取扱説明書

MOTIF 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 information

RHEA key

RHEA 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 information

3.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

3.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>

<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 information

HA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2

HA8000-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 information

55 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 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 information

Appendix

Appendix 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 information

Microsoft Word - J doc

Microsoft 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 information

HA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル

HA8000シリーズ ユーザーズガイド ~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 information

Linuxデバイスドライバ.PDF

Linuxデバイスドライバ.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 information

Cisco Umbrella Branch Cisco Umbrella Branch Cisco ISR Umbrella Branch

Cisco 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 information

LAN Copyright c Daikoku Manabu This tutorial is licensed under a Creative Commons Attribution 2.1 Japan License

LAN 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 information

Asterisk PBX 不正利用防止

Asterisk 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 information

I 2 tutimura/ I 2 p.1/??

I 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 information

Oracle Application Server 10g(9

Oracle 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 information

10/ / /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

10/ / /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 通信がブロックされた場合の対応方法 最も一般的な手法 : ファイアウォールによってノード間 の MPI 通信がブロックされた場合の対応方法 この記事は インテル デベロッパー ゾーンに公開されている Best Known Methods: Firewall Blocks MPI Communication among Nodes の日本語参考訳です この記事では ファイアウォールによって複数のマシン間のメッセージ パッシング インターフェイス

More information

PowerGres on Linuxマニュアル

PowerGres 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

/ 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 information

Xen入門 ppt

Xen入門 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 information

Xen入門 ppt

Xen入門 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 information

fp.gby

fp.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

やさしい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 information

thesis.dvi

thesis.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 information

RedHat OpenFOAM OpenFOAM ver 2.3 RedHat(RHEL)

RedHat 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 information

Smalltalk_

Smalltalk_ 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言語 実践編

新版明解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 information

SystemC言語概論

SystemC言語概論 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 information

E2 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(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

スライド 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 information

ARM 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

橡環境設定.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 information

HARK 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入門

新・明解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 information

PowerPoint Presentation

PowerPoint 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 information

Microsoft Word - Win-Outlook.docx

Microsoft 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 information

Mail_Spam_Manual_120815b

Mail_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 information

Microsoft Word - C.....u.K...doc

Microsoft Word - C.....u.K...doc C uwêííôöðöõ Ð C ÔÖÐÖÕ ÐÊÉÌÊ C ÔÖÐÖÕÊ C ÔÖÐÖÕÊ Ç Ê Æ ~ if eíè ~ for ÒÑÒ ÌÆÊÉÉÊ ~ switch ÉeÍÈ ~ while ÒÑÒ ÊÍÍÔÖÐÖÕÊ ~ 1 C ÔÖÐÖÕ ÐÊÉÌÊ uê~ ÏÒÏÑ Ð ÓÏÖ CUI Ô ÑÊ ÏÒÏÑ ÔÖÐÖÕÎ d ÈÍÉÇÊ ÆÒ Ö ÒÐÑÒ ÊÔÎÏÖÎ d ÉÇÍÊ

More information

II 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 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 information

Microsoft Word - PSB導入ガイド_ docx

Microsoft 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 information

WEB DB PRESS Vol.1 65

WEB 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 information

Linux XScreenSaver T020074

Linux 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