CHANGELOG

Release Notes

1.1300 - Added functions: LJM_eReadAddressByteArray, LJM_eReadNameByteArray,
         LJM_eWriteAddressByteArray, and LJM_eWriteNameByteArray.
         Added secret function Internal_LJM_GetHandles.
1.1201 - B-type thermocouple conversion: increased the range and used new
         constants.
1.1200 - Changed ListAll to use UDP instead of TCP. Added LJM_GetSpecificIPsInfo.
         Changed from ljm_special_addresses.config to ljm_specific_ips.config.
         Added `void` to parameter list for LJM_CloseAll, LJM_LoadConstants,
         and LJM_ResetLog. Added functionality to broadcast on all available
         network adapters.
1.1100 - Added LJME_FUNCTION_DOES_NOT_SUPPORT_THIS_TYPE. Changed
         LJME_INVALID_VALUE_TYPE to LJME_UNKNOWN_VALUE_TYPE. Fixed open-by-name
         issue.
1.1003 - Fixed synchronization bug that causes problems primarily in Kipling.
1.1002 - Fixed WiFi discovery issue.
1.1001 - Fixed TCP open bugs. Removed threading of USB open for faster opening
         of USB devices when Open connectionType is LJM_ctANY.
1.1000 - Added LJM_RegisterDeviceReconnectCallback. Added
         LJM_AUTO_RECONNECT_WAIT_MS. Now using a separate device reconnection
         thread.
1.0900 - Added LJM_StreamBurst. Added Special Address functionality and the
         corresponding configs LJM_SPECIAL_ADDRESSES_FILE and
         LJM_SPECIAL_ADDRESSES_STATUS. Fixed device memory management and thread
         safety issues. Changed LJME_COULD_NOT_CLAIM_DEVICE to
         LJME_DEVICE_CURRENTLY_CLAIMED_BY_ANOTHER_PROCESS.
1.0808 - Fixed a segmentation fault when stream is running upon program termination.
1.0807 - Fixed a segmentation fault.
1.0806 - Adding LJM_STREAM_AIN_BINARY flag. Fixed possible pure virtual call
         during reconnect.
1.0805 - Fixed segmentation fault during TCP open on Mac/Linux. Fixed logger
         issue.
1.0804 - Made some performance gains during stream.
1.0803 - Removed LJM_MAX_TCP_PACKET_NUM_BYTES_NON_T7. Improved stream stop time.
         Fixed stream seg fault. Fixed stream LJME_TRANSACTION_ID_ERR.
1.0802 - Added Type C thermocouple support.
1.0801 - Changed default WiFi send/receive timeout to 4000 ms.
         Added check for when API functions with NumFrames / NumValues
         parameters are 0 or less, in which case LJME_INVALID_PARAMETER is
         returned.
1.0800 - Client code should be re-compiled.
         Changed LabJackM.h constant LJM_DEMO_MODE from "-1" to "-2".
         Introduced new configs:
          - LJM_USB_SEND_RECEIVE_TIMEOUT_MS
          - LJM_ETHERNET_SEND_RECEIVE_TIMEOUT_MS
          - LJM_ETHERNET_OPEN_TIMEOUT_MS
          - LJM_WIFI_SEND_RECEIVE_TIMEOUT_MS
          - LJM_WIFI_OPEN_TIMEOUT_MS
         The following configs are now write-only shortcuts for the new
         configs:
          - LJM_OPEN_TCP_DEVICE_TIMEOUT_MS
          - LJM_SEND_RECEIVE_TIMEOUT_MS
         Removed LabJackM.h constant: LJM_DEFAULT_TIMEOUT. Fixed
         LJME_TRANSACTION_ID_ERR stream bug.
1.0707 - Added LJME_DEBUG_LOG_FILE_NOT_OPEN. Changed the default log level to
         LJM_INFO. Fixed LJME_INTENT_NOT_READY error when streaming via WiFi.
         Fixed stream-out error. Fixed stream sleep calculation. Stream
         refactors.
1.0706 - Fixed easy functions bug for digits that can cause reading/writing to
         an incorrect address.
1.0705 - Fixed easy functions bug that caused LJME_PACKET_SIZE_TOO_LARGE.
1.0704 - Device reconnect bug fix.
1.0703 - LJM_eStreamStart: automatically applying stream settling of 10 if
         firmware is old and stream settling reads as 0. Fixed Ethernet
         streaming for Windows 8. Added the keyword static to LabJackM.h
         variable definitions. Fixed error check for string length to
         LJM_eWriteAddressString / LJM_eWriteNameString. Fixed burst stream
         bug. Fixed WiFi stream bug. Fixed heap memory issue. Stream callback
         improvement.
