# WhaleTeq MECG 2.0 SDK Changelog

**Test Environment:**
* Linux Kernel Version (Ubuntu): 6.8.0.49-generic
* Raspberry Pi Version: Raspberry Pi 4 Model B (4GB RAM)
* Raspberry Pi Linux Kernel Version: 5.10.103-v7l+ (32-bit), 6.1.21-v8+ (64-bit)
* macOS Version: macOS Sonoma 14.4.1

**IMPORTANT:**
1. the calling convention is _cdecl
2. (Linux/ Raspberry Pi/ macOS) if the devices can not be connected
   1. switch to root user   
   2. remove all the files - `/var/lock/whaleteq*.lock` (Linux) or `/private/var/whaleteq/lock/whaleteq*.lock` (macOS) and try againain

## Version 1.0.7.2 - 2026-01-22
1. FIX: potential hang when the device is disconnected

## Version 1.0.6.2 - 2025-09-09
1. FIX: signal outputting error in Linux
2. CHG: added support macOS Sequoia

## Version 1.0.6.1 - 2024-11-21
1. NEW: added play data synchronization functionality

## Version 1.0.5.4 - 2024-10-23
1. FIX: (macOS) the output signal may fail probabilistically
2. CHG: update `MECGGetSerialNumber()`; added support all models

## Version 1.0.5.1 - 2024-08-27
1. NEW: added support to load triangle pulse (100ms)
2. NEW: added Mac library

## Version 1.0.4.4 - 2023-05-17
1. FIX: the outputted waveform is continuously shifted if the WhaleTeq-format raw data is loaded
2. CHG: added support Linux and Raspberry Pi
3. CHG: remove c# sample code

## Version 1.0.4.0 - 2021-10-15
1. CHG: remove MECGLoadWaveformSine() and MECGLoadWaveformTriangle(); use MECGLoadWaveform() instead
2. NEW: added support to load square waveform

**IMPORTANT:**
1. MECGLoadWaveformSine() and MECGLoadWaveformTriangle() are removed

## Version 1.0.3.0 - 2020-11-04
1. redesign periodical waveform (sine/ triangle/ pulse); load as continuous waveform instead of 10-seconds waveform

## Version 1.0.2.0 - 2020-10-15
1. update ECG_HEADER structure; field ECG_SIGNAL Signal[1] is defined as a variable-length array
2. add MECGConnect() to connect to the device

## Version 1.0.1.2 - 2018-08-01
1. added support new MECG HW (DAC 16bit)
2. added support to output sine/triangle wave with different amplitudes to different leads
3. remove the maximum limitation (3hr) of ECG_HEADER.NumberOfSamplesPerSignal; the value of ECG_HEADER.NumberOfSamplesPerSignal varies based on the system memory 

## Version 1.0.0.9 - 2017-09-25
1. initial version
