Added the ability to increment the disable variable when Reps parameter is greater than 1, using the () syntax, to Maximum, Minimum, Average, Totalize, StdDev, Moment, and Covariance instructions.
Improved DNP3: Added ability for DNP3 messages to be routed over a PakBus network via PakBus datagrams.
Added ability to declare multiple, comma separated, alias names of an aliased array with a single Alias declaration. For example, Alias Array = FrontRoom, GreatRoom(4), BedRoom
Removed an arbitrary limitation of 12 or so TCPOpen() and UDPDatagram() instructions.
Changed Allowed PakBus Neighbors setting so that if a setting is cleared, the end setting is put to 0 instead of left the way it was. The only consequence was that the display by on the keyboard/display would show something like 0,22 instead of 0,0.
Changed PPP so that AC and P Compression default to 0 instead of 1 to accommodate a wi-fi unit.
Fixed WindVector so that the default units of "Deg" is inserted correctly.
Changed Units declaration to a FieldNames list of more than one name in a single declaration.
Fixed TableFile working with variable interval when interval is changed from < 1hr to >= to 1 hr.
Fixed TableFile so that starting file number does not overwrite files already on the drive. This problem was introduced with the fix for filenames with numerics at the end of the name (OS 16.01).
Fixed ModBusMaster, DNP3, and DataGram on Com1..Com4 so that they keep parity and other settings.
Fixed possible (harmless) watchdog during reset when using PPP. Semaphore that is used by the task that strobes the hardware watchdog was locked by the shutdown code prior to calling PPP shutdown. PPP shutdown can take several seconds, which is beyond the watchdog interval.
Changed TCPClose() so that it waits until it is closed, fixing possible comms memory leak.
Fixed the GPS instruction so that is does not lock up if a NMEAstring contains a values with greater than 5 digits behind the decimal point.
Improve pipeline mode slicing algorithm for slow sequence measurements. Time allocated for measurements was incorrect, causing certain combinations to not slice correctly.
Fix ModBusMaster over TCP/IP so that it does not leak Comms Memory in the case that the TCP/IP socket was closed just before it tries to send the command to the slave.
Changed Custom menu so if it is configured to skip the system menus and there is a compile error, it shows the error instead of going right to the custom menu.
Changed the Rso clear sky solar radiation calculation in Etsz instruction from the simplified version to the extended version as specified in Appendix D of the ASCE-EWRI Standardization Equation Bulletin.
Fix TableName.FieldName to not overwrite variables during compile. When Preserve Variables was used and TableName.FieldName was in an expression that stored to a variable, that variable was not being maintained after re-compile.
Changed Alias declarations to speed up compile operation.
Fixed ComRS232 to not go to standby if the RS232 power ON is set to stay powered up.
Fixed a hang condition caused by converting -0 to a string. The -0 can be created when converting FP2 to float (introduced in OS17).
Fixed FP2 storing to not create -0.
Fixed file upload, including getting the directory, when more than 4 different PakBus client addresses have uploaded.
Removed compile warning if voice.txt is absent and a COM320 is not connected.
Fixed filename wild card matching. When using * matching, the strings were synchronized to the character after the '*'. If the strings did not match from that point to the end of the string, the match failed. This caused "name.name.png" to fail the wild card search "*.png". Now, the wild card search is reset when a mismatch occurs, this goes on until the end of the searched string is detected. If at the end, the two string pointers are not at the end of their respective string there is not a match. This effects NewFile, the Files Manager setting, and the communication directory upload command.
Improved FieldCalStrain to prevent pre-compiler crash when invalid parameter used as strain_dest.