From 3c7d151df74e1ac77aff0d50762b5b93929e37aa Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Tue, 30 May 2023 14:40:21 +0200 Subject: [PATCH 01/30] Update build.yml --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cec9c3d..0fc3fb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,6 +2,8 @@ name: Build Binarys on: push: + branches: + - dev paths: - 'cpp/**' - '.github/workflows/build.yml' From 9e12138cd4aad22da6ded36a42ca86538e0894e5 Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Tue, 30 May 2023 14:40:44 +0200 Subject: [PATCH 02/30] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0fc3fb8..5f3b840 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build Binarys +name: Build Binaries on: push: From cec94090d3191986728f4f2a8760e0187d68b360 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 May 2023 12:41:52 +0000 Subject: [PATCH 03/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 19456 -> 19456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 593c541983a26dd80b51912b3d3d0338e2ab87ab..561eed628c42db00d228a067ca8859a568e99ac0 100644 GIT binary patch delta 24 dcmZpe!Pqc^aRDO}%lpktj7_>Ax=pW2764`A2q6Ff delta 24 dcmZpe!Pqc^aRDRK6~@g>j7_>Ax=pW2764@{2ju_& From ebe34ee6923fe0ff535ee9d0b9de3ae1e354ff6f Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Wed, 31 May 2023 13:15:56 +0200 Subject: [PATCH 04/30] Update serial_windows.cpp --- cpp/src/serial_windows.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 1044cbb..6f00387 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -117,7 +117,7 @@ auto serialRead( } timeouts.ReadIntervalTimeout = timeout; - timeouts.ReadTotalTimeoutConstant = timeout; + timeouts.ReadTotalTimeoutConstant = 1; timeouts.ReadTotalTimeoutMultiplier = multiplier; // Error if timeout set fails @@ -152,7 +152,7 @@ auto serialReadUntil( } timeouts.ReadIntervalTimeout = timeout; - timeouts.ReadTotalTimeoutConstant = timeout; + timeouts.ReadTotalTimeoutConstant = 1; timeouts.ReadTotalTimeoutMultiplier = multiplier; // Error if timeout set fails From 34e75fb5873ad353f29a668f5ec50fa860c63cca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 31 May 2023 11:19:15 +0000 Subject: [PATCH 05/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 19456 -> 19456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 561eed628c42db00d228a067ca8859a568e99ac0..5b99f09ae46d8e1175a39682f6a4a708aeccf736 100644 GIT binary patch delta 446 zcmZpe!Pqc^aRDQSb93JeUb2TH|yJ%0Wd zl>!PGAMogoQ3>#9KH?C6*rS_Q4k+f+>!V^|e88m}C~&>gMa94aNGSXleIyUl{P(}; zT?aJH-9SzMMb80+yFpsIV>n>OPL32QiagHR43uJI06V4v$owzr2Qg0o>=;F$knw?+ zQ<)hUJUZv7+yE-{=oQ_p2;y#0nE~Xw0^Qnc`qB>Qz|J))6F>^O&%NNBtSBnX$T-tU?(OvrAm*4rHN3(4OP(;9k-uhg>-Dk;ep6szc;dyt0CYY>0+9V}v#P1SfM_I; Sc>^d67J@4IwmH*vIvW7-Jd<(& delta 482 zcmZpe!Pqc^aRDPU%lp#J%#7!SqFp*!>m3;wTsnD6fYg6cF9imM)&r$ty&gaRi^>9p zj1PEp$EXB&G#_z@KkU)Xs|XbH>Ge@DFh1bY4HUTE>7rub0VEXui$0ZyY5x0P^uc5U z5izlg4h#(4AQcEh&YU?jIZ~vk9%ywNP!?!)HIVu*8VJ!X0Jd5MC}e!#HcN=X9=7nE+DIeeMO%*Z=?dx5e&v?SAjlnS0#T z`W=5S3nK%AWAhnCpU&F<{NV>&I#Unx3%XAB73Hb-{C~iy!G@io^c&D89=*QrUo3g| z|G!6fD7#N@?R%f@()S+CzXUwGS$l!@0L}O4F8%Mz@BGiB*|rHNBH+RA%$o#~>h!(t zVf~@J)Ikt+s{o_4)nHo?yd3=B`a7#M*5W=H_CKW|nw)fW&A12S&_ Qg~38lC7(BEx=v>U0QKdlNB{r; From 10d02a3750ba61111baba1286fea890a7721817c Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Wed, 31 May 2023 14:47:12 +0200 Subject: [PATCH 06/30] Update serial_windows.cpp --- cpp/src/serial_windows.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 6f00387..3f2dcb8 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -117,7 +117,7 @@ auto serialRead( } timeouts.ReadIntervalTimeout = timeout; - timeouts.ReadTotalTimeoutConstant = 1; + timeouts.ReadTotalTimeoutConstant = multiplier; timeouts.ReadTotalTimeoutMultiplier = multiplier; // Error if timeout set fails @@ -152,7 +152,7 @@ auto serialReadUntil( } timeouts.ReadIntervalTimeout = timeout; - timeouts.ReadTotalTimeoutConstant = 1; + timeouts.ReadTotalTimeoutConstant = multiplier; timeouts.ReadTotalTimeoutMultiplier = multiplier; // Error if timeout set fails From df896500b3c6ec08d1477bee6b1081f2812af1e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 31 May 2023 12:51:05 +0000 Subject: [PATCH 07/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 19456 -> 19456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 5b99f09ae46d8e1175a39682f6a4a708aeccf736..3c11ed4f852caaed331831c58ab5b953b32d799c 100644 GIT binary patch delta 480 zcmZpe!Pqc^aRDRKTBprSj2DEWT{?N|9T^yaR0)v!FY2Yhz|eZ2RIJzI=YLUIppfwa zkM0}T)Ke**E?NQ3_O5@!hg}H@-WSR|BF7DY#<^g zcF}=>p&O(EVaS;?XC_CA6x9RmYy-*yscIngUo;S+TL5ge3Q)-Sz{?rT3=AHfb5w3H z0O?-QZHgf77L^%5t}D=Gy{2#MfX?Y$qcQ=cp!?hlp0EG^^KXmY@7n#|r8D=qtMxnn zUKU0M2FK?_Js@A?0LQ-cjVL+Ll5Pds{k-@jP$?*D&} z?of80-rDy*-KFn6ntus+bhGvX?E#wa(OvrAm*4rHN3(4cP(;9k-lz0HsSWPjeQYN{_F8U|$E01AVJ Nph`Y(&UBs51^{?lr(^&C delta 444 zcmZpe!Pqc^aRDQfy6$Es#tTCA$60F}85kHD7#LhSc?*He|Dx^+3=FLYO2v9Te*PDg z0ty))@aT?F3Giq>;t+q>qnlR_DCX1aqheruz@-}~aJ|z-#lQndDEt?FBoEX4_rK^} z2Q#cwukmHkJfMeE$x#xh>G(`3W0R} z@Mt|yV$3hU`M#(*6Qjsxafw_pP{_CG^|1+lQ($0t;>ExKbUi}?ko|45s;Rz!Xe5w% R11Jm@f-3p8In#AI8vujql7avL From 70125c02c5d4c90d3ab246df4a8e75c64af63c8b Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Tue, 6 Jun 2023 15:18:50 +0200 Subject: [PATCH 08/30] Add files via upload --- readme.md | 6 + schnittstelle.drawio | 951 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 957 insertions(+) create mode 100644 readme.md create mode 100644 schnittstelle.drawio diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e10687f --- /dev/null +++ b/readme.md @@ -0,0 +1,6 @@ +- [Communications Functions](https://learn.microsoft.com/en-us/windows/win32/devio/communications-functions) +- [CreateFileA function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea) +- [CloseHandle function](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle) +- [ReadFile function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile) +- [WriteFile function](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-writefile) +- [PurgeComm function](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm) diff --git a/schnittstelle.drawio b/schnittstelle.drawio new file mode 100644 index 0000000..b668eed --- /dev/null +++ b/schnittstelle.drawio @@ -0,0 +1,951 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 486d80b35959ccb18eabedc3858454ec2828c74f Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Tue, 6 Jun 2023 15:19:22 +0200 Subject: [PATCH 09/30] Rename readme.md to links.md --- readme.md => links.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename readme.md => links.md (100%) diff --git a/readme.md b/links.md similarity index 100% rename from readme.md rename to links.md From 1ebe31f828ca176a26c178b5a50345539d460362 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 12:16:26 +0200 Subject: [PATCH 10/30] fix: :bug: wrapped handle in namespace --- cpp/src/serial_unix.cpp | 2 ++ cpp/src/serial_windows.cpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cpp/src/serial_unix.cpp b/cpp/src/serial_unix.cpp index 7fca11b..741f721 100644 --- a/cpp/src/serial_unix.cpp +++ b/cpp/src/serial_unix.cpp @@ -9,9 +9,11 @@ #include #include +namespace { int hSerialPort; termios2 tty; std::string data; +} void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 3f2dcb8..7a5385b 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -3,11 +3,12 @@ #include "serial.h" - +namespace { HANDLE hSerialPort; DCB dcbSerialParams = {0}; COMMTIMEOUTS timeouts = {0}; std::string data; +} void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); From cb4e8259c390e64f9e9fbb1572d3898cfab1dcd8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 10:19:19 +0000 Subject: [PATCH 11/30] Commited compiled binaries --- ts/bin/linux.so | Bin 26328 -> 22280 bytes ts/bin/windows.dll | Bin 19456 -> 19456 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/linux.so b/ts/bin/linux.so index f78d8af4d1c57d8589310feba3987b147bcacc47..c7d24a60301cdcb25785150be1dfb4a71de220c4 100644 GIT binary patch delta 7245 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 delta 7350 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 UWYgVsvl4IBYrQN&-|=MrKhr#)ZvX%Q diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 3c11ed4f852caaed331831c58ab5b953b32d799c..7a4e8a1a416288c480cc1675b187fb9d94e4e8d5 100644 GIT binary patch delta 5554 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 Date: Sat, 10 Jun 2023 12:54:55 +0200 Subject: [PATCH 12/30] Updated mod.ts --- mod.ts | 12 ++++++------ ts/Serial.ts | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mod.ts b/mod.ts index 57749b1..7a304bd 100644 --- a/mod.ts +++ b/mod.ts @@ -1,6 +1,6 @@ -export { Serial } from './lib/Serial.ts'; -export { baudrates } from './lib/constants/baudrates.ts'; -export { dataBits } from './lib/constants/data_bits.ts'; -export { parity } from './lib/constants/parity.ts'; -export { stopBits } from './lib/constants/stop_bits.ts'; -export { statusCodes } from './lib/constants/status_codes.ts'; +export { Serial } from './ts/Serial.ts'; +export { baudrates } from './ts/constants/baudrates.ts'; +export { dataBits } from './ts/constants/data_bits.ts'; +export { parity } from './ts/constants/parity.ts'; +export { stopBits } from './ts/constants/stop_bits.ts'; +export { statusCodes } from './ts/constants/status_codes.ts'; diff --git a/ts/Serial.ts b/ts/Serial.ts index 8bb631a..7579e07 100644 --- a/ts/Serial.ts +++ b/ts/Serial.ts @@ -10,7 +10,7 @@ import { SerialFunctions } from "./interfaces/serial_functions.d.ts"; import { SerialOptions } from "./interfaces/serial_options.d.ts"; import { loadBinaryForOS } from "./load_binary_for_os.ts"; -const pathToBinariesDirectory = './lib/bin'; +const pathToBinariesDirectory = './ts/bin'; export class Serial { private _isOpen : boolean; From 386f64acbf87ae8cb2949baa77a9b903df99312a Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:13:55 +0200 Subject: [PATCH 13/30] feat: :sparkles: handling handle outside from c++ --- cpp/include/serial.h | 9 ++++++--- cpp/src/serial_windows.cpp | 34 +++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/cpp/include/serial.h b/cpp/include/serial.h index 6eded48..8d85217 100644 --- a/cpp/include/serial.h +++ b/cpp/include/serial.h @@ -22,17 +22,18 @@ extern void (*writeCallback)(int bytes); extern "C" { #endif - MODULE_API void serialOpen( + MODULE_API auto serialOpen( void* port, const int baudrate, const int dataBits, const int parity = 0, const int stopBits = 0 - ); + ) -> int; - MODULE_API void serialClose(); + MODULE_API void serialClose(int64_t pointer); MODULE_API auto serialRead( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, @@ -40,6 +41,7 @@ extern "C" { ) -> int; MODULE_API auto serialReadUntil( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, @@ -48,6 +50,7 @@ extern "C" { ) -> int; MODULE_API auto serialWrite( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 7a5385b..b282f40 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -4,7 +4,6 @@ #include "serial.h" namespace { -HANDLE hSerialPort; DCB dcbSerialParams = {0}; COMMTIMEOUTS timeouts = {0}; std::string data; @@ -14,13 +13,15 @@ void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); void (*writeCallback)(int bytes); -void serialOpen( +auto serialOpen( void* port, const int baudrate, const int dataBits, const int parity, const int stopBits -) { +) -> int { + + HANDLE hSerialPort; char *portName = static_cast(port); @@ -39,7 +40,7 @@ void serialOpen( // Error if open fails if (hSerialPort == INVALID_HANDLE_VALUE) { errorCallback(status(StatusCodes::INVALID_HANDLE_ERROR)); - return; + return -1; } // Error if configuration get fails @@ -47,12 +48,12 @@ void serialOpen( // Error if close fails if (!CloseHandle(hSerialPort)) { errorCallback(status(StatusCodes::CLOSE_HANDLE_ERROR)); - return; + return -1; } errorCallback(status(StatusCodes::GET_STATE_ERROR)); - return; + return -1; } dcbSerialParams.BaudRate = baudrate; @@ -65,11 +66,11 @@ void serialOpen( // Error if close fails if (!CloseHandle(hSerialPort)) { errorCallback(status(StatusCodes::CLOSE_HANDLE_ERROR)); - return; + return -1; } errorCallback(status(StatusCodes::SET_STATE_ERROR)); - return; + return -1; } timeouts.ReadIntervalTimeout = 50; @@ -83,15 +84,18 @@ void serialOpen( // Error if close fails if (!CloseHandle(hSerialPort)) { errorCallback(status(StatusCodes::CLOSE_HANDLE_ERROR)); - return; + return -1; } errorCallback(status(StatusCodes::SET_TIMEOUT_ERROR)); - return; + return -1; } + return int64_t(hSerialPort); } -void serialClose() { +void serialClose(int64_t pointer) { + HANDLE hSerialPort = &pointer; + // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { errorCallback(status(StatusCodes::INVALID_HANDLE_ERROR)); @@ -106,11 +110,14 @@ void serialClose() { } auto serialRead( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, const int multiplier ) -> int { + HANDLE hSerialPort = &pointer; + // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { errorCallback(status(StatusCodes::INVALID_HANDLE_ERROR)); @@ -140,12 +147,15 @@ auto serialRead( } auto serialReadUntil( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, const int multiplier, void* searchString ) -> int { + HANDLE hSerialPort = &pointer; + // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { errorCallback(status(StatusCodes::INVALID_HANDLE_ERROR)); @@ -188,11 +198,13 @@ auto serialReadUntil( } auto serialWrite( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, const int multiplier ) -> int { + HANDLE hSerialPort = &pointer; DWORD bytesWritten = 0; From 0190d172d73c66343a225b318462b86ff9d2a078 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:15:18 +0200 Subject: [PATCH 14/30] ci: :bug: added new branch --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f3b840..451396c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,7 @@ on: push: branches: - dev + - testing paths: - 'cpp/**' - '.github/workflows/build.yml' From 06c05ab6850324ac3e2641ac5788b89ec3645790 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:29:02 +0200 Subject: [PATCH 15/30] fix: --- cpp/src/serial_unix.cpp | 5 ++++- cpp/src/serial_windows.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cpp/src/serial_unix.cpp b/cpp/src/serial_unix.cpp index 741f721..5d04f80 100644 --- a/cpp/src/serial_unix.cpp +++ b/cpp/src/serial_unix.cpp @@ -122,7 +122,7 @@ void serialOpen( return; } -void serialClose() { +void serialClose(int64_t pointer) { // Error if close fails if (close(hSerialPort) == -1) { errorCallback(status(StatusCodes::CLOSE_HANDLE_ERROR)); @@ -133,6 +133,7 @@ void serialClose() { } auto serialRead( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, @@ -168,6 +169,7 @@ auto serialRead( } auto serialReadUntil( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, @@ -202,6 +204,7 @@ auto serialReadUntil( } auto serialWrite( + int64_t pointer, void* buffer, const int bufferSize, const int timeout, diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index b282f40..158daa1 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -1,6 +1,7 @@ +#include #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) #include - +#include #include "serial.h" namespace { @@ -9,6 +10,8 @@ COMMTIMEOUTS timeouts = {0}; std::string data; } +std::ofstream outlog("log.log", std::ios::out); + void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); void (*writeCallback)(int bytes); @@ -90,6 +93,7 @@ auto serialOpen( errorCallback(status(StatusCodes::SET_TIMEOUT_ERROR)); return -1; } + outlog << "open:" << int64_t(hSerialPort) << "\n"; return int64_t(hSerialPort); } @@ -117,6 +121,7 @@ auto serialRead( const int multiplier ) -> int { HANDLE hSerialPort = &pointer; + outlog << "read:" << int64_t(hSerialPort) << "\n"; // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { @@ -205,6 +210,7 @@ auto serialWrite( const int multiplier ) -> int { HANDLE hSerialPort = &pointer; + outlog << "write:" << int64_t(hSerialPort) << "\n"; DWORD bytesWritten = 0; From ebe1e77ab5daa98d379ba303b99d5104d312c16b Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:31:31 +0200 Subject: [PATCH 16/30] fix: --- cpp/src/serial_unix.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cpp/src/serial_unix.cpp b/cpp/src/serial_unix.cpp index 5d04f80..f364fcd 100644 --- a/cpp/src/serial_unix.cpp +++ b/cpp/src/serial_unix.cpp @@ -19,13 +19,13 @@ void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); void (*writeCallback)(int bytes); -void serialOpen( +auto serialOpen( void* port, const int baudrate, const int dataBits, const int parity, const int stopBits -) { +) -> int64_t { char *portName = static_cast(port); // Open new serial connection hSerialPort = open(portName, O_RDWR); @@ -33,13 +33,13 @@ void serialOpen( // Error if open fails if(hSerialPort == -1){ errorCallback(status(StatusCodes::INVALID_HANDLE_ERROR)); - return; + return -1; } // Get the current com configuration if(ioctl(hSerialPort, TCGETS2, &tty) == -1){ errorCallback(status(StatusCodes::GET_STATE_ERROR)); - return; + return -1; } tty.c_cflag &= ~PARENB; // Clear parity bit, disabling parity (most common) @@ -116,10 +116,10 @@ void serialOpen( // Save tty settings, also checking for error if (ioctl(hSerialPort, TCSETS2, &tty) == -1){ errorCallback(status(StatusCodes::SET_STATE_ERROR)); - return; + return -1; } - return; + return 0; } void serialClose(int64_t pointer) { From 4e26e122e1e8fa36075ffbcf9bd5aa8b8305b514 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:34:02 +0200 Subject: [PATCH 17/30] fix: --- cpp/include/serial.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/include/serial.h b/cpp/include/serial.h index 8d85217..1aa75da 100644 --- a/cpp/include/serial.h +++ b/cpp/include/serial.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include "status_codes.h" @@ -28,7 +29,7 @@ extern "C" { const int dataBits, const int parity = 0, const int stopBits = 0 - ) -> int; + ) -> int64_t; MODULE_API void serialClose(int64_t pointer); From 8e2c289075a0ffb47e9965b6075daf14d2a04c11 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:36:19 +0200 Subject: [PATCH 18/30] fix: --- cpp/src/serial_windows.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 158daa1..4dd2922 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -22,7 +22,7 @@ auto serialOpen( const int dataBits, const int parity, const int stopBits -) -> int { +) -> int64_t { HANDLE hSerialPort; From df31e30d5915b272becaa2370281e94d34aa42b8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 11:39:17 +0000 Subject: [PATCH 19/30] Commited compiled binaries --- ts/bin/linux.so | Bin 22280 -> 22280 bytes ts/bin/windows.dll | Bin 19456 -> 32768 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/linux.so b/ts/bin/linux.so index c7d24a60301cdcb25785150be1dfb4a71de220c4..74202dc86a99326321bd5d32306e1b0bc7dae47b 100644 GIT binary patch delta 2485 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 Ywz@y+U|mj>5f`JrjD^Ft`WyVe0eu0IPXGV_ diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 7a4e8a1a416288c480cc1675b187fb9d94e4e8d5..d97bcbdc7fe7af163392343f6c06ce58e47056ea 100644 GIT binary patch literal 32768 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 literal 19456 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 From 6874e755e871734353619fee59d01c703f1cd8a8 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:43:30 +0200 Subject: [PATCH 20/30] fix: --- cpp/src/serial_windows.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 4dd2922..0c972c8 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -93,7 +93,8 @@ auto serialOpen( errorCallback(status(StatusCodes::SET_TIMEOUT_ERROR)); return -1; } - outlog << "open:" << int64_t(hSerialPort) << "\n"; + outlog << "open norm:" << hSerialPort << "\n"; + outlog << "open after:" << int64_t(hSerialPort) << "\n"; return int64_t(hSerialPort); } @@ -209,8 +210,9 @@ auto serialWrite( const int timeout, const int multiplier ) -> int { + outlog << "write before:" << pointer << "\n"; HANDLE hSerialPort = &pointer; - outlog << "write:" << int64_t(hSerialPort) << "\n"; + outlog << "write after:" << int64_t(hSerialPort) << "\n"; DWORD bytesWritten = 0; From 747134d4ff24d4c9ba1d519e785b6bfb900c4411 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 11:46:45 +0000 Subject: [PATCH 21/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 32768 -> 32768 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index d97bcbdc7fe7af163392343f6c06ce58e47056ea..7e33894ac783ce1f387775d3e26eca488d861321 100644 GIT binary patch delta 8002 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 ZE!x$+D`2;Ecld6{?!?{A)sJlC{{rZ{tX2R3 delta 7840 zcmeHM`&*RNzF%vc;U+MHFx&(gU=R>Q5b%P4!_8iFAT(4&H1I-{W@tmY^8z{E#7~hKV61{86Dkz z>-JsWwHR7jG%YQf)?7_L*_vP6Y|ngA{-JiDJauJF?bF~**DuvQqoTX+aTR;&Jo3wR z&x2q2^CcBulrPo(41Urzcijsr{!q75#UZsG{88nn-9Nv9_d�Q9{Uq4PNBDsdn9h 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 Date: Sat, 10 Jun 2023 13:48:36 +0200 Subject: [PATCH 22/30] fix: --- cpp/src/serial_windows.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 0c972c8..5f2045f 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -211,7 +211,7 @@ auto serialWrite( const int multiplier ) -> int { outlog << "write before:" << pointer << "\n"; - HANDLE hSerialPort = &pointer; + HANDLE hSerialPort = reinterpret_cast(pointer); outlog << "write after:" << int64_t(hSerialPort) << "\n"; DWORD bytesWritten = 0; From 26076f6e62cf0ae5150db01c0d1056c038af3674 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 11:51:12 +0000 Subject: [PATCH 23/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 32768 -> 32768 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 7e33894ac783ce1f387775d3e26eca488d861321..061908fa70d9f2cf8e7989d4829dbc8b8221820e 100644 GIT binary patch delta 5551 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 delta 5598 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 From f44dd72130cba348d03e676e963e558c0eedb858 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:51:31 +0200 Subject: [PATCH 24/30] fix: --- cpp/src/serial_windows.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index 5f2045f..e4bdce2 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -1,7 +1,5 @@ -#include #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) #include -#include #include "serial.h" namespace { @@ -10,8 +8,6 @@ COMMTIMEOUTS timeouts = {0}; std::string data; } -std::ofstream outlog("log.log", std::ios::out); - void (*errorCallback)(int errorCode); void (*readCallback)(int bytes); void (*writeCallback)(int bytes); @@ -93,8 +89,6 @@ auto serialOpen( errorCallback(status(StatusCodes::SET_TIMEOUT_ERROR)); return -1; } - outlog << "open norm:" << hSerialPort << "\n"; - outlog << "open after:" << int64_t(hSerialPort) << "\n"; return int64_t(hSerialPort); } @@ -121,8 +115,7 @@ auto serialRead( const int timeout, const int multiplier ) -> int { - HANDLE hSerialPort = &pointer; - outlog << "read:" << int64_t(hSerialPort) << "\n"; + HANDLE hSerialPort = reinterpret_cast(pointer); // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { @@ -160,7 +153,7 @@ auto serialReadUntil( const int multiplier, void* searchString ) -> int { - HANDLE hSerialPort = &pointer; + HANDLE hSerialPort = reinterpret_cast(pointer); // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { @@ -210,9 +203,7 @@ auto serialWrite( const int timeout, const int multiplier ) -> int { - outlog << "write before:" << pointer << "\n"; HANDLE hSerialPort = reinterpret_cast(pointer); - outlog << "write after:" << int64_t(hSerialPort) << "\n"; DWORD bytesWritten = 0; From 949f183323aa3ece96d04a00111e6bbcf69230d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 11:54:31 +0000 Subject: [PATCH 25/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 32768 -> 19968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 061908fa70d9f2cf8e7989d4829dbc8b8221820e..e08b5f1f0c2baf1364dc792e143d5d928d62c404 100644 GIT binary patch delta 9760 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 literal 32768 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 From a56019609091245395194919091b624f5dbc7f57 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:55:15 +0200 Subject: [PATCH 26/30] fix: --- cpp/src/serial_windows.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/src/serial_windows.cpp b/cpp/src/serial_windows.cpp index e4bdce2..e39028e 100644 --- a/cpp/src/serial_windows.cpp +++ b/cpp/src/serial_windows.cpp @@ -93,7 +93,7 @@ auto serialOpen( } void serialClose(int64_t pointer) { - HANDLE hSerialPort = &pointer; + HANDLE hSerialPort = reinterpret_cast(pointer); // Error if handle is invalid if (hSerialPort == INVALID_HANDLE_VALUE) { From 232d6c53671f1883d500b10902f074f01dbdbc73 Mon Sep 17 00:00:00 2001 From: Katze719 Date: Sat, 10 Jun 2023 13:55:48 +0200 Subject: [PATCH 27/30] test: :white_check_mark: new code --- mod.ts | 12 +++++------ test.ts | 31 +++++++++++++++++++++++++++++ ts/Serial.ts | 18 ++++++++++++++--- ts/interfaces/serial_functions.d.ts | 7 +++++-- ts/register_serial_functions.ts | 9 +++++++-- 5 files changed, 64 insertions(+), 13 deletions(-) create mode 100644 test.ts diff --git a/mod.ts b/mod.ts index 57749b1..7a304bd 100644 --- a/mod.ts +++ b/mod.ts @@ -1,6 +1,6 @@ -export { Serial } from './lib/Serial.ts'; -export { baudrates } from './lib/constants/baudrates.ts'; -export { dataBits } from './lib/constants/data_bits.ts'; -export { parity } from './lib/constants/parity.ts'; -export { stopBits } from './lib/constants/stop_bits.ts'; -export { statusCodes } from './lib/constants/status_codes.ts'; +export { Serial } from './ts/Serial.ts'; +export { baudrates } from './ts/constants/baudrates.ts'; +export { dataBits } from './ts/constants/data_bits.ts'; +export { parity } from './ts/constants/parity.ts'; +export { stopBits } from './ts/constants/stop_bits.ts'; +export { statusCodes } from './ts/constants/status_codes.ts'; diff --git a/test.ts b/test.ts new file mode 100644 index 0000000..70e493d --- /dev/null +++ b/test.ts @@ -0,0 +1,31 @@ +import * as serialLink from "./mod.ts"; + +const serial1 = new serialLink.Serial(); + +let port; + +while(!port) { + const availablePorts = serial1.getPortsInfo(); + + console.log('serial properties (available ports):', availablePorts); + + port = prompt('Port to connect:'); +} + +serial1.open(port, 9600); + +const textToSend = prompt('Text to send:') || ''; + +const dataToSend = new TextEncoder().encode(textToSend); + +console.log('serial.write():', serial1.write(dataToSend, dataToSend.length, 10, 10)); + +console.log('writing:', textToSend); + +const dataToRead = new Uint8Array(20); + +console.log('serial.read()', serial1.read(dataToRead, dataToRead.length, 10, 10)); + +console.log('reading:', new TextDecoder().decode(dataToRead)); + +serial1.close(); diff --git a/ts/Serial.ts b/ts/Serial.ts index 8bb631a..2f4e7e6 100644 --- a/ts/Serial.ts +++ b/ts/Serial.ts @@ -10,11 +10,12 @@ import { SerialFunctions } from "./interfaces/serial_functions.d.ts"; import { SerialOptions } from "./interfaces/serial_options.d.ts"; import { loadBinaryForOS } from "./load_binary_for_os.ts"; -const pathToBinariesDirectory = './lib/bin'; +const pathToBinariesDirectory = './ts/bin'; export class Serial { private _isOpen : boolean; private _dl : SerialFunctions; + private handle! : number | bigint; /** * Create a new instance of a serial connection. @@ -54,7 +55,7 @@ export class Serial { baudrate : Baudrate, serialOptions? : SerialOptions ) : void { - this._dl.open( + this.handle = this._dl.open( encode(port + '\0'), baudrate, serialOptions?.dataBits || dataBits.EIGHT, @@ -62,6 +63,9 @@ export class Serial { serialOptions?.stopBits || stopBits.ONE ); + console.log(this.handle); + + this._isOpen = true; } @@ -69,7 +73,7 @@ export class Serial { * Closes the serial connection. */ close() { - this._dl.close(); + this._dl.close(this.handle); this._isOpen = false; } @@ -88,7 +92,10 @@ export class Serial { timeout = 0, multiplier = 10 ) : number { + console.log('read from handle:', this.handle); + const result = this._dl.read( + this.handle, buffer, bytes, timeout, @@ -117,6 +124,7 @@ export class Serial { searchString = '', ) : number { const result = this._dl.readUntil( + this.handle, buffer, bytes, timeout, @@ -142,7 +150,11 @@ export class Serial { timeout = 0, multiplier = 10 ) : number { + + console.log('write to handle:', this.handle); + const result = this._dl.write( + this.handle, buffer, bytes, timeout, diff --git a/ts/interfaces/serial_functions.d.ts b/ts/interfaces/serial_functions.d.ts index 890b9c4..bdf5d6c 100644 --- a/ts/interfaces/serial_functions.d.ts +++ b/ts/interfaces/serial_functions.d.ts @@ -10,15 +10,17 @@ export interface SerialFunctions { dataBits : DataBits, parity : Parity, stopBits : StopBits - ) => void, - close : () => void, + ) => number | bigint, + close : (handle : number | bigint) => void, read : ( + handle : number | bigint, buffer : Uint8Array, bufferSize : number, timeout : number, multiplier : number ) => number, readUntil : ( + handle : number | bigint, buffer : Uint8Array, bufferSize : number, timeout : number, @@ -26,6 +28,7 @@ export interface SerialFunctions { searchString : Uint8Array ) => number, write : ( + handle : number | bigint, buffer : Uint8Array, bufferSize : number, timeout : number, diff --git a/ts/register_serial_functions.ts b/ts/register_serial_functions.ts index 94e6351..ba28af5 100644 --- a/ts/register_serial_functions.ts +++ b/ts/register_serial_functions.ts @@ -20,15 +20,18 @@ export function registerSerialFunctions( 'i32' ], // Status code - result: 'void' + result: 'i64' }, 'serialClose': { - parameters: [], + parameters: [ + 'i64' + ], // Status code result: 'i32' }, 'serialRead': { parameters: [ + 'i64', // Buffer 'buffer', // Buffer Size @@ -43,6 +46,7 @@ export function registerSerialFunctions( }, 'serialReadUntil': { parameters: [ + 'i64', // Buffer 'buffer', // Buffer Size @@ -59,6 +63,7 @@ export function registerSerialFunctions( }, 'serialWrite': { parameters: [ + 'i64', // Buffer 'buffer', // Buffer Size From eae0006be395ee23aaf13ac98d0eac35d61fb177 Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Sat, 10 Jun 2023 14:00:52 +0200 Subject: [PATCH 28/30] Update windows.dll --- ts/bin/windows.dll | Bin 19456 -> 19968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 7a4e8a1a416288c480cc1675b187fb9d94e4e8d5..3e6f46627dd8f9c051b3fbcf8491a6f4ddcee486 100644 GIT binary patch delta 6299 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 F{{cy?fd>Ep delta 6220 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 ZXDEUe!?y)^6x2Nzp9J0gadU5m{SPwWOacG^ From 1778785c17024beb0b3d2a8b8fec0e0bafa420f8 Mon Sep 17 00:00:00 2001 From: Mqx <62719703+Mqxx@users.noreply.github.com> Date: Sat, 10 Jun 2023 14:08:08 +0200 Subject: [PATCH 29/30] Update test.ts --- test.ts | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/test.ts b/test.ts index 70e493d..f491174 100644 --- a/test.ts +++ b/test.ts @@ -1,31 +1,43 @@ import * as serialLink from "./mod.ts"; const serial1 = new serialLink.Serial(); +const serial2 = new serialLink.Serial(); -let port; +let port1 = ''; +let port2 = ''; -while(!port) { +while(!port1 && !port2) { const availablePorts = serial1.getPortsInfo(); console.log('serial properties (available ports):', availablePorts); - port = prompt('Port to connect:'); + port1 = prompt('Port1 to connect:') || ''; + port2 = prompt('Port2 to connect:') || ''; } -serial1.open(port, 9600); +serial1.open(port1, 9600); +serial2.open(port2, 9600); -const textToSend = prompt('Text to send:') || ''; +const textToSend1 = prompt('Text1 to send:') || ''; +const textToSend2 = prompt('Text2 to send:') || ''; -const dataToSend = new TextEncoder().encode(textToSend); +const dataToSend1 = new TextEncoder().encode(textToSend1); +const dataToSend2 = new TextEncoder().encode(textToSend2); -console.log('serial.write():', serial1.write(dataToSend, dataToSend.length, 10, 10)); +console.log('serial1.write():', serial1.write(dataToSend1, dataToSend1.length, 10, 10)); +console.log('writing1:', textToSend1); -console.log('writing:', textToSend); +console.log('serial2.write():', serial2.write(dataToSend2, dataToSend2.length, 10, 10)); +console.log('writing2:', textToSend2); -const dataToRead = new Uint8Array(20); +const dataToRead1 = new Uint8Array(20); +const dataToRead2 = new Uint8Array(20); -console.log('serial.read()', serial1.read(dataToRead, dataToRead.length, 10, 10)); +console.log('serial1.read()', serial1.read(dataToRead1, dataToRead1.length, 10, 10)); +console.log('reading1:', new TextDecoder().decode(dataToRead1)); -console.log('reading:', new TextDecoder().decode(dataToRead)); +console.log('serial2.read()', serial2.read(dataToRead2, dataToRead2.length, 10, 10)); +console.log('reading2:', new TextDecoder().decode(dataToRead2)); serial1.close(); +serial2.close(); From 8693c27db4a91a4a7f0e14cecaf2820882909b68 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 12:10:12 +0000 Subject: [PATCH 30/30] Commited compiled binaries --- ts/bin/windows.dll | Bin 19968 -> 19968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ts/bin/windows.dll b/ts/bin/windows.dll index 3e6f46627dd8f9c051b3fbcf8491a6f4ddcee486..28c09d04a525e99b68977ba7bf5756e887562ab0 100644 GIT binary patch delta 25 ecmZpe!`Lu~aRUb