RediGate 100 Tarball Update History

Change Log

2019-05-17-1400 JPL     SHA-256 checksum: 4600CDA308A3C1A83AE5611C9A1663B5548E79DD5442CBCC1F58A53C723860A0
DirectorMMI : If New Banner then Check4 Reconfigure
AutoProc : Report Table Loop via LastEvtColumn / Jump2 LastEvtColmn
JSON_Rbe : Use GMT/UTC time instead of localtime in CSV files
CellLEDs : Problem if not UBLOX or if CoreMSQID == 0

2019-04-04-1000 JPL
UMUX : Disable UBLOX Power Save Mode which potentially could prevent
: Inbound connections
JSON_Rbe : Changed from PRIORITY_HIGH-33 to PRIORITY_HIGH-397
cellmodem.tcl : From JPT. I had forgotten to include this file.
CellLEDs : Try twice with AT+UGPS=1,0,3 for basic satellites

2019-03-28-1700 JPL
enize : OpenSSL aes-cbc-128 encryption loads faster
ROCMast : Fuller support of TypePnt-99 (Tables 0 - 15) Configurable
: OpCodes 10/11 reading and writing
CirrusRBE : AutoProc report is published as a SpkPlg-B RBE TextString
SpkPlgRBE : Ditto
DirectorMMI : Can view StornFwd-CSV files from /tmp/sdcard1/SNF*/*.csv
CellLEDs : Can process GPS information from SARA-R4 modem, might take
: up to two minutes to get SARA GPS activated
JSON_Rbe : Better processing of historical CSV files

2019-02-22-1000 JPL
JSON_Rbe : Better Support of processing Subscribed Long/Short-Strings
: Don't zombie if zero RTUs are located for RBE processing
AutoProc : Added support of reporting 64bit data.
: Support reading Text Files and Store back to RTDB.
MQRbePr : If IsaGraf/AutoProc issued DeathCertif then block sending
: any new RBE data until IsaGraf/AutoProc force a BirthCertif.
MQXRbePr : Ditto
DirectorMMI : CustomReport option 'A' to alter Source Channel/Rtu dynamicly : Support multiple Ping tests to see if TcpStack needs restarted
start : mount -t vfat -o umask=000 /dev/mmcblk0p1 /tmp/sdcard1/
RediLink-GateJ_configs.tgz : Added default configs for CAT-M1 modems
SosMast : ASCII Modbus hadles LRC errors without crashing
DirectorScan : If not OneBadPoll kills RTU then MS-DOS Epoch Seconds
VirtMast : Latest, Correct RTU_STAT_POLL_DONE/WROTE_DATA
MQisdp : Latest
uff2lnux : UBlox SARA-R410 Verizon and AT&T support w, w/o UMUX
ROCMast : Better processing of Echoed back PARAMETER header bytes

2018-10-24-1600 JPL     SHA-256 checksum: 9BF03CC5E50B64810D215DB448C4A7EEB37295E2691D72D58FEAA4EB41E90D12
  cellmodem.tcl : Support for SARA-R4 modems
  RediLink-Gate_configs.tgz : For testing purposes
  DirectorMMI   : System Services Option-15 (Cellmodem Diags) improved
  bootdelay     : Grep for Bootloader in process table to start
  uff2lnux      : Swapped Count and Formant in Process Reports table.
                : Register Offset is now a SINT32 integer from UINT16

2018-10-13-1300 JPL
  SosMast       : ASCII Modbus got into infinite loop if Reply too short
  ModMast       : ditto

2018-10-10-1500 JPL
  bootdelay     : If interrupt :36 (ttyS0) is changing then wait up to 1.5
                : minutes (15 seconds each) for 'user/user' or root login
  SosMast       : ASCII-Modbus was crashing due to LRC errors
  ModMast       : ASCII-Modbus was crashing due to LRC errors
  uff2lnux      : Ublox SARA-410 Verizon and AT&T support w, w/o UMUX
  UMUX          : Newest
  DirectorMMI   : Reverse video help text for Modem AT Commands
  dir_tool      : Corrected format for UINT32 in RC_LIST, RJ_LIST
  gwutl         : JPT updated some error messages     : Ditto
  NetworkMonitor: Ditto
  JSON_Rbe      : Latest
  ROCMast       : Better processing of Echoed back PARAMETER header bytes
  VirtMast      : Latest

2018-09-06-1000 JPL
  ROCMast       : More reply validation for certain OpCodes
  hex2bin       : for base64 encryption (--to64 --from64 --tohex)     : JPT Background Utility updated
  NetworkMonitor: JPT Startup script updated
  VirtMast      : ENGINEERING_SCALE function
  ModMast       : Preliminary 64bit data reading w/o write
  SosMast       : Ditto
  JSON_Rbe      : Cleaned up Historical File searching for multiple days
  dir_tool      : produces output if "dir_tool -1 -1 DS" searches all RTUs list
  uff2lnux      : Network Monitor support changes. AutoProcess objects.
  TClient       : If iPort > 3 then use iPort+4 for /dev/ttyS8 to ttyS10
  DirectorMMI   : RPN-Calculator Option-'FF' Double-Hex and Hex-Double

2018-08-07-0800 JPL
  uff2lnux      : Removed some support for Sangoma
  VirtMast      : New POD function for Engineering Scaling

2018-07-24-0900 JPL
  DirectorMMI   : Option-21 (New CSV Start Time) has correct Month
  CirrusRBE     : Processes HeaderOnly CSV files correctly
  uff2lnux      : JPT Network Monitor
  NetworkMonitor: Initial JPT Script
  start         : added "NetworkMonitor restart" as last line
  gwutl         : JPT Gateway Utility script
  dir_tool      : Latest     : JPT Background Network Monitor Script

2018-06-18-0900 JPL
  JSON_Rbe      : Support for 64bit Timestamps. Intelligent searching for
                : all MaxDays of StoreFwd CSV files and not just last two days.
  CirrusRBE     : Ditto. Service mosquitto_loop() callback during searching.
  SpkPlgRBE     : Force UNDERSCOREs into RtuName. Implement ReconnectDelay.
  StoreFwd      : Don't compress CSV files. Don't create a merge of last 2
                : days of CSV files but instead notify RBE processes of Channl
                : and RTU and MaxDays and they will locate CSV files.
                : If Pacing=0 seconds then Millisecond timestamps
  DirectorMMI   : Directory Services Option-21 allows modifying Last CSV times.
  root          : call /etc/init.d/S01setuptimestamp update
  S40crond      : 55 **** /etc/init.d/S01setuptimestamp update
  S01setuptimetamp : Make certain new Time has been achieved
  uff2lnux      : Support for multiple object Network-Monitor object
  MQisdp        : Will adhere better to Reconnect pacing
  dir_tool      : Latest

2018-05-22-1000 JPL : Allow Single Hreg write to >49999 address
  JSON_Rbe      : Allow long ${GATEWAY} name
  uff2lnux      : Allow long ${GATEWAY} name in JSON Topics
  S15cellmodem  : kill tclsh aded to all cases
  StoreFwd      : Better file management at Midnight, Send today and yesterday
                : data
  TOTFLOMast    : Support for DB-II Data Structures Groups 5,6,7
  MQisdp        : Remove spaces from URL Names and Gateway Name

2018-04-23-1400 JPL
  uff2lnux      : Ctl/Mon-Netwk object, POD Fnc Names 129 to 139
  UffUpdate.txt : Move Mon-Netwk files to /etc/init.d/
  StoreFwd      : If no connection then check for Midnight CSV file names
                : Don't alter Epoch Seconds for Timezone
  TOTFLOMast    : Don't abort POLL/CMD if SendMsg() fails from Broken Pipe

2018-03-29-1100 JPL
  DirectorMMI   : SystServ Option-16 will restart
  CellLEDs      : SKIP was not implemeted
  WesdacMast    : New protocol from Plains

2018-03-13-1400 JPL
  JSON_Rbe      : I did not have enough verification that the MQttClient's
                : QUE buffer was not full.
  uff2lnux      : Latest     : changed from /etc/password to /etc/passwd for mosquitto
                : and create Harden.003

2018-02-23-1600 JPL
  uff2lnux      : Ublox-SARA-R4 cell modem support
  UffUpdate.txt :, move to /etc/init.d/
  UMUX          : CAT-M modem multiplexer.  Does not use virtual Handshake
                : Only send HDLC payloads of 107 byte, AT+CMUX=0,116,...
                : Requires a constant ping of remote server to allow
                : receiving large downloads.
  S15cellmodem  : if Modem_type=SARA-R4 call /etc/init.d/

2018-02-07-1700 JPL
  SosMast       : If saving File Length to BOOL then only '0' or '1'
  uff2lnux      : Initial support for MeasurementData files
  VirtMast      : Altered some debug levels in FALSE_EXIT and SetOsVal
  StoreFwd      : Change from SPACE to UNDERSCORE in ChannelName
  TOTFLOMast    : Support for UNION data in RAMS Array 152
  JSON_Rbe      : Improved validation of TagName Command searches

2017-12-27-0900 JPL     SHA-256 checksum: A07537F122930A82A958BF5B17F345CA3FCB89EA9048C5469520AA1749D88330
  CIPMast       : Don't interpret "FLOTOTAL_100_Press" as "FLOTOTAL[100].Press"

2017-12-12-1100 JPL
  TOTFLOMast    : Commands could get into infinite loop after retries
  JSON_Rbe      : Prevent double/triple publishes after New Broker Connection

2017-11-27-1200 JPL
  TOTFLOMast    : DTYPE_LONG: in ParseReply() was only 2 bytes not 4
                : Include APP Name in Poll Record diagnotics statement      : Get Out Of BootLoader background script (NEW)
  dirprofile    : 5 sec delay if NetLogin during Bootloader, 'start' support
  bootdelay     : Run in background if not running RediGate code
  MQisdp        : Timestamp JSON/dir_tool Subscribe File in /tmp/director/
                : with Milliseconds, receive JSON/dir_tool files up to 3.01 Meg
  JSON_Rbe      : If not connected to broker then check again in 1.25 seconds
                : Immediately deliver RTU RBEs after Gateway Birth/State topics
  CellLEDs      : Allow user to save AT command reply to ANY RTDB Register
  Bootloader    : Option 8 to continue RediGate startup
  uff2lnux      : Enable JSON_Leg0 under Legacy MQisdp

2017-11-08-1300 JPL
  JSON_Rbe      : Device Management by subscribing to File topic with /DEVMAN/
                : will allow subscribed files to stored into /tmp/director/
                : and periodically a script will run to move to /home/director/
  TOTFLOMast    : Added SU G4 LIQ APP and OPERATIONS APP support.
  Ymodem        : Send file names up to 255 bytes, debug to /tmp/ymodem.dbg

2017-11-01-1600 JPL
  CIPMast       : reads all structures with CIP_FRAG_READ
  JSON_Rbe      : ProcessJSON() TagName search was correctly test StringLengths

2017-10-24-1700 JPL
  TOTFLOMast    : Trends app has many programmable type Arrays so use
                : Poll Table RTDB Columns to determine data type in RcvMsgBuf[]
                : System shutdown App support
  CellLEDs      : Remove double quotes from Quoted Strings

2017-10-18-1000 JPL
  TOTFLOMast    : Added Application-ID=8 for RAMS (Alarms) App.

2017-10-11-1100 JPL
  CIPMast       : Support for 64-bit "LINT" data types from L5X-Tool
                : L5K2Csv.exe tool supports PID and ALARM_DIGITAL PDTs
  CirrusRBE     : Search for "/SNFCC_RRRRR/" in CSV file name Chan_RTU
  SpkPlbRBE     : CMD_MOD_STAT was corrupting messaging from _fGotModStat
  StoreFwd      : Remove Spaces from CSV File Names

2017-10-09-1600 JPL
  S92redigate   : usleep 1000000 from sleep 1
  SpkPlgRBE     : 30 second startup delay

2017-10-05-0800 JPL
  TOTFLOMast    : Eleminated many usleep()s and some diagnostics to speed comms
  JSON_Rbe      : Created a 30 'do nothing' delay to allow field data to arrive
                : ${GATEWAY} Birth has Code-MD5SUM.txt, HW_Serial_Number
  uff2lnux      : S03emux 'usleep 1100000'. TotalFlowMast Protocol 271 adds
                : SlotNumber, StationName[11] and ${SLOT} replacement in
                : Vectors X.Y.ZZ as only Vector-X
  CirrusLink    : Latest

2017-09-27-1400 JPL
  CirrusRBE     : Better search/match of Command TagName from pRtu->pabTagNames
                : Support Option-17 MQtt Status
  SpkPlgRBE     : If DNS 'ping' fails then simply netstat -n |grep 1883 |ESTAB
                : Support MQttCommsStat and WalkBroker
  CellLEDs      : New version number (1.9) for CellLEDs
  uff2lnux      : TOTFLOMast can have new SlotNumber and StationName override
                : S03emux uses 'usleep 900000' up from 'usleep 500000'
  TOTFLOMast    : Protocol 271 can have SlotNumber,StationName override and
                : and Vector-Z replacement with ${SLOT}
  DirectorMMI   : Option 17 MQtt Status looks for 'SpkPlgRBE0', WalkTable too.
  JSON_Rbe      : Better search/match of rcv-TagNames from pRtu->pabTagNames

2017-08-24-1000 JPL
  uff2lnux      : Multiple SpkPlgRBE? instances, new ACE Structure
  StoreFwd      : Look for SpkPlgRBE? instances, new ACE Structure
  CIPMast       : Manually entered MultiLevel UDT Tags supported for single
                : elements such as PIC_100.PV.HIHI.LIMIT as REAL32
  MQRbePr       : Latest
  MQXRbePr      : Latest
  CellLEDs      : Release malloc() memory and close /dev/acscomm?? port
  CirrusRBE     : If cannot connect to broker release malloc() memory and
                : after being killed. Don't alway send DBIRTH at startup
  TOTFLOMast    : Native TCP/IP comms.
  Xml2uff       : UINT16LIST word count was not correct
  dirprofile    : added /sbin to export PATH=...

2017-08-07-1200 JPL
  uff2lnux      : Support for MultiRBE SparkPlugRBE
  VirtMast      : JSON_TRAP with correct Register Range Limit based on 'Count'
  JSON_Rbe      : No RBE Topics DiagMessage(Level-4). AWS Historical payload
                : SUB_TOPIC_TO_RTDB versus to Protocol
  SpkPlgRBE     : Control process for CirrusRBE
  CirrusRBE     : Multiple RTU Support, control subscriptions of CMDs
  StoreFwd      : If SpkPlgB_EZ not found then look for SpkPlgRBE instead
  TOTFLOMast    : HoldingRegs APP has unknown DTYPE_??? to use whatever
                : DTYPE_ associated inside the RTDB when DATA_SET_FORMATTED
  Bootloader    : changed from "dctr" uff header marker to "drct"

2017-07-24-1300 JPL
  VirtMast      : New Poll 'Source Type' -> JSON COMMAND TRAP
  JSON_Rbe      : Accept DATA_SET_FORMATTED from VirtMast JSON_CMD_TRAP
                : to enable a 'command' publish topic to Remote Device
                : Process replacement ${REG@xxxxx} with Strings from RTDB
                : Registers @ 'xxxxx' (e.g. 49001) into Topics
                : Convert <CR><LF><TAB> chars to <SPACE> for Wonderware
  StoreFwd      : Some Diagnostic changes. Dynamically locate starting RBE
                : register instead of the required Coil 0001 in the RTDB
  Xml2uff       : Allow *.xml.gz files names from 128 to 256 bytes
  CirrusLink    : Channel Number was not being read from config file
                : Double send Birth Certificates because of issues in DNS
                : with DHCP after pulling the RJ-45 Ethernet cable
  SpkPlgEZ      : If DNS connection to Broker then ping test for only
                : 4 seconds and then ping failure can force MQtt shutdown

2017-07-14-0900 JPL
  bacnet4linux  : 1st time included
  html/*.png    : Suport icons for bacnet4linux
  JSON_Rbe      : Optimized Diagnostic messages
  uff2lnux      : removed a printf() statement
  start         : Added check for ../config/init.arcom/
  BACnetIpMast  : Removed SOS TABLE Count

2017-06-29-1200 JPL
  JSON_Rbe      : ${CHAN}, ${RTU}, ${DEV} replacement. PUB/SUB Topics for
                : Device, Gateway, STATE, File(History?)
  MQisdp        : ${SERIAL} and ${GATEWAY} as ClienID/Login, 256 char Topics
  uff2lnux      : ${SERIAL} and ${GATEWAY} as MQttClient Replacements
  RbePush       : Complicated technique for selecting individual RBE flags
                : or All RBE flags, User configures number of Seconds interval
  CellLEDs      : Prevent /tmp/director/TIME.GPS from getting large
  MQRbePr       : Topics up to 256 bytes, Publish TagNames w/o RETAIN but
                : after every Gateway/Birth message
  StoreFwd      : Monitor MQisdpX[0,1], Send CSV file name to JSON_Rbe[0,1]

2017-06-16-1800 JPL
  uff2lnux      : MQisdpX? replacement for ${REDIGATE}, ${DIRECTOR} ${GROUP}
  RbePush       : Rotate through all four RBE Flags (0-3) each Interval

2017-06-14-0900 JPL
  CellLEDs       : If no AT-Cmds then only regular AT+CSQ
  uff2lnux       : S03emux killall -SIGINT CellLEDs ; usleep 50000
  MQRbePr        : Latest
  MQisdp         : ${UUID}, ${DIRECTOR}, ${GROUP}, replacements, one less retry
  VirtMast       : Latest
  SpkPlgEZ       : Latest
  CirrusLink     : Historical data
  StoreFwd       : Delivery via SpkPlgEZ
  DirectorScan   : IsaGraf/PODs could not set unpolled RTUs ALIVE

2017-06-05-1800 JPL
  MQRbePr        : Publish TagNames WITHOUT 'Retain' flag

2017-06-02-1000 JPL
  MQRbePr        : Publish TagNames after EVERY Director-BIRTH

2017-05-11-0900 JPL
  uff2lnux       : StoreForward support, Space-to-Underscore in TagNames
  StoreFwd       : Beta Release with limited support
  start          : Kill all DirectorMMI if more than 2
  VirtMast       : Latest
  DirectorPLC    : updated SIGPIPE Handler
  DirectorMMI    : View /tmp/sdcard1/SNF??_??????/Channel~Rtu~Date.csv files
  dir_tool       : if "dir_tool -1 -1 DS" then output all Channels/RTUs
  ModMast        : BP Olympic 32bit reads checks RTDB to see if DTYPE_SHORT vs
                 : DTYPE_LONG and pack accordingly
  MQRbePr        : CMD_MOD_STAT returns MQtt Connection state to StoreFwd
  CirrusLink     : Latest BETA (should get mosquitto.tgz installed) : Required for CirrusLink
  mosquitto.conf : For mosquitto server loaded later
  mosquitto_pub  : command line tool for MQtt publishing to a broker
  mosquitto_sub  : command line tool for MQtt subscribing from a broker
  Harden.002     : emulation of "adduser mosquitto" creates /home/mosquitto/

2017-04-10-1000 JPL
  CellLEDs       : Trap SIGINT signal for msgctl(IPC_RMID) and exit
                 : Flash Signale Quality even if PPP not running
  S92redigate    : killall -SIGINT CellLEDs 2> /dev/null
  CirrusLink     : SparkPlug-B EZ protocol for delivering RBEs to Ignition
  SpkPlgEZ       : Controller of standalone CirrusLink
  uff2lnux       : Handles SparkPlugB-EZ ACE Object, empty TagNames handled
  ModSlave       : Add SIGCHLD support so system() call to close serial port
                 : won't cause Zombie
  OmronFINSMast  : Timers/Counter, Expanded DM.
  VirtMast       : String Comparisons return INTEGERs (0,-1), not STRING
                 : Get_Time to INT32 get Epoc-Seconds plus INT32+1 has mSec

2017-03-27-1000 JPL
  ROCMast        : ROC 800 support for new customers
  uff2lnux       : SparkPlugB-EZ support

2017-03-15-1100 JPL
  xmlupdate      : was creating $ConfigName.xml.xml.gz?
  MELSECMast     : Initial release
  OmronFINSMast  : From 2012 but first 3.12 Linux release

2017-03-09-1500 JPL
  RediLink-GateJ_cofigs.tgz : From JTandy
  uff2lnux       : Was not handling Dirupld password correctly if DIRUPLD_PASS

2017-03-08-1100 JPL
  SRTPMast       : Sourc Port set from 17000 to 17259 for old GE PLCs
  VirtMast       : Multiple changes to DataLogger (TagNames in Header,
                 : and gaps in Data Addresses allowed)
  ModMast        : PassThru more logic for Modbus aware
  DirectorWdog   : umount /tmp/sdcard1/ and /tmp/usb1/ at reboot
  xmlupldate     : Problem.txt if multiple *.xml.gz files /home/director,Dirupld
  UdpHandler     : Enable SEND message if Byte[4,5] matches MsgSize

2017-02-22-1000 JPL
  xmlupdate      : echo *.xml.gz and * >> /home/*/AceConfigname.txt

