Skip to content

Latest commit

 

History

History
469 lines (468 loc) · 18.1 KB

README_CHANGELOG.md

File metadata and controls

469 lines (468 loc) · 18.1 KB

Wasatch.NET Changelog

  • 2024-03-19 2.4.16
    • fixed issue with multi channel wrapper demo program
  • 2024-03-05 2.4.15
    • added Spectrometer.isAndor
    • fixes to multi channel wrapper timing
    • attempted changes for hardware triggering
  • 2023-09-26 2.4.14
    • updates for 1064XL
    • don't enable detector TEC unless degCToDACCoeffs has a non-default calibration
    • added Spectrometer.loadFromJSON for XL
    • fixed AnyCPU build
  • 2023-04-20 2.4.13
    • add warning when encountering unsupported / higher EEPROM format
  • 2022-12-19 2.4.12
    • explicitly default High-Gain Mode true for Hamamatsu InGaAs detectors
  • 2022-09-20 2.4.11
    • added checkBoxLaserPowerInMW to WinFormDemo
  • 2022-08-17 2.4.10
    • add temperature caching for Andor spectrometers to prevent long reads
  • 2022-07-28 2.4.9
    • fixed how temp min/max set for certain spectrometers
    • fixed null terminator issue with user text when EEPROM not defaulted to all 0s
  • 2022-06-21 2.4.8
    • added user control over some Gen1.5 features (in demo as well)
  • 2022-06-17 2.4.7
    • fix to ensure gain always written (default 1.9 if EEPROM setting is zero)
  • 2022-04-26 2.4.6
    • added region subformat
    • filled in JSON support for more recent EEPROM fields
    • some minor updates to Andor camera operation
    • added guardrails for SPI EEPROM read and temporarily disabled
  • 2022-03-21 2.4.5
    • added FeatureMask.SIG_LASER_TEC
    • added FeatureMask.HAS_INTERLOCK_FEEDBACK
  • 2021-12-15 2.4.4
    • added checks for EEPROM.toJSON()
  • 2021-12-08 2.4.3
    • implemented offline version of raman correction
    • made end of roi for raman correction inclusive
  • 2021-12-07 2.4.2
    • removed "fast re-initialization" code that was causing issues in production
    • added user accessible, automatic raman intensity correction
  • 2021-11-18 2.4.1
    • fixed fast area scan functionality with 2k cameras
  • 2021-11-04 2.4.0
    • added basic support for Andor cameras
  • 2021-11-01 2.3.37
    • added start/stop detector lines (vertical binning opcodes)
    • fixed area scan on SiG (disable bin_2x2 during area scan)
  • 2021-10-12 2.3.36
    • fixed bugs with EEPROM/JSON
    • fixed bug with pixel correction in some spectrometers
    • tweaks to how untethered spectros work
  • 2021-09-16 2.3.35
    • fixed issue preventing multiple spectrometer communication when one is SPI
  • 2021-09-08 2.3.34
    • updated POLL_DATA for untethered capture status
  • 2021-06-30 2.3.33
    • added AnyCPU target to scripts/deploy
    • updated Newtonsoft to 12.x
    • WinFormDemo tweaks
  • 2021-06-30 2.3.32
    • patch to long-standing serious small bug with EEPROM JSON/string
  • 2021-06-29 2.3.31
    • upgraded to EEPROM format 12 and changes around IsInGaAs
  • 2021-06-24 2.3.30
    • added support for software even/odd gain/offset correction for InGaAs units
    • added option for 0 noise TEC readbacks on mocks
  • 2021-05-28 2.3.29
    • updated docs
    • strengthened EEPROM.hasLaserPowerCalibration
    • updated WinFormDemo with tabbed controls and laserPowerMW
  • 2021-05-18 2.3.28
    • added user configurable field to control how long temperatures are cached
  • 2021-04-12 2.3.27
    • added matchingThreshold, matchingMinPeakHeight, matchingMinRampPixels
  • 2021-03-25 2.3.26
    • fixing bugs with EEPROMJSON and misalignment between relative intensity order and coefficient array length
    • adding new fields to JSON representation of EEPROM
  • 2021-03-15 2.3.25
    • added subformat 4 (handheld)
    • added GET_STORAGE, ERASE_STORAGE, SET_FEEDBACK
  • 2021-03-02 2.3.24
    • upgraded EEPROM to format 10
    • clamp pct in laser mw set, fixing issue with squishiness on edges
  • 2021-02-19 2.3.23
    • added control over laser power via direct MW set
    • added optional fast area scan ability
    • fixed bug where buffer too small for some commands on ARM spectrometers
  • 2020-12-08 2.3.22
    • internal
  • 2020-12-08 2.3.21
    • internal
  • 2020-12-07 2.3.20
    • internal
  • 2020-11-16 2.3.19
    • changed default wavecal values on some spectrometers, which was causing downstream issues
  • 2020-09-24 2.3.18
    • fixed lingering EEPROM to JSON bug with older EEPROM formats on read
  • 2020-09-17 2.3.17
    • made some fixes around mock spectrometer and last version
    • attempt at fixing SPI issues
  • 2020-09-09 2.3.16
    • added DomainTest
    • added Logger.close
    • cleanly close logger in Driver dtor
    • added SpectrometerUptime
    • updated WinFormDemo to partially support re-initialization of one device without changing other spectrometers' settings
  • 2020-09-04 2.3.15
    • fixed issue with trying to set laser power in OCT spectrometer
    • fixed subtle bug with mock spectrometers with single samples for a source
  • 2020-08-31 2.3.14
    • added support for WASATCHNET_LOGGER_PATHNAME and _LEVEL environment variables
    • updated most Spectrometer setters to ignore duplicate (cached) values
    • rate-limit detector temperature readings to 1Hz (cache otherwise)
    • added high-level retry loop in Spectrometer.getSpectrum
    • added Spectromeer.acquisitionRetryCount
    • added Spectromeer.acquireCount
    • supported both BackgroundWorkers and Tasks in WinFormDemo
  • 2020-08-21 2.3.13
    • upped timeout even further
  • 2020-08-21 2.3.12
    • added getSoucres() function for mock spectrometers
    • increased timeouts for Boulder spectrometer
  • 2020-08-11 2.3.11
    • fixed bug where excitation would overwrite feature mask no matter what
    • moved SB library check
  • 2020-08-05 2.3.10
    • added library check to prevent trying to open boulder spec when library not present
  • 2020-08-05 2.3.9
    • made all calls to underlying driver in Boulder spectrometers async with timeouts
  • 2020-07-30 2.3.8
    • added safeguards for loading EEPROM from malformed JSON
    • added some async functions and blocking for boulder spectrometers
  • 2020-07-29 2.3.7
    • added support for OCT frames to mock spectrometer
    • made linesPerFrame a generalized attribute
  • 2020-07-22 2.3.6
    • generalized EEPROM JSON
    • added conversions between JSON and EEPROM
  • 2020-07-20 2.3.5
    • fixed bug with spi spectrometer interaction with downstream software
  • 2020-07-15 2.3.4
    • fixed bugs with spi spectrometer axis flipping and serial number
  • 2020-07-13 2.3.3
    • added integration time to mock spectrometer EEPROM
    • fixed bug with wavelength generation when loading mock spectrometer EEPROM from JSON
  • 2020-07-07 2.3.2
    • added option to Mock Spectrometer to bulk load and set EEPROM through JSON file
  • 2020-06-26 2.3.1
    • reorganized EEPROM read/write differences from switch-like model to subclasses
  • 2020-06-25 2.3.0
    • added simple mock spectrometer
  • 2020-06-10 2.2.11
    • added support for writing older EEPROM formats
    • fixed bugs with some spectrometer's temp range and initialization
  • 2020-06-03 2.2.10
    • don't attempt to read temperature on ambient detectors
    • added support for 2048-pixel ARM
    • added useReadoutMutex
    • bulk endpoint cleanup
    • simplified 'make clean'
  • 2020-05-28 2.2.9
    • surfacing firmware for Boulder spectrometers
    • downstream bug fixes for Boulder spectrometers
  • 2020-05-22 2.2.8
    • battery cleanup
  • 2020-05-19 2.2.7
    • revised how startup temperature works
  • 2020-05-18 2.2.6
    • fixed EEPROM.write on ARM
    • added MultiChannelWrapper.scanAveraging
  • 2020-05-18 2.2.5
    • quick design change, HOCT no longer auto writes to EEPROM on close
  • 2020-05-18 2.2.4
    • WasatchNET
      • added FeatureMask
      • added Spectrometer.scanAveragingIsContinuous
    • MultiChannel
      • serialized operations to avoid async failures
      • add FW to groupBox titles
  • 2020-05-12 2.2.3
    • added full model compound EEPROM field for bigger model number support
    • reorganized some EEPROM fields
  • 2020-05-08 2.2.2
    • added readback to fix issue with HOCT eeprom write
    • added USB reset on HOCT buffer clear errors (may or may not be needed)
    • added some attempted error logging and handling for HOCT
  • 2020-05-05 2.2.1
    • WasatchNET
      • added WasatchMath.dll
      • tightened EEPROM coeff and range validation
      • added Logger.header()
      • fixed waitForUsb()
      • updated timeout logic for multiple devices, IMX power-up
      • added autoTrigger
      • exposed sendTrigger()
      • updated throwaway logic on changed integration time
      • updated TEC default setpoint detector list
      • added acquisitionTriggerTimeout (MS and Timestamp)
    • MultiChannelWrapper/Demo
      • lots of debugs related to triggering bug (walking spectra, multiple triggers)
      • added Monte Carlo operation
        • randomized integration time
        • randomized trigger pulse width
        • final tally
        • injected double-triggers
        • async free-running workers to collect and count double acquisitions
      • increased configurability
        • trigger width
        • integration time
        • scan averaging
        • arbitrary spectrometer subsets
        • refactored checkboxes
      • repeatability
        • initial throwaway spectrum
        • perform all operations in positional order
      • IntegrationOptimizer
        • GUI widgets
        • list failures by channel
      • saving
        • interpolation
      • enhancements
        • update groupbox titles
        • parallelized integration throwaways
  • 2020-04-27 2.2.0
    • fixed HOCT excitation
    • removed frame counter and "bad pixels" at beginning of lines in HOCT
    • added frame "cutting" (removing pixels 1025 - 2048) for HOCT
    • added automatic eeprom write to HOCT close
    • added wavelength generation to constructor (caused downstream issues)
  • 2020-04-17 2.1.21
    • WasatchNET
      • Spectrometer.reference convenience array
    • MultiChannelWrapper/Demo
      • added reflectance
      • added save
  • 2020-04-16 2.1.20
    • MultiChannelWrapper: made acquisition trigger synchronous
    • restored executable bit on scripts
  • 2020-04-02 2.1.19
    • internal build for WPSC 1.9.15
    • initial support for HOCT units
  • 2020-03-24 2.1.18
    • added support for EEPROM Format 8
    • tweaked wavelength calculation in accordance with up to 5 coeffs
  • 2020-03-20 2.1.17
    • incorporating 2.1.16 with internal builds
    • internal features incorporated
      • added support for legacy boards (with libusb drivers)
      • added area scan read and logic for legacy boards only
      • added attribute and logic for "default EEPROM"
      • temporarily changed area scan opcode back to legacy opcode
  • 2020-03-19 2.1.16
    • added retry logic on spectrum bulk read failure
  • 2020-xx-xx 2.1.15
    • internal
  • 2020-xx-xx 2.1.14
    • internal
  • 2020-02-18 2.1.13
    • unsigned WasatchNET
    • rebuilt under Win10 v1909 and VS 2019
    • retested from LabVIEW 2018 32-bit
  • 2020-02-18 2.1.12
    • added IntegrationOptimizer
    • added MultiChannelWrapper
    • added MultiChannelDemo
    • bumped .NET to 4.6.1
  • 2020-02-13 2.1.11
    • Boulder specs no longer read as having a battery
    • added sanity check to prevent bare adafruits being interpreted as spectrometers
    • added acquisition locks to all api calls in boulder spec
    • added average resolution field (part of format 7) to EEPROM
  • 2020-01-30 2.1.10
    • added sanity check for intensity correction format
    • added support for TEC reading on some units
    • changed method for EEPROM read/write for SPI units
  • 2020-01-16 2.1.9
    • added support for EEPROM format 6 (intensity correction coeffs)
    • removed problematic integration time checks for Ocean specs
  • 2020-01-08 2.1.8
    • added strong assembly names to WasatchNET, LibUsbDotNet and MPSSELight for LabVIEW NXG
  • 2020-01-08 2.1.7
    • internal build
  • 2020-01-02 2.1.6
    • added support for writing EEPROM on SPI spectrometers
    • surfaced isSPI flag in Interface
    • adjusted and standardized padding for SPI commands
    • added some constants for SPI packets
  • 2019-12-18 2.1.5
    • added flag to indicate SPI spectrometer
    • implemented reading and writing detector gain and offset for SPI spectrometers
    • implemented reading pixel count and fpga revision for SPI spectrometers
  • 2019-12-09 2.1.4
    • made adcRaw and selectedADC protected
    • added adcLock
    • added hasSecondaryADC
    • encapsulate internal pushd/popd when loading FTDI drivers
    • downleveled Ocean warning
    • fixed Ocean boxcar
    • narrowed SPI trigger warning
    • hide throwaway ADC value
    • cache more laser modulation settings
    • track laser fired and adc selection events
  • 2019-12-09 2.1.3
    • disable trigger accessors on non-ARM units
    • disable battery accessors if not configured
    • disable laser accessors if not configured
    • consolidated Spectrometer docs to ISpectrometer
    • added Logger.logString() for languages that can't pass empty params
    • autoflush logfile
  • 2019-11-27 2.1.2
    • removed Driver.enableSPI
    • added lib/{x86,x64}/FTD2XX.dll, updated post-build events
  • 2019-11-26 2.1.1
    • added Driver.enableSPI
  • 2019-11-26 2.1.0
    • added support for SPI spectrometers
    • added event raising for alterations to "Virtual" EEPROM
  • 2019-11-01 2.0.30
    • added proper DLL checking for OceanSpectrometer opening
  • 2019-10-29 2.0.29
    • added OceanSpectrometer subclass
    • virtualized Spectrometer class
    • added support for opening, and reading various data from EEPROM of Ocean units
  • 2019-10-03 2.0.28
    • fixed product config initialization error
    • fixed null string write issue
  • 2019-08-27 2.0.27
    • unsigned DLL (conflicts with COM registration due to unsigned LibUsbDotNet dependency)
    • fixed COM declaration for DriverVBAWrapper
  • 2019-08-27 2.0.26
    • attempting to sign DLL with strong name for Delphi/GAC support
  • 2019-08-27 2.0.25
    • removed ILogger.getErrors for COM support
  • 2019-08-19 2.0.24
    • made LaserPowerResolution.1000 the default
    • made EEPROM.read() public, so the object can refresh itself from the spectrometer if local values have been changed in memory
  • 2019-07-31 2.0.23
    • don't cache laser modulation width/period; check values after setting them
  • 2019-07-31 2.0.22
    • added LaserPowerResolution.MANUAL
  • 2019-07-29 2.0.21
    • simplify and speed setLaserPowerPerc
    • make HiRes laser power the default in WinFormDemo
  • 2019-07-29 2.0.20
    • remove fakeBuf from laser pulse width/period on FX2
  • 2019-07-29 2.0.19
    • added laserPowerResolution
  • 2019-07-16 2.0.18
    • automatically apply gain and offset from EEPROM if configured
    • ignore "odd" gain/offset for non-InGaAs
  • 2019-06-14 2.0.17
    • changed SET_MODEL_CONFIG to 2nd-tier command
  • 2019-05-29 2.0.16
    • added productConfiguration to EEPROM
    • moved min/maxIntegrationTimeMS from ushort to uint
  • 2019-05-10 2.0.15
    • changed laserWavelengthNM() to writable property
    • changed hasLaser to only rely on EEPROM
    • changed WinFormDemo's numericUpDownIntegTimeMS.Maximum to 5min
  • 2019-04-26 2.0.14
    • added (get/set)Detector(Gain/Offset)Odd
    • initial test support for areaScanEnable
    • disabled laserRampEnable pending redesign
    • documentation updates
  • 2019-04-01 2.0.13
    • added new ENG-0034 Rev 4 fields to EEPROM.read() and .write().
    • TODO: add new -odd opcode implementations
  • 2019-03-28 2.0.12
    • removed enforcement of EEPROM maxIntegrationTimeMS to allow longer at-risk integrations
    • added correctBadPixels
  • 2019-02-01 2.0.11 (internal)
    • updated laser temperature degC formula from datasheet
  • 2019-01-22 2.0.10
    • fixes for reading/setting laserTemperatureSetpoint
    • exposed VID/PID through API
    • improved support for floating-point excitation wavelength
  • 2019-01-22 2.0.9
    • precompute endpoints / bulk sizes
    • triggering fixes for LabVIEW
  • 2019-01-22 2.0.8
    • interlock fix on ARM
    • detector offset fix on ARM
  • 2019-01-04 2.0.7
    • added isSiG
    • disable laser and detector temperature readouts on SiG
    • disable TEC enable and TEC setpoint unless eeprom.hasCooling
    • fixed setIntegrationTime on ARM
  • 2019-01-04 2.0.6
    • added batteryPercentage and batteryCharging
    • secondaryADC cleanup
    • added "make cloc"
  • 2018-12-19 2.0.5
    • updated to latest draft Rev 4 of ENG-0034
    • renamed ModelConfig to EEPROM
    • extended full EEPROM write privileges
  • 2018-12-14 2.0.4
    • added min/maxLaserPowerMW, laserPowerCoeffs
  • 2018-12-10 2.0.3
    • improved logging
  • 2018-12-04 2.0.2
    • adding support for 2048-pixel detectors
  • 2018-09-25 2.0.0
    • refactored to better use COM / .NET Properties
    • tested ARM triggering
  • 2018-08-03 1.0.28
    • auto-set integration time limits
  • 2018-07-20 1.0.27
    • removed Generics from COM API for Delphi
  • 2018-05-29 1.0.26
    • changed ModelConfig.detectorTempMin/Max from float to short
  • 2018-05-28 1.0.25
    • added IDriver.logger getter
  • 2018-05-27 1.0.24
    • added ISpectrometer.getSpectrum()
  • 2018-05-25 1.0.23
    • added IDriverVBAWrapper.getSingleton()
  • 2018-05-25 1.0.22
    • More COM Interface classes
  • 2018-05-24 1.0.21
    • COM annotations
  • 2018-05-23 1.0.20
    • split RegisterDLL.bat into RegisterDLL32 and RegisterDLL64
  • 2018-04-24 1.0.19
    • changed setCCDTriggerSource to Int40
  • 2018-03-30 1.0.18
    • added APITest
    • improved ARM support for READ_COMPILATION_OPTIONS, ACQUIRE_CCD, others
  • 2018-03-22 1.0.17
    • snapshot before testing with MonoLibUsb
  • 2018-03-13 1.0.16
    • ARM testing
  • 2018-03-06 1.0.15
    • internal test build
  • 2018-01-10 1.0.14
    • added detector TEC setpoint control to WinFormDemo
    • fixed dependency path in Setup64
  • 2017-11-28 1.0.13 set initial detector TEC setpoint;
    • added setHighGainModeEnabled
  • 2017-11-28 1.0.12
    • updated laser temperature readout
  • 2017-10-26 1.0.11
    • added setLaserPowerPercentage()
  • 2017-10-25 1.0.10
    • added setDFUMode() for ARM reflash
  • 2017-10-25 1.0.9
    • fixed spectrum-save issue
  • 2017-10-24 1.0.8
    • corrected detector temperature computation
    • resolved some multi-spectrometer syncronization issues
  • 2017-10-23 1.0.7
    • tweaks after multi-spectrometer testing with 1064-L
  • 2017-10-22 1.0.6
    • added cmd-line args to WinFormDemo
  • 2017-10-11 1.0.5
    • fixed temperature read-out in degrees
  • 2017-10-11 1.0.4
    • fixed and restored ModelConfig.write
  • 2017-10-11 1.0.3
    • disabled ModelConfig.write due to corruption
  • 2017-10-10 1.0.2
    • separate 32/64-bit installers
  • 2017-09-29 1.0.1
    • initial GitHub release (alpha)