Version 1 (modified by branden, 9 years ago) (diff) |
---|
Earthworm Module: reftek2ew
Contributed by:
Function
A Reftek data feeding program
Details
Module reftek2ew was developed and provided by Refraction Technologies, Inc. The module translates data from the Reftek data server, RTP, into Earthworm trace data format and writes Earthworm trace messages to an Earthworm shared memory ring.
Refraction Technologies, Inc. has provided the source code for both the Solaris and Windows 2000 versions. Along with this module, there are several other programs provided by Reftek which are required to run reftek2ew. Those can be found in the utils subdirectory in the reftek2ew source directory:
utils/solaris:
- rtpd - rtp server daemon program used to boot up Reftek boxes and control communication with them
- rtpc - rtp client program used for Reftek control
utils/winnt: (among other things)
- rtpudpsvc.exe - rtp server
- fsc.exe - Field Setup Controller
- nci.exe - Network Control Interface
INSTALLING AND CONFIGURING REFTEK DATA LOGGERS, CISCO ROUTERS, AND RTPD SERVERS
Lucky Vidmar Fri Jan 29 11:49:21 MST 1999 This file contains instructions for configuring RefTek data loggers (e.g. model 72A with serial card RT422) to deliver data into a Solaris or NT machine and convert it into Earthworm packets. The instructions contained here are the result of trial-and-error, complemented with a hefty dose of tech support from RefTek. Consulting ALL of the available RefTek documentation is strongly recommended. Communication between a RefTek data logger (Data Acquisition System - DAS) and the server machine is done via the RefTek Protocol (RTP). RTP is designed to provide full-duplex, packet-oriented transport over UDP. RTP is implemented as a client-server process with a DAS with a RT422 serial card as the client, and the RTPD application as the server. RTPD is available for NT and Solaris - see instructions below for installing RPTD on each platform. RefTek recommends that RTP is implemented through a router, for example a Cisco 2509, such that the set up will consist of two class C networks (one on each side of the router). The client DAS is on one network and will connect to the router through an asynch serial interface using PPP. The server is on the other network and the router takes care of routing the traffic between the two networks. SERVER RTPD 192.168.6.80 | | | 192.168.6.0 network ------------------------------------------- | | | 192.168.6.1 -------------------------- | | | CISCO 2509 | | | -------------------------- | | Async1 Async2 192.168.7.1 192.168.7.2 | | | PPP | | LINK | | | 192.168.7.9 192.168.7.10 | | ------------ ------------ | | | | | DAS#7853 | | DAS#7854 | | | | | ------------ ------------ The Cisco router configuration for the setup shown above is as follows: hostname RefTekRouter ! ! username das#7853 password 0 das#7853 username das#7854 password 0 das#7854 ! interface Ethernet0 ip address 192.168.6.1 255.255.255.0 ! interface Serial0 no ip address shutdown ! interface Serial1 no ip address shutdown ! interface Async1 interface Async1 ip address 192.168.7.1 255.255.255.0 ip helper-address 192.168.6.255 encapsulation ppp async mode interactive peer default ip address 192.168.7.9 no cdp enable ppp authentication pap callin ! interface Async2 interface Async2 ip address 192.168.7.2 255.255.255.0 ip helper-address 192.168.6.255 encapsulation ppp async mode interactive peer default ip address 192.168.7.10 no cdp enable ppp authentication pap callin ! ip http server ip classless ip forward-protocol udp 2543 ip route 192.168.6.0 255.255.255.0 Ethernet0 ip route 192.168.7.9 255.255.255.255 Async1 ip route 192.168.7.10 255.255.255.255 Async2 no logging console access-list 101 permit ip any any access-list 101 deny igrp any host 255.255.255.255 dialer-list 1 protocol ip list 101 ! line con 0 exec-timeout 0 0 line 1 2 autoselect ppp modem InOut transport input all flowcontrol hardware line 3 8 transport input all line aux 0 transport input all line vty 0 4 exec-timeout 0 0 password reftek login ! end For more information about RTP consult the RefTek Protocol Manual.
CONFIGURING RTPD SERVER
More information about installing and troubleshooting RTPD can be found in the RTPD Installation and Users Guide Manual. 1. Windows NT 4.0 To configure the RTPD server as a Windows NT 4.0 service, copy the service executable rtpudpsvc.exe and the startup file rtpd.ini from the utils/winnt directory to, for example, c:\reftek. Edit the rtpd.ini file to reflect local customizations (for example, directory names, etc) then execute the following commands to install this program as a service: c: cd \reftek svcins rptd_service "RefTek Data Server" c:\reftek\rtpudpsvc.exe The RTPD service can now be controlled like any other NT service, using the Services icon within the Control Panel. 2. Solaris 2.6 o Copy the rtpd binary from the utils/solaris directory to whatever directory you find convenient, and make sure it is setuid as the user you want it to run as. This example assumes user "root", with executables in /usr/local/bin. In that case you would copy rtpd to /usr/local/bin and execute the following commands: chown root /usr/local/bin/rtpd chmod 4555 /usr/local/bin/rtpd o Copy the rtpd.ini file from solaris/winnt to, for example, /usr/local/etc directory and make any local customizations to it. The Solaris version of the file is identical to the NT version, with the exception that path names are different. You also have the choice of using the syslog logging facility. Suppose you want to use syslog. Then select a facility and give it in the ini file like: Facility LOCAL6 Then, edit /etc/syslog.conf and include the following line: local6.debug /var/log/local6 Note that it should be a TAB between the two tokens. Create /var/log/local6 and HUP syslogd (as root, kill -HUP ), once to get it to reread the conf file. See syslog.conf(4) and syslogd(1M) for additional information. o Copy the startup script utils/solaris/rtpd_init to /etc/init.d and make sure that it is executable (mode 544) and owned by root. Change directory names and make any other local customizations. Make the following soft links:: # ln -s /etc/init.d/rtpd_init /etc/rc3.d/S75rtpd_init # ln -s /etc/init.d/rtpd_init /etc/rc2.d/K10rtpd_init # ln -s /etc/init.d/rtpd_init /etc/rc0.d/K10rtpd_init This will cause RTPD to be started automatically at boot time, and to go down gracefully at system shutdown. The following command will manually stop the RTPD server: reftek% /etc/init.d/rtpd_init stop The following command will manually start the RTPD server: reftek% /etc/init.d/rtpd_init start
How to Compile Reftek2ew
In order to build this program, you need to define the following in your earthworm.d file: RAW_RING - transport ring for raw packets from the RTP server MOD_IMPORT_RTP - module id for this process TYPE_REFTEK - message type for raw RTP server packets If you want to assign pin numbers, you will need to define them in a parameter file. See import_rtp.d for the specification syntax, and see reftek.scn for an example. All dialog with the RTP server is done via the Refraction Technology API and libraries. You can get a copy of this toolkit from ftp://ftp.reftek.com:/pub/rtp Install the libraries and include files as per the instructions provided with the toolkit. You will need to specify the installation location in your makefile. See the comments in the makefile appropriate for your system.
Example Configuration File
# @(#)import_rtp.d 1.3 07/01/98 # reftek2ew parameter file # Basic Earthworm setup: MyModuleId MOD_REFTEK2EW # module id for this process WaveRing WAVE_RING # output ring for TRACEBUF messages RawRing RAW_RING # output ring for REFTEK messages HeartBeatInterval 30 # seconds between heartbeats # At least one of WaveRing and RtpRing must be defined. # # If you have selected a WaveRing to output TRACEBUF messages, then it # is necessary to define a mapping between the digitizer, stream, channel # information that is contained in each packet to the station, channel, # net, and pin number that is required by the TRACEBUF messages. There # is no standard way to do this in vanilla Earthworm, therefore import_rtp # defines yet another parameter file. If you don't specify this file, # then import_rtp issues a warning message on start up and then generates # its own names. Station name is the unit id, channel name is built up # from the stream and channel values in the DT header (stream:chan), the # networm name is set to "RTP", and the pin number is set to -1. SCNLFile reftek.scnl # Give the fully qualified host name, or the IP address of the server in # the usual decimal dot notation, followed by the port number for the RTP # service. If you are running this on the same computer as the RTP server, # then specify "localhost" as the host name. Server localhost 7000 # The API allows you to request data from a single, specific, DAS or from # all DAS(es). There is no provision in the API for requesting data from # a subset of the available digitizers. If you want data from a single DAS, # give its unit id here, otherwise enter 0 to select all digitizers. DASid 0 # You may filter the input based on packet type. The following types are # supported: AD CD DS DT EH ET OM SC SH. List the ones you want, or enter # ALL for all available. PktMask ET DT SC # You may filter the DT packets based on stream. List the stream id's you # want to see. The stream codes here are the one-based values that are # used by people, not the zero-based values that are in the headers. StrMask 1 2 3 4 5 6 7 8
EXAMPLE REFTEK2EW DESCRIPTOR FILE
modName reftek2ew modId MOD_REFTEK2EW instId INST_MENLO # tsec: 60 page: 0 mail: 10 # # Uncomment the "restartMe" line to enable automatic restart of this # process by statmgr/startstop. statmgr will issue a TYPE_RESTART # message for this process_id if it declares the patient dead. # restartMe # err: 1 nerr: 1 tsec: 0 page: 0 mail: 20 text: "RTP server OK." # err: 2 nerr: 1 tsec: 0 page: 0 mail: 20 text: "RTP server not responding." # err: 3 nerr: 1 tsec: 0 page: 0 mail: 20 text: "no data from RTP server."