Closed prjemian closed 3 years ago
iocxxx> dbpr xxx::TIMEZONE, 9
ACKS: NO_ALARM ACKT: YES APST: On Change ASG :
ASP : PTR (nil) BKLNK: ELL 0 [(nil) .. (nil)] BKPT: 00
DESC: EPICS_TIMEZONE DISA: 0 DISP: 0
DISS: NO_ALARM DISV: 1 DPVT: PTR (nil)
DSET: PTR 0x7f9657583440 DTYP: IOC epics var EVNT:
FLNK: CONSTANT INP : INST_IO @EPICS_TIMEZONE LCNT: 0
LSET: PTR 0x5631fa24d560 MLIS: ELL 0 [(nil) .. (nil)]
MLOK: f0 16 2f fa 31 56 00 00 MPST: On Change NAME: xxx::TIMEZONE
NSEV: NO_ALARM NSTA: NO_ALARM OLDSIMM: NO OVAL:
PACT: 0 PHAS: 0 PINI: YES PPN : PTR (nil)
PPNR: PTR (nil) PRIO: LOW PROC: 0 PUTF: 0
RDES: PTR 0x5631f9aa2340 RPRO: 0
RSET: PTR 0x7f965707ac60 SCAN: Passive SDIS: CONSTANT
SDLY: -1 SEVR: NO_ALARM SIML: CONSTANT SIMM: NO
SIMPVT: PTR (nil) SIMS: NO_ALARM SIOL: CONSTANT SPVT: PTR (nil)
SSCN: <nil> STAT: NO_ALARM SVAL:
TIME: 2021-05-13 18:24:18.330057747 TPRO: 0 TSE : 0
TSEL: CONSTANT UDF : 1 UDFS: INVALID VAL :
iocxxx> dbgf xxx::TIMEZONE.INP
DBF_STRING: "@EPICS_TIMEZONE"
To (choose a value and) set EPICS_TZ
, see https://epics.anl.gov/base/R3-15/8-docs/RELEASE_NOTES.html, which says:
The default value for the
EPICS_TZ
environment parameter is set in the Baseconfigure/CONFIG_SITE_ENV
file, which contains example settings for most EPICS sites that use VxWorks, and a link to a page describing the Posix TZ format for any locations that I missed.
Here is the relevant text from that file:
## Time service:
# EPICS_TZ
# Local timezone rules for vxWorks and RTEMS. The value follows the Posix
# TZ environment variable's Mm.n.d/h format (see the IBM link below for
# details). If TZ hasn't already been set when the osdTime timeRegister()
# C++ static constructor runs, this parameter will be copied into the TZ
# environment variable. Once the OS clock has been synchronized to NTP the
# routine tz2timezone() will be run to convert TZ into the TIMEZONE
# variable format that VxWorks needs.
# https://developer.ibm.com/articles/au-aix-posix/
# Japan Standard Time, no DST:
#EPICS_TZ = "JST-9"
# Central European (Summer) Time:
#EPICS_TZ = "CET-1CEST,M3.5.0/2,M10.5.0/3"
# Greenwich Mean/British Summer Time:
#EPICS_TZ = "GMT0BST,M3.5.0/1,M10.5.0/2"
# US Eastern Standard/Daylight Time:
#EPICS_TZ = "EST5EDT,M3.2.0/2,M11.1.0/2"
# US Central Standard/Daylight Time:
EPICS_TZ = "CST6CDT,M3.2.0/2,M11.1.0/2"
# US Mountain Standard/Daylight Time:
#EPICS_TZ = "MST7MDT,M3.2.0/2,M11.1.0/2"
# US Pacific Standard/Daylight Time:
#EPICS_TZ = "PST8PDT,M3.2.0/2,M11.1.0/2"
# US Hawaiian Standard Time, no DST:
#EPICS_TZ = "HST10"
from epicsPrtEnvParams
:
iocxxx> epicsPrtEnvParams
EPICS_CA_ADDR_LIST is undefined
EPICS_CA_CONN_TMO: 30.0
EPICS_CA_AUTO_ADDR_LIST: YES
EPICS_CA_REPEATER_PORT: 5065
EPICS_CA_SERVER_PORT: 5064
EPICS_CA_MAX_ARRAY_BYTES: 64010
EPICS_CA_AUTO_ARRAY_BYTES: YES
EPICS_CA_MAX_SEARCH_PERIOD: 300.0
EPICS_CA_NAME_SERVERS is undefined
EPICS_CA_MCAST_TTL: 1
EPICS_CAS_INTF_ADDR_LIST is undefined
EPICS_CAS_IGNORE_ADDR_LIST is undefined
EPICS_CAS_AUTO_BEACON_ADDR_LIST is undefined
EPICS_CAS_BEACON_ADDR_LIST is undefined
EPICS_CAS_SERVER_PORT is undefined
EPICS_CA_BEACON_PERIOD: 15.0
EPICS_CAS_BEACON_PERIOD is undefined
EPICS_CAS_BEACON_PORT is undefined
EPICS_BUILD_COMPILER_CLASS: gcc
EPICS_BUILD_OS_CLASS: Linux
EPICS_BUILD_TARGET_ARCH: linux-x86_64
EPICS_TZ: CST6CDT,M3.2.0/2,M11.1.0/2
EPICS_TS_NTP_INET is undefined
EPICS_IOC_IGNORE_SERVERS is undefined
EPICS_IOC_LOG_PORT: 7004
EPICS_IOC_LOG_INET is undefined
EPICS_IOC_LOG_FILE_LIMIT: 1000000
EPICS_IOC_LOG_FILE_NAME is undefined
EPICS_IOC_LOG_FILE_COMMAND is undefined
IOCSH_PS1: iocxxx>
IOCSH_HISTSIZE: 50
IOCSH_HISTEDIT_DISABLE is undefined
In the docker image, the substitutions file is not called, only iocStats-3-1-16/db/iocAdminSoft.db
. In that file, change EPICS_TIMEZONE
to EPICS_TZ
.
Hi @prjemian, thanks for writing up this issue. I was just trying to fix it in my own containers and this really helped. See https://github.com/epics-containers/ibek-support/blob/3f69380c62bfade750e67184c71d0c2f9b14f034/iocStats/install.sh#L26-L27
I'm not clear as to why this template is still wrong in the very latests version of iocStats that I'm using?
on iocInit