1.0702 - Added configuration parameter LJM_STREAM_CONVERT_AIN14 to control
         whether AIN14 is converted to units Kelvin or not - default is to not
         do so. Modified error message for unknown constants. Fix for deadlock
         when eStreamStop was not called.
1.0701 - Removed LJM_dtUE9, LJM_dtU3, LJM_dtU6, and LJM_dtSKYMOTE_BRIDGE from
         LabJackM.h. Removed erroneous setting of stream resolution and settling
         time during LJM_eStreamStart. Accepting additional values for
         DeviceType and ConnectionType for the Open and ListAll functions, such
         as "ETH" for LJM_ctETHERNET. Added stream burst support. Added retry to
         calibration constants loading during stream start.
1.0700 - New function: LJM_SetStreamCallback
         Added support for alternate stream resolution and settling. Added
         basic support for WiFi streaming.
1.0601 - Fixed stream for range/gain of 0.1V. Fixed error when streaming
         STREAM_DATA_CAPTURE_16.
1.0600 - Changed the config parameter LJM_HEAL_CONNECTION_MODE to
         LJM_AUTO_RECONNECT_STICKY_SERIAL and
         LJM_AUTO_RECONNECT_STICKY_CONNECTION.
         Beta Wifi stream support added.
1.0501 - Fix for IP-specified automatic connection healing. Speedup for device
         opening on Mac.
1.0500 - New config parameter: LJM_ZERO_LENGTH_ARRAY_MODE
         Speedup for certain types of opening USB connections on Mac.
1.0401 - Bug fix to LJM_HEAL_CONNECTION_MODE_BY_OPEN_PARAMETERS for Windows
         TCP devices. Added error check for string length to
         LJM_eWriteAddressString.
1.0400 - New function: LJM_ListAllExtended
         New config parameters:
         LJM_STREAM_SCANS_RETURN, LJM_STREAM_RECEIVE_TIMEOUT_MODE, and
         LJM_STREAM_RECEIVE_TIMEOUT_MS
1.0300 - New functions:
         LJM_LookupConstantValue and LJM_LookupConstantName.
         Improved version of LJM_ListAll / LJM_ListAllS, which uses multiple
         attempts to find devices via TCP and uses UDP to gain device
         information.
1.0201 - Stream timing fix. Constants file (ljm_constants.json) update.
1.0200 - New functions:
         LJM_eReadAddressArray, LJM_eReadNameArray, LJM_eWriteAddressArray,
         and LJM_eWriteNameArray.
         O-Stream support. Stream thread timing modification. LJM_BYTES array
         fix. Auto-closing devices upon exit. Debug logger thread default
         sleep is now 50 ms. Debug logger thread temporarily stops running if
         no log messages are received for (100 ms + 2 * logger sleep time).
         Constants file (ljm_constants.json) update.
1.0103 - Fix for stream auto-recovery. Fix for stream digital channel.
         Fix for bug when TCP open times out on Mac OS X and Linux.
1.0102 - Fixed LJM_LoadConstantsFromString deadlock. Fixed
         LJM_ReadLibraryConfigS deadlock. Added LJM_DEFAULT_UNIT_ID to
         LabJackM.h. Not flushing Windows USB on open. Support for streaming
         digital channels. Debug logger improvements.
1.0101 - Mac/Linux USB streaming fixes. LJM_Open and LJM_OpenS Identifier
         defaults to decimal IP rather than hex IP. Fixed deadlock situation.
         Config file interpretation improvements. Now flushing before opening
         USB devices.
1.0100 - Added the functions LJM_LoadConstantsFromFile and
         LJM_LoadConstantsFromString. Streaming fixes.
1.0000 - Broken backwards compatibility - Constants renames:
         LJM_LOG_MODE => LJM_DEBUG_LOG_MODE,
         LJM_LOG_LEVEL => LJM_DEBUG_LOG_LEVEL,
         LJM_LOG_BUFFER_MAX_SIZE => LJM_DEBUG_LOG_BUFFER_MAX_SIZE,
         LJM_LOG_SLEEP_TIME_MS => LJM_DEBUG_LOG_SLEEP_TIME_MS,
         LJM_LOG_FILE => LJM_DEBUG_LOG_FILE,
         LJM_LOG_FILE_MAX_SIZE => LJM_DEBUG_LOG_FILE_MAX_SIZE,
         LJM_NAME_CONSTANTS_FILE => LJM_MODBUS_MAP_CONSTANTS_FILE,
         LJME_LOG_FAILURE => LJME_DEFAULT_LOG_FAILURE.
         Added LJM_LoadConfigurationFile and config file loading on LJM
         startup. Stream improvements. Debug logging improvements.
0.0246 - Bug fixes. LJME_USING_DEFAULT_CALIBRATION will return the root
         error in LJM_ErrorToString.
0.0245 - Fixed bug where LJM would not return an error when an error occurred.
         Added calibration constants verification during streaming. Added
         stream verifications.
0.0244 - Broken backwards compatibility - LJM_eWriteString is now
         LJM_eWriteNameString, LJM_eReadString is now LJM_eReadNameString.
         Added LJM_eWriteAddressString and LJM_eReadAddressString.
         Streaming speedups and fixes, including allowing an arbitrary
         number of samples in LJM_eStreamStart/LJM_eStreamRead. Added
         LJM_STREAM_TRANSFERS_PER_SECOND config parameter. Now loading max
         packet size from T7s and device name for Digits. Fixed device open
         bug. Open calls now return LJME_OVERSPECIFIED_PORT when connection
         type is "any" and port is specified. Fixed altername name address
         bug. Added LJM_RETRY_ON_TRANSACTION_ID_MISMATCH configuration.
         Added check against the constants file for old firmware (see
         LJM_OLD_FIRMWARE_CHECK). Added Modbus operation re-try when the device
         returns an unexpected Transaction ID (see
         LJM_RETRY_ON_TRANSACTION_ID_MISMATCH). Added LJM_TCVoltsToTemp
         function.
0.0243 - LJM_eStreamRead breaks backwards compatibility - the NumSkippedScans
         parameter has been removed. LJM_eStreamStart breaks backwards
         compatibility - the aScanList_Neg parameter has been removed.
         Removed unused errorcodes from this header file. Streaming
         improvements. Worst-case device open times have been improved.
0.0242 - LJM_Open() breaks backwards compatibility - the DeviceType and
         ConnectionType parameters are now pass-by-value rather than
         pointers. Removed LJME_MUST_SPECIFY_DT_AND_CT. Streaming revisions.
0.0241 - Fixed constant file/log file location resolution for Windows.
0.0240 - Removed dllexport for Windows.
0.0239 - OpenS/ListAllS now make the LJM_dt/LJM_ct/LJM_id prefixes optional.
         __stdcall functions for Windows.
0.0238 - More const parameters. Outputs invalid address with
         LJME_MBE2_ILLEGAL_DATA_ADDRESS or LJME_INVALID_ADDRESS when
         relevant. Automatically reloads constants file more often. Improved
         logging.
0.0237 - Bug fix for Open
0.0236 - Limited AutoResponse streaming support.
0.0235 - LJME_INVALID_NAME will give the last unrecognized names.
0.0234 - Default send/receive timeout is now 20 seconds. Fixed
         synchronization issues. Command-Response stream improvements.
0.0233 - LJM_ListAll/LJM_ListAllS now have new prototypes and can accept any
         device or connection type.
0.0231 - Added LJM_AddressToType/LJM_AddressesToTypes
0.0229 - Limited streaming support
0.0225 - Fixed endianness issue with ListAll.
0.0224 - Added LJM_ALLOWS_AUTO_CONDENSE_ADDRESSES configuration.
         Added LJME_ERROR_RETRIEVAL_FAILURE.
0.0223 - Fixed packet bugs, handle bugs, and updated error names.
         LJME_LABJACK_NOT_FOUND => LJME_DEVICE_NOT_FOUND
         LJME_ATTRIBUTE_LOAD_FAILURE => LJME_ATTR_LOAD_COMM_FAILURE
         LJME_DEVICE_ALREADY_OPEN => LJME_COULD_NOT_CLAIM_DEVICE
0.0222 - Fixed many opening bugs, added WiFi device discovery
0.0217 - Added LJM_eReadString and LJM_eWriteString
0.0215 - Added the MAC address and IPv4 address converter functions
0.0214 - Added LJM_ReadLibraryConfigS and LJM_WriteLibraryConfigS,
         removed LJM_GetDriverVersion.
0.0212 - Added basic logging functionality.
0.0211 - Added LJM_STRING functionality.
0.0209 - JSON Modbus constants file.
0.0207 - Implementation LJM_ListAll.
0.0206 - Open functions now return any handle matching an already open device
         if possible.
         Implementation of the easy functions.
0.0205 - New LJM_ErrorToString style.
0.0202 - Added the array-capable easy functions.