2017-02-20-1400 JPL
  VirtMast       : Newest
  ModSlTcpd      : Newest
  DirectorMMI    : Newest
  DnpSlave       : Allow faster command processing
  ModMast        : PassThru is Modbus Aware, ignore spurious bytes
  ModSlave       : Close serial port after CMD_TERMINATE
  MQisdp         : Newest
  MQRbePr        : Newest
  SRTPMast       : Force SourcePort from Random>32k to 17000 to 17259
  TClient        : Close serial port after CMD_TERMINATE
  RediLink-Gate_configs.tgz : From Jon Tandy

2017-01-30-1700 JPL
  uff2lnux       : TagNams DOTs to SLASHs, 2 or more TagNames/Channel
  CIPMast        : RegstSesn setup at least 60 second idle timer
  VirtMast       : GetRTUSTATUS works, all polls normally SUCCESSFULL
                 : VirtMast correctly rejects LOW_PRIORITY Cmd(MSG_REPLY) or
                 : iCmdRespMSQID==MSQID_INVALID
  dir_tool       : Add 100 to Channel-Param to keep original file in
                 : PF (publish-file) command

2016-12-30-0900 JPL
  CIPMast        : More uninitialized variables set to zero
                 : Extend CIP Timeout form 10 to 60 seconds?
  CustUtil_NAT_5 : RS-Linx NAT'd through OpenVPN's tun0 interface

2016-12-29-1000 JPL
  customer       : DIRUPLD_PASSWD=1, IM_IGNORE_QUALITY=0
  CIPMast        : Uninitialized wStat in UpdateMultiRtdb() and added
                 : "else if(pPoll->uSkipTest == SKIP_NO_SAVE )"
  uff2lnux       : latest
  DirectorMMI    : Latest
  TOTFLOMast     : Latest
  VirtMast       : POD_QUALITYREG to set to BAD Quality, All Polls successful
  UdpHandler     : Ported to XSCALE ARM
  dir_tool       : Latest

2016-11-02-1700 JPL
  customer       : BASH_USES_TILDE=1
  uff2lnux       : Subscriptions RBE-Data precedes RBE-RTU-BIRTH certificate
  MQRbePr        : ditto, Blocking data issue in P66
  MQisdp         : Newest
  start          : Quotes around *.XML.gz and in MyFileFileLink()
  DirectorMMI    : Last register in RTDB for Custom Report bug
  DirectorXDBM   : Rbe Data Blocks issue from P66
  CIPMast        : Newest requiring latest L5ktoCSV.exe
  TOTFLOMast     : Support for over 19 Applications

2016-09-15-0900 JPL
  uff2lnux       : MQRbePr Filter list was blocking "STATE/MQttHost"
  MQRbePr        : More cfg startup diagnostics
  start          : changed from "S92redilink restart" to "S92redigate restart"

2016-09-09-1000 JPL (Removed CmdLine tool)
  RediLink-Gate-configs.tgz : From J.T. for RediGate/Link Model detection
  DirectorPLC    : Did not actually get newest code copied

2016-08-30-1600 JPL
  RediLink-Gate-configs.tgz : From Jon Tandy, new script makes Cfg.xml.gz
  CIPMast        : Read/Write Bit Arrays[]
  DirectorPLC    : SouthernStar's SSGenerateReport.c was not newest

2016-08-26-1300 JPL
  RediLink-Gate-configs.tgz : From Jon Tandy
  DirectorPLC    : SouthernStart MqFile C-Func-Block system() bug
  CIPMast        : Latest
  SRTPMast       : Newest with EnronMap flag
  Bootloader     : put 'rdgt' in UFF Header
  .profile       : just in case .bash_profile is not located

2016-08-16-1500 JPL
  MQisdp         : Newest with ${DIRECTOR} ${HCP_ID} support in LastWillTopic
  MQRbePr        : Latest, DiagLog() with uRtuIndex
  uff2lnux       : More TagName fixes
  DirectorMMI    : Longer TagNames in CustomReports
  DirectorPLC    : PC-104 only on Director-Z4 not RediGate 1xx
  CellLEDs       : REmoved some diags
  VirtMast       : Latest, Diags with |0x10
  CIPMast        : First issue
  ModMast        : Newest
  DF1Mast        : Newest
2016-06-15-1300 JPL
  S92cellmodem   : added 'cd /usr/director/bin/' at top
  CellLEDs       : If cannot find _lRootId don't use 'dir_tool' either
  S91Director    : rm /usr/director/bin/CoreMSQID for CellLEDs detection
  TarUpdate.txt  : Move S91Director to /etc/init.d/

2016-06-14-1600 JPL
  keeproutes     : static route -host if via 'dev ppp0'
  DirectorMMI    : Newest, ONLINE/offline
  RediLink-Gate_configs.tgz : Newest
  HartMast       : Was missing
  uff2lnux       : Support for OpenConnect, TotalFlowDB-2
                 : REDIGATE_400=1, ${GROUP}, ${DIRECTOR} process in MQttClient
                 : LastWillTopic property, OpenConnect
  MQisdp         : Delay between connections between brokers, **URL_Name[24]
  MQRbePr        : Supports STATE/HcpID topic logic
  ModMast        : Newest
  DirectorScan   : Make two complete passes of Scan Table before marking ALIVE
  start          : enable/disable RS-485 terminating resistor
                 : Move *.XML.gz to /home/director/, . xmlupdate
                 : rm /usr/director/bin/CoreMSQID at top of script
  xmlupdate      : From RediGate-400
  Xml2uff        : From RediGate-400
  TermServd      : Removed some Diagnostics, DF1 Half/Full duplex aware
  HartMast       : Magnetrol double buffer?
  VirtMast       : Trigger/Aways Write to RTU waits 30 seconds for ACK/NAK
  S61openconnect : OpenConnect startup beta
  TarUpdate.txt  : S61openconnect move to /etc/init.d/
  UffUpdate.txt  :, openconnect0.conf to /etc/vpnc/
  DnpMast        : Was missing
  DnpSlave       : Was missing
  SpyMast        : Needed for May 2016 project
  cellmodem.tcl  : If reprogramming Modem then don't lock up afterwards

2015-12-28-1100 JPL
  uff2lnux       : Latest xSubsubscription instance handling
  MQRbePr        : Latest Plains BIRTH logic
  TClient        : DNS Lookup with DIALSTRING if and Device="DNS"
  DirectorMMI    : ONLINE,offline Data Dump option
  dir_tool       : New help on command line
  DirectorXDBM   : Better limit checking in Get_Rbe_Typed()
  DF1Mast        : Serial Port resource protection
  CSPMast        : Approved CSP-DF1 by Plains
  CustUtil_Stuff_Uff : _fReconfigure
  TermServd      : DF1 HALF/FULL Duplex awareness
  S15cellmodem   : Remove /usr/dir/bin/HasAModem.txt before if[] logic
  MQisdp         : Using more static arrays instead of pData=malloc(cData)
  MQRbePr        : Only send Birth after 5th time looking for RBE data
  UffUpdate.txt  : S09vlan moved to /etc/init.d/
  VirtMast       : Less use of malloc() in POD_PARSE_MQtt with more looping
  keeproutes     : If "dev/ppp0" in sroutes then more new logic

2015-11-09-1300 JPL
  keeproutes     : added "2> /dev/null" to while[:] loop
  S15cellmodem   : Check for '..."CM_UseMUX=YES =="" '
  MQisdp         : Newest
  MQRbePr        : support for State/HCP_ID (ONLINE/OFFLINE)
  MQXRbePr       : ditto
  DirectorMMI    : Newest
  DirectorPLC    : Updated SegSend(), SegRecv(), ArChkCrC(), DataMovs.c
                 : for WaterTronics
  EMUX           : Newest
  dir_tool       : Upated help text
  SRTPMast       : Register reads saved to Booleans and Vice Versa
  RediLink-Gate_configs.tgz : Updated for all hardware variations
  uff2lnux       : Rockwell CSP/PCCC support

2015-10-15-1500 JPL  all 'C' programs recompiled for _fReconfigure in protect.c  : _fReconfige in protection.c, ModUtil.c Supports BigEndian
  EMUX           : Cell Modem Virtual Ports
  uff2lnux       : EMUX, AT-Commands for CellLeds.conf, Tag-Names
  start          : Better management of /etc/resolv.conf, /etc/ppp/resolv.conf
                 : Move /home/Dirupld/*.star to /home/director/ and Run it
  cellmodem.tcl  : EMUX ready
  hasamodem.tcl  : EMUX ready
  DirectorMMI    : Cell Modem Diagnostics
  CellLEDs       : AT-Commands to RTDB
  UffUpdate.txt  : S03emux->S11emux, cmux.conf, CellLeds.conf to /etc/*
  customer       : PPP_CMUX_PTDEV=1
  dir_tool       : was skipping data with (RC/RJ)_NZ,ALL,SUM options     : from 450 to 90 sec sleep if Zombie.log
  MQRbePr        : Tag-Names
  MQXRbePr       : Tag-Names
  VirtMast       : Read/Write DB9-RS232 pins
  RediLink-Gate_configs.tgz : UFF files for testing
  S01setuptimestamp : Extract RediLink-Gate_configs.tgz

2015-06-23-1700 JPL
  uff2lnux       : Set REDIGATE flag for DirectorPLC because no PC-104 bus
  DirectorPLC    : Don't try to open PC-104 bus on RegiGate hardware
  customer       : RBE_ALL_DATA=0, NO_HEALTH_ECHO=0, Z4_ONBOARD_COM4_7=0
                 : CAMP_IS_PROT_129=0
  celmodem.tcl   : From Falcon does AT-CCID command

2015-06-16-1600 JPL
  S02eth_vlan    : *20C* and *20E* same between RediLink and RediGate

2015-06-15-1300 JPL
  uffupdate      : search for ACE 3.1+ branding of UFF with 'drct'
  uff2lnux       : Newest, PPP_METRIC_91=1, PPP_CMUX_PTDEV=1
  ModMast        : Validate FuncCode, CMDLOG_2_STRING32
  SosMast        : Ditto
  DF1Mast        : CMDLOG_2_STRING32
  dir_tool       : Latest
  DirectorChan   : Timestamp with mSec
  DirectorCore   : Latest
  DirectorPLC    : PC-104 board not working, 'C' Funcs REAL2MSG(), MSG2REAL()
  DirectorMMI    : Newest
  DirectorScan   : FORCE_SCAN,FORCE_RTU_SCAN works now.
  DirectorXDBM   : LONG64 registers
  MQisdp         : Latest with MQtt3.1.1,URLs
  MQRbePr        : RBE_ALL_DATA=1 correct flag support
  ntp            : from P66 ntp returns result code from NTPDATE to ntpcron
  ntpcron        : if NTPDATE fails sleep 121 secs, echo Good/Fail to timesync
  start          : included some logic from P66 start
  fstab          : entire root (/) file system is 'sync'
  TarUpdate.txt  : fstab mode to 0664, S85skeeproutes to /etc/init.d/
  customer       : RBE_ALL_DATA=1 from '0'
  S15cellmodem   : Taken from Gibson with 'raccoon' and Loop to detect Modem
  S85skeeproutes : From Gibsons
  keeproutes     : From Gibsons
  mdev.conf.C    : Taken from falcon_tar.d (was backwards)
  mdev.conf.E    : Taken from falcon_tar.d (was backwards)
  customer       : PPP_CMUX_PTDEV=0

2015-03-30-1600 JPL
  ntpcron        : update rate either 86400 or 121 seconds
  S43ntpd        : pass result code to ntpcron, ntpdate -t 5 for VSAT
  start          : several file privilege changes
  S84quagga      : copied from p66_tar.d/
  TarUpdate.txt  : #10 S84quagga
  DnpMast        : From DnpMast_TClient
  uff2lnux       : S36timezone needed != "x0"

2015-02-23-1200 JPL based on RediLink
?? Mounting SD Card ??
  DirectorXDBM   : Value Returns to ZERO is always an RBE
  uff2lnux       : MSEC_TIMESTAMP=1
  DirectorScan   : Ditto
  customer       : MSEC_TIMESTAMP=1 and from RediLink to RediGate
  MQisdp         : Latest
  MQRbePr        : Latest, CMD_TERMINATE not reliable
  MQXRbePr       : Latest, CMD_TERMINATE not reliable
  VirtMast       : GetRtuStatus function written  : Thread mutex added
  DnpMast        : Mutex added around Diagnostics
  Term1Serv      : Added more CMD_NODE_STAT information for MMI
  dir_tool       : Newly added
  rl_tool        : Removed
  WhiteList      : Removed
  ace-server.tcl : Removed
  S92redigate    : from S92redilink but remove rl_cmds, HostLEDs, DeviceLEDs
                 : and ace-server.tcl
  rl_cmds        : Removed
  HostLEDs       : Removed
  DeviceLEDs     : Removed
  Bootloader     : Newest
  ModMast        : Newest
  ModSlave       : Newest    : Removed
  TarUpdate.txt  : Remove ZEUS-3.12 and FALCON-3.12
  mdev.conf.E    : Swap ttyS8/ttyS9 as ttyS0, ttyS1
  mdev.conf.C    : Swap ttyS8/ttyS9 as ttyS0, ttyS1
  S02eth_vlan    : Test if [ NOT fw_printenv |grep buart ], fw_setenv std* buart