Skip to content
Snippets Groups Projects
Commit 9438dbc8 authored by rivers's avatar rivers
Browse files

Copied old iocxxx directory here, vxWorks specific version

parent 027b3514
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
cd ""
< ../nfsCommands
< cdCommands.68K
< MPFconfig.cmd
cd appbin
ld < mpfLib
ld < ipLib
ld < mpfserialserverLib
# Uncomment, as needed.
#ld < mpfgpibserverLib
#ld < dac128VLib
cd startup
#start message router
routerInit
tcpMessageRouterServerStart(1, 9900, Remote_IP, 1500, 40)
< st_mpfserver.cmd
shellPromptSet "iocxxx1> "
# This configures the MPF server stuff
# First carrier
# slot a: IP-Octal (serial RS-232)
# slot b: IpUnidig (digital I/O)
# slot c: Ip330 (A/D converter)
# slot d: Dac128V (D/A converter)
###############################################################################
# Initialize IP carrier
# ipacAddCarrier(ipac_carrier_t *pcarrier, char *cardParams)
# pcarrier - pointer to carrier driver structure
# cardParams - carrier-specific init parameters
# Select for MVME162 or MVME172 CPU board IP carrier.
#carrier1=ipacAddMVME162("A:l=3,3 m=0xe0000000,64;B:l=3,3 m=0xe0010000,64;C:l=3,3 m=0xe0020000,64;D:l=3,3 m=0xe0030000,64")
# Select for SBS VIPC616-01 version IP carrier.
carrier1=ipacAddVIPC616_01("0x3000,0xa0000000")
###############################################################################
# Initialize Octal UART stuff
tyGSOctalDrv 1
tyGSOctalModuleInit("GSIP_OCTAL232", 0x80, 0, 0)
# int tyGSMPFInit(char *server, int uart, int channel, int baud, char parity, int sbits,
# int dbits, char handshake, char *eomstr)
tyGSMPFInit("serial1", 0, 0, 9600,'N',2,8,'N',"") /* SRS570 */
tyGSMPFInit("serial2", 0, 1,19200,'E',1,8,'N',"") /* MKS */
tyGSMPFInit("serial3", 0, 2, 9600,'E',1,7,'N',"") /* Digitel */
tyGSMPFInit("serial4", 0, 3, 9600,'N',1,8,'N',"") /* MPC */
tyGSMPFInit("serial5", 0, 4, 9600,'E',1,7,'N',"") /* McClennan PM304 */
tyGSMPFInit("serial6", 0, 5,19200,'N',1,8,'N',"") /* Keithley 2000 */
tyGSMPFInit("serial7", 0, 6, 9600,'N',1,8,'N',"") /* Oxford ILM cryometer */
tyGSMPFInit("serial8", 0, 7,19200,'N',1,8,'N',"") /* Love controllers */
# Initialize Greenspring IP-Unidig
# initIpUnidig(char *serverName,
# int carrier,
# int slot,
# int queueSize,
# int msecPoll,
# int intVec,
# int risingMask,
# int fallingMask,
# int biMask,
# int maxClients)
# serverName = name to give this server
# carrier = IPAC carrier number (0, 1, etc.)
# slot = IPAC slot (0,1,2,3, etc.)
# queueSize = size of output queue for EPICS
# msecPoll = polling time for input bits in msec. Default=100.
# intVec = interrupt vector
# risingMask = mask of bits to generate interrupts on low to high (24 bits)
# fallingMask = mask of bits to generate interrupts on high to low (24 bits)
# biMask = mask of bits to generate callbacks to bi record support
# This can be a subset of (risingMask | fallingMask)
# maxClients = Maximum number of callback tasks which will attach to this
# IpUnidig server. This
# does not refer to the number of EPICS clients. A value of
# 10 should certainly be safe.
initIpUnidig("Unidig1", 0, 1, 20, 2000, 116, 1, 1, 0xffff, 10)
# Initialize Acromag IP-330 ADC
# initIp330(
# const char *moduleName, int carrier, int slot,
# const char *typeString, const char *rangeString,
# int firstChan, int lastChan,
# int maxClients, int intVec)
# moduleName = name to give this module
# carrier = IPAC carrier number (0, 1, etc.)
# slot = IPAC slot (0,1,2,3, etc.)
# typeString = "D" or "S" for differential or single-ended
# rangeString = "-5to5","-10to10","0to5", or "0to10"
# This value must match hardware setting selected
# firstChan = first channel to be digitized. This must be in the range:
# 0 to 31 (single-ended)
# 0 to 15 (differential)
# lastChan = last channel to be digitized
# maxClients = Maximum number of Ip330 tasks which will attach to this
# Ip330 module. For example Ip330Scan, Ip330Sweep, etc. This
# does not refer to the number of EPICS clients. A value of
# 10 should certainly be safe.
# intVec Interrupt vector
initIp330("Ip330_1",0,2,"D","-5to5",0,15,10,120)
# configIp330(
# const char *moduleName,
# int scanMode, const char *triggerString,
# int microSecondsPerScan, int secondsBetweenCalibrate)
# moduleName = name of module passed to initIp330 above
# scanMode = scan mode:
# 0 = disable
# 1 = uniformContinuous
# 2 = uniformSingle
# 3 = burstContinuous (normally recommended)
# 4 = burstSingle
# 5 = convertOnExternalTriggerOnly
# triggerString = "Input" or "Output". Selects the direction of the external
# trigger signal.
# microSecondsPerScan = repeat interval to digitize all channels
# The minimum theoretical time is 15 microseconds times the
# number of channels, but a practical limit is probably 100
# microseconds.
# secondsBetweenCalibrate = number of seconds between calibration cycles.
# If zero then there will be no periodic calibration, but
# one calibration will still be done at initialization.
configIp330("Ip330_1", 3,"Input",500,0)
# initIp330Scan(
# const char moduleName, const char *serverName, int firstChan, int lastChan,
# int queueSize)
# moduleName = module name passed to initIp330 above
# serverName = name to give this server. Must match the INP parm field in
# EPICS records
# firstChan = first channel to be used by Ip330Scan. This must be in the
# range firstChan to lastChan specified in initIp330
# lastChan = last channel to be used by Ip330Scan. This must be in the range
# firstChan to lastChan specified in initIp330
# queueSize = size of output queue for MPF. Make this the maximum number
# of ai records attached to this server.
initIp330Scan("Ip330_1","Ip330Scan1",0,15,100)
# initIp330Sweep(char *moduleName, char *serverName, int firstChan,
# int lastChan, int maxPoints, int queueSize)
# moduleName = module name passed to initIp330 above
# serverName = name to give this server
# firstChan = first channel to be used by Ip330Sweep. This must be in the
# range firstChan to lastChan specified in initIp330
# lastChan = last channel to be used by Ip330Sweep. This must be in the
# range firstChan to lastChan specified in initIp330
# maxPoints = maximum number of points in a sweep. The amount of memory
# allocated will be maxPoints*(lastChan-firstChan+1)*4 bytes
# queueSize = size of output queue for EPICS
initIp330Sweep("Ip330_1","Ip330Sweep1",0,3,2048,100)
# initIp330PID(const char *serverName,
# char *ip330Name, int ADCChannel, dacName, int DACChannel,
# int queueSize)
# serverName = name to give this server
# ip330Name = module name passed to initIp330 above
# ADCChannel = ADC channel to be used by Ip330PID as its readback source.
# This must be in the range firstChan to lastChan specified in
# initIp330
# dacName = server name passed to initDAC128V
# DACChannel = DAC channel to be used by Ip330PID as its control output. This
# must be in the range 0-7.
# queueSize = size of output queue for EPICS
initIp330PID("Ip330PID1", "Ip330_1", 0, "DAC1", 0, 20)
# Initialize Systran DAC
# initDAC128V(char *serverName, int carrier, int slot, int queueSize)
# serverName = name to give this server
# carrier = IPAC carrier number (0, 1, etc.)
# slot = IPAC slot (0,1,2,3, etc.)
# queueSize = size of output queue for EPICS
#
initDAC128V("DAC1", 0, 3, 20)
#
# Macro Descriptions
#
# stats.db:
#
# P = first part of PV names.
# HMM = HOPR field of Maximum Free Memory Block (unit is bytes)
# WMM = LOW field of Maximum Free Memory Block
# AMM = LOLO field of Maximum Free Memory Block
# HCP = HOPR field of CPU Load (unit is %)
# WCP = HIGH field of CPU Load
# ACP = HIHI field of CPU Load
# HCL = HOPR field of CA Client count
# WCL = HIGH field of CA Client count
# ACL = HIHI field of CA Client count
# HCX = HOPR field of CA Connection count
# WCX = HIGH field of CA Connection count
# HCX = HIHI field of CA Connection count
# HFD = HOPR field of Available File Descriptor count
# WFD = LOW field of Available File Descriptor count
# AFD = LOLO field of Available File Descriptor count
# WMB = LOW field of % Free MBufs
# AMB = LOLO field of % Free MBufs
#
# reboot.db:
#
# P = first part of PV names.
# T = time in seconds that reboot enable stays high after button push.
#
# ClusterLine.template:
#
# P = first part of PV names.
# PO = pool (0 = Data, 1 = System)
# SI = size index (first size is index 0)
# SC = SCAN field content
#
file "$(VXSTATS)/db/stats.template"
{
{P=xxx:,
HMM=50000000,WMM=500000,AMM=100000,
HCP=100,WCP=50,ACP=80,
HCL=200,WCL=100,ACL=175,
HCX=2000,WCX=1000,ACX=1750,
HFD=150,WFD=20,AFD=5,WMB=50,AMB=10}
}
file "$(VXSTATS)/db/reboot.template"
{
{P=xxx:,T=3}
}
file "$(VXSTATS)/db/ClusterLine.template"
{
{P=xxx:,PO=0,SI=0,SC="10 second"}
{P=xxx:,PO=0,SI=1,SC="10 second"}
{P=xxx:,PO=0,SI=2,SC="10 second"}
{P=xxx:,PO=0,SI=3,SC="10 second"}
{P=xxx:,PO=0,SI=4,SC="10 second"}
{P=xxx:,PO=0,SI=5,SC="10 second"}
{P=xxx:,PO=0,SI=6,SC="10 second"}
{P=xxx:,PO=0,SI=7,SC="10 second"}
{P=xxx:,PO=1,SI=0,SC="10 second"}
{P=xxx:,PO=1,SI=1,SC="10 second"}
{P=xxx:,PO=1,SI=2,SC="10 second"}
{P=xxx:,PO=1,SI=3,SC="10 second"}
{P=xxx:,PO=1,SI=4,SC="10 second"}
{P=xxx:,PO=1,SI=5,SC="10 second"}
{P=xxx:,PO=1,SI=6,SC="10 second"}
{P=xxx:,PO=1,SI=7,SC="10 second"}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment