RediGate 100 Tarball Update History

As of December 2017, RediGate firmware releases include a file checksum (SHA-256), which can be used to validate the authenticity of a downloaded file.

To view the expected file checksum, find the release date of the file in its Change Log (or locate the SHA hash of other released software) at the RediGate Product Support Page: 

To verify the checksum of a downloaded file, use a SHA-256 calculation app, such as one of the following:
MD5 & SHA Checksum Utility
- With 7-Zip installed, right-click on file and choose "CRC SHA" context menu (SHA-256)
- Or, at a Linux command line enter:   sha256sum filename

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