diff --git a/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.dll b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..3ba060b Binary files /dev/null and b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.exe b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..537c23a Binary files /dev/null and b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/binding-fix-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/binding-fix-check/CommunityToolkit.Mvvm.dll b/.build-verify/binding-fix-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/binding-fix-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Black.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Bold.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Italic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Light.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Medium.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Regular.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-Thin.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/binding-fix-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/binding-fix-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/binding-fix-check/LatoFont/OFL.txt b/.build-verify/binding-fix-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/binding-fix-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/binding-fix-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/binding-fix-check/NModbus.dll b/.build-verify/binding-fix-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/binding-fix-check/NModbus.dll differ diff --git a/.build-verify/binding-fix-check/QuestPDF.dll b/.build-verify/binding-fix-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/binding-fix-check/QuestPDF.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/binding-fix-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/binding-fix-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/binding-fix-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/binding-fix-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/binding-fix-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/binding-fix-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/binding-fix-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/binding-fix-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/binding-fix-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/binding-fix-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/binding-fix-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/binding-fix-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/binding-fix-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/binding-fix-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/binding-fix-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/binding-fix-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/binding-fix-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/binding-fix-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/binding-fix-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.dll b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..1f39d5a Binary files /dev/null and b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.exe b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..d5df6bd Binary files /dev/null and b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/grouped-pumps-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/grouped-pumps-check/CommunityToolkit.Mvvm.dll b/.build-verify/grouped-pumps-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/grouped-pumps-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Black.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Bold.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Italic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Light.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Medium.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Regular.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-Thin.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/grouped-pumps-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/grouped-pumps-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/grouped-pumps-check/LatoFont/OFL.txt b/.build-verify/grouped-pumps-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/grouped-pumps-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/grouped-pumps-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/grouped-pumps-check/NModbus.dll b/.build-verify/grouped-pumps-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/grouped-pumps-check/NModbus.dll differ diff --git a/.build-verify/grouped-pumps-check/QuestPDF.dll b/.build-verify/grouped-pumps-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/grouped-pumps-check/QuestPDF.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/grouped-pumps-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/grouped-pumps-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.dll b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..3f70852 Binary files /dev/null and b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.exe b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..d5df6bd Binary files /dev/null and b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/pump-state-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/pump-state-check/CommunityToolkit.Mvvm.dll b/.build-verify/pump-state-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/pump-state-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Black.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Bold.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/pump-state-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/pump-state-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Italic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Light.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Medium.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Regular.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/pump-state-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-Thin.ttf b/.build-verify/pump-state-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/pump-state-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/pump-state-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/pump-state-check/LatoFont/OFL.txt b/.build-verify/pump-state-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/pump-state-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/pump-state-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/pump-state-check/NModbus.dll b/.build-verify/pump-state-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/pump-state-check/NModbus.dll differ diff --git a/.build-verify/pump-state-check/QuestPDF.dll b/.build-verify/pump-state-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/pump-state-check/QuestPDF.dll differ diff --git a/.build-verify/pump-state-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/pump-state-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/pump-state-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/pump-state-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/pump-state-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/pump-state-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/pump-state-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/pump-state-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/pump-state-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/pump-state-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/pump-state-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/pump-state-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/pump-state-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/pump-state-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/pump-state-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/pump-state-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/pump-state-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/pump-state-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/pump-state-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/pump-state-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/pump-state-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/pump-state-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/pump-state-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/pump-state-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/pump-state-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/pump-state-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/pump-state-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/pump-state-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/pump-state-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.build-verify/trend-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/trend-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/trend-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/trend-check/Cardiopulmonarybypasssystems.dll b/.build-verify/trend-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..d2ca8ba Binary files /dev/null and b/.build-verify/trend-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/trend-check/Cardiopulmonarybypasssystems.exe b/.build-verify/trend-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..d5df6bd Binary files /dev/null and b/.build-verify/trend-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/trend-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/trend-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/trend-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/trend-check/CommunityToolkit.Mvvm.dll b/.build-verify/trend-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/trend-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Black.ttf b/.build-verify/trend-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Bold.ttf b/.build-verify/trend-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/trend-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/trend-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Italic.ttf b/.build-verify/trend-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Light.ttf b/.build-verify/trend-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Medium.ttf b/.build-verify/trend-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Regular.ttf b/.build-verify/trend-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/trend-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-Thin.ttf b/.build-verify/trend-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/trend-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/trend-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/trend-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/trend-check/LatoFont/OFL.txt b/.build-verify/trend-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/trend-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/trend-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/trend-check/NModbus.dll b/.build-verify/trend-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/trend-check/NModbus.dll differ diff --git a/.build-verify/trend-check/QuestPDF.dll b/.build-verify/trend-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/trend-check/QuestPDF.dll differ diff --git a/.build-verify/trend-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/trend-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/trend-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/trend-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/trend-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/trend-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/trend-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/trend-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/trend-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/trend-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/trend-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/trend-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/trend-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/trend-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/trend-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/trend-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/trend-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/trend-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/trend-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/trend-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/trend-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/trend-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/trend-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/trend-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/trend-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/trend-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/trend-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/trend-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/trend-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/trend-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/trend-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/trend-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/trend-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/trend-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/trend-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/trend-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/trend-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/trend-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.dll b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..ea9b969 Binary files /dev/null and b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.exe b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..d5df6bd Binary files /dev/null and b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/ui-cleanup-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/ui-cleanup-check/CommunityToolkit.Mvvm.dll b/.build-verify/ui-cleanup-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/ui-cleanup-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Black.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Bold.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Italic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Light.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Medium.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Regular.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-Thin.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/ui-cleanup-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/ui-cleanup-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/ui-cleanup-check/LatoFont/OFL.txt b/.build-verify/ui-cleanup-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/ui-cleanup-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/ui-cleanup-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/ui-cleanup-check/NModbus.dll b/.build-verify/ui-cleanup-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/ui-cleanup-check/NModbus.dll differ diff --git a/.build-verify/ui-cleanup-check/QuestPDF.dll b/.build-verify/ui-cleanup-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/ui-cleanup-check/QuestPDF.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/ui-cleanup-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/ui-cleanup-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.deps.json b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.deps.json new file mode 100644 index 0000000..af77994 --- /dev/null +++ b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.deps.json @@ -0,0 +1,209 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Cardiopulmonarybypasssystems/1.0.0": { + "dependencies": { + "CommunityToolkit.Mvvm": "8.4.0", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "NModbus": "3.0.81", + "QuestPDF": "2024.12.1" + }, + "runtime": { + "Cardiopulmonarybypasssystems.dll": {} + } + }, + "CommunityToolkit.Mvvm/8.4.0": { + "runtime": { + "lib/net8.0/CommunityToolkit.Mvvm.dll": { + "assemblyVersion": "8.4.0.0", + "fileVersion": "8.4.0.1" + } + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "NModbus/3.0.81": { + "runtime": { + "lib/net6.0/NModbus.dll": { + "assemblyVersion": "3.0.81.0", + "fileVersion": "3.0.81.0" + } + } + }, + "QuestPDF/2024.12.1": { + "runtime": { + "lib/net8.0/QuestPDF.dll": { + "assemblyVersion": "2024.12.1.0", + "fileVersion": "2024.12.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-arm64/native/libQuestPdfSkia.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libqpdf.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libQuestPdfSkia.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libqpdf.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libQuestPdfSkia.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libqpdf.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libQuestPdfSkia.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-arm64/native/libqpdf.dylib": { + "rid": "osx-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libQuestPdfSkia.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libqpdf.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/QuestPdfSkia.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libgcc_s_seh-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libstdc++-6.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/libwinpthread-1.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x64/native/qpdf.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/QuestPdfSkia.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libgcc_s_dw2-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libstdc++-6.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/libwinpthread-1.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.0.0" + }, + "runtimes/win-x86/native/qpdf.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Cardiopulmonarybypasssystems/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommunityToolkit.Mvvm/8.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==", + "path": "communitytoolkit.mvvm/8.4.0", + "hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "NModbus/3.0.81": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EzKEp7CHD8ErBL36iMts+6IrZZ9FEqllaD7Y5XzhoRjlxt5yXRughQ1bxPs99QFYFkW5xfkANB0Qs1gAmYGP8Q==", + "path": "nmodbus/3.0.81", + "hashPath": "nmodbus.3.0.81.nupkg.sha512" + }, + "QuestPDF/2024.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQxbQm4Cs05EME373iDq/+6LZD1CZXyueFN7GnCyuEx1iG1Jcy4uU6cnSMtxZMPWEazOZL8hk6SZXUvVHqJgCw==", + "path": "questpdf/2024.12.1", + "hashPath": "questpdf.2024.12.1.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.dll b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.dll new file mode 100644 index 0000000..d876f77 Binary files /dev/null and b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.dll differ diff --git a/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.exe b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.exe new file mode 100644 index 0000000..308e512 Binary files /dev/null and b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.exe differ diff --git a/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.runtimeconfig.json b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.runtimeconfig.json new file mode 100644 index 0000000..d721cab --- /dev/null +++ b/.build-verify/valve-control-check/Cardiopulmonarybypasssystems.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/.build-verify/valve-control-check/CommunityToolkit.Mvvm.dll b/.build-verify/valve-control-check/CommunityToolkit.Mvvm.dll new file mode 100644 index 0000000..6167057 Binary files /dev/null and b/.build-verify/valve-control-check/CommunityToolkit.Mvvm.dll differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Black.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Black.ttf new file mode 100644 index 0000000..53a31ac Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Black.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-BlackItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-BlackItalic.ttf new file mode 100644 index 0000000..b3cee66 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-BlackItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Bold.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Bold.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-BoldItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a3b8e33 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-BoldItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-ExtraBold.ttf b/.build-verify/valve-control-check/LatoFont/Lato-ExtraBold.ttf new file mode 100644 index 0000000..8612461 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-ExtraBold.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-ExtraBoldItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-ExtraBoldItalic.ttf new file mode 100644 index 0000000..516676f Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-ExtraBoldItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-ExtraLight.ttf b/.build-verify/valve-control-check/LatoFont/Lato-ExtraLight.ttf new file mode 100644 index 0000000..648e78c Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-ExtraLight.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-ExtraLightItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-ExtraLightItalic.ttf new file mode 100644 index 0000000..569692a Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-ExtraLightItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Italic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Italic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Light.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Light.ttf new file mode 100644 index 0000000..c3f3cb5 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Light.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-LightItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-LightItalic.ttf new file mode 100644 index 0000000..9368e06 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-LightItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Medium.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Medium.ttf new file mode 100644 index 0000000..0648fb2 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Medium.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-MediumItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-MediumItalic.ttf new file mode 100644 index 0000000..af296ab Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-MediumItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Regular.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Regular.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-SemiBold.ttf b/.build-verify/valve-control-check/LatoFont/Lato-SemiBold.ttf new file mode 100644 index 0000000..3b1bccc Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-SemiBold.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-SemiBoldItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-SemiBoldItalic.ttf new file mode 100644 index 0000000..032b99d Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-SemiBoldItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-Thin.ttf b/.build-verify/valve-control-check/LatoFont/Lato-Thin.ttf new file mode 100644 index 0000000..81167fa Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-Thin.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/Lato-ThinItalic.ttf b/.build-verify/valve-control-check/LatoFont/Lato-ThinItalic.ttf new file mode 100644 index 0000000..339d2dc Binary files /dev/null and b/.build-verify/valve-control-check/LatoFont/Lato-ThinItalic.ttf differ diff --git a/.build-verify/valve-control-check/LatoFont/OFL.txt b/.build-verify/valve-control-check/LatoFont/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/.build-verify/valve-control-check/LatoFont/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.dll b/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 0000000..bd71a2b Binary files /dev/null and b/.build-verify/valve-control-check/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/.build-verify/valve-control-check/NModbus.dll b/.build-verify/valve-control-check/NModbus.dll new file mode 100644 index 0000000..5d50242 Binary files /dev/null and b/.build-verify/valve-control-check/NModbus.dll differ diff --git a/.build-verify/valve-control-check/QuestPDF.dll b/.build-verify/valve-control-check/QuestPDF.dll new file mode 100644 index 0000000..e72ec99 Binary files /dev/null and b/.build-verify/valve-control-check/QuestPDF.dll differ diff --git a/.build-verify/valve-control-check/runtimes/linux-arm64/native/libQuestPdfSkia.so b/.build-verify/valve-control-check/runtimes/linux-arm64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..bc1f499 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-arm64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/valve-control-check/runtimes/linux-arm64/native/libqpdf.so b/.build-verify/valve-control-check/runtimes/linux-arm64/native/libqpdf.so new file mode 100644 index 0000000..8dd6154 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-arm64/native/libqpdf.so differ diff --git a/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so b/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..156e3a5 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libqpdf.so b/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libqpdf.so new file mode 100644 index 0000000..0e92601 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-musl-x64/native/libqpdf.so differ diff --git a/.build-verify/valve-control-check/runtimes/linux-x64/native/libQuestPdfSkia.so b/.build-verify/valve-control-check/runtimes/linux-x64/native/libQuestPdfSkia.so new file mode 100644 index 0000000..a4812e9 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-x64/native/libQuestPdfSkia.so differ diff --git a/.build-verify/valve-control-check/runtimes/linux-x64/native/libqpdf.so b/.build-verify/valve-control-check/runtimes/linux-x64/native/libqpdf.so new file mode 100644 index 0000000..f7c50d4 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/linux-x64/native/libqpdf.so differ diff --git a/.build-verify/valve-control-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib b/.build-verify/valve-control-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..4c297cc Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/osx-arm64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/valve-control-check/runtimes/osx-arm64/native/libqpdf.dylib b/.build-verify/valve-control-check/runtimes/osx-arm64/native/libqpdf.dylib new file mode 100644 index 0000000..ba4f18a Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/osx-arm64/native/libqpdf.dylib differ diff --git a/.build-verify/valve-control-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib b/.build-verify/valve-control-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib new file mode 100644 index 0000000..b8d83f0 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/osx-x64/native/libQuestPdfSkia.dylib differ diff --git a/.build-verify/valve-control-check/runtimes/osx-x64/native/libqpdf.dylib b/.build-verify/valve-control-check/runtimes/osx-x64/native/libqpdf.dylib new file mode 100644 index 0000000..235759f Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/osx-x64/native/libqpdf.dylib differ diff --git a/.build-verify/valve-control-check/runtimes/win-x64/native/QuestPdfSkia.dll b/.build-verify/valve-control-check/runtimes/win-x64/native/QuestPdfSkia.dll new file mode 100644 index 0000000..338aded Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x64/native/QuestPdfSkia.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x64/native/libgcc_s_seh-1.dll b/.build-verify/valve-control-check/runtimes/win-x64/native/libgcc_s_seh-1.dll new file mode 100644 index 0000000..42ecb3a Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x64/native/libgcc_s_seh-1.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x64/native/libstdc++-6.dll b/.build-verify/valve-control-check/runtimes/win-x64/native/libstdc++-6.dll new file mode 100644 index 0000000..141034a Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x64/native/libstdc++-6.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x64/native/libwinpthread-1.dll b/.build-verify/valve-control-check/runtimes/win-x64/native/libwinpthread-1.dll new file mode 100644 index 0000000..19a9e5e Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x64/native/libwinpthread-1.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x64/native/qpdf.dll b/.build-verify/valve-control-check/runtimes/win-x64/native/qpdf.dll new file mode 100644 index 0000000..3f5d622 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x64/native/qpdf.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x86/native/QuestPdfSkia.dll b/.build-verify/valve-control-check/runtimes/win-x86/native/QuestPdfSkia.dll new file mode 100644 index 0000000..ae4e849 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x86/native/QuestPdfSkia.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll b/.build-verify/valve-control-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..6bb654b Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x86/native/libgcc_s_dw2-1.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x86/native/libstdc++-6.dll b/.build-verify/valve-control-check/runtimes/win-x86/native/libstdc++-6.dll new file mode 100644 index 0000000..7bb81f6 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x86/native/libstdc++-6.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x86/native/libwinpthread-1.dll b/.build-verify/valve-control-check/runtimes/win-x86/native/libwinpthread-1.dll new file mode 100644 index 0000000..1f96fb1 Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x86/native/libwinpthread-1.dll differ diff --git a/.build-verify/valve-control-check/runtimes/win-x86/native/qpdf.dll b/.build-verify/valve-control-check/runtimes/win-x86/native/qpdf.dll new file mode 100644 index 0000000..ede060d Binary files /dev/null and b/.build-verify/valve-control-check/runtimes/win-x86/native/qpdf.dll differ diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_48d23c5824014ac1aa7d14379ee1ee45.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_48d23c5824014ac1aa7d14379ee1ee45.trn deleted file mode 100644 index acd09cf..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_48d23c5824014ac1aa7d14379ee1ee45.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoxUTW/jNhD9KwLPokJSlEUJ6CF1smiQpjZib7fojR/DmIgsGhSVbBD4vy8oK2tne+mNGHJm3nvzhu+ol3tALbo+HG5foI8DylF0U4gRtsCkxJRsSdOyqmVVwSljjNJ/UY7cPbyhFtVca6obwCUsAHNDKqxKq7Ex0FBCDWEVTzXl04DadyRdYeDFaSj88DeEwfketeib641/Tb2lK3TnR1ME38FdP0TZ6wTm5nZzv12t8ZJTslz9fno5wJAKFM6gFilFrG6UxbyiFeZaAJZEcqxKVislFrKm4pTm+gihl10xmOczBuNjD1G3rGBlQTBr0DFHRkaZYCs5wPbtkJBMMt2keD6Fp2P7jl4goJblH4Keyl3pzl3tBzW6zlxFGZ4g2iD38OrDM7zIDuXoEPwBQnQw6bPaZGdIlBSkYAtGCMrRg9Q710N2d5OtukTY2AVlDQBuykZhTmuJFeMCG70wjRasrnjCeA+hh+6i6oPTwQ/exmyWPfvUZ+n76PrRj0N210d4CjKe8r7IbgCUo/WoOjfsHkGat61/HNNdP3aJy3IMAfqYrWXcZX/IYYdaxDVXlFFJTGNLykQtdGlJVVNasqaslBDKWE0s5bRmVUlJvdBloxa1rgk1zKAcrcZ4GOOs/zfX336/wLENbr8HcwaxnWRedzJaH/Z3BvrorEvTufDZZK2um7hlc+Vl56CPn6RGLRK1sCXUBtdJYa4XDVYKBKaSEwKqEsDZSTbrnsafahFrDS9tJcRCNYoSYLYWnNRWEaNtqRtTKahZTWoBotGEqIpToRpNDNCKJ9rr4M2o46+GoKREOXoc+7Sn2V1i/up6/H3Bz6Ksg49e++6syn+mtvT7gx9cTMztPNqvAzz4Pt3Of8Dn5GsfzzFIe5CdVo/rRnPZYFNpjbkmFRZVJTC1oIkoa1k2FcrRjdfPELJkMOn6aSAfnlptsuugdy6CjmNInf+Z6Jxm+eVjZc5KFH/dbpc+wPXhkM/R315EkQy82mQfw/808q9Der3zQyIRw3jhoQ109gPWhZNOvssewbgAOk5X21PiLNEnd81Z1yE6K3Uc0hb86fXkiNli85Nf+13o/zP71PxiBrMb5ko8fWab0wc4eeB//X/H4/H4AwAA//8DAKB8h9H0BQAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_d6d75ac76424487c8a8bfd384b9410ca.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_d6d75ac76424487c8a8bfd384b9410ca.trn deleted file mode 100644 index 392955a..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092525_d6d75ac76424487c8a8bfd384b9410ca.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoxUTW/jNhD9KwLPpkJSlEgJ6CF1smiQpjZib7fojR/DhIgsGhSVbBDkvy8oO2tne+mNGHJm3nvzhm9oUDtAHbrc76+fYUgjWqDk5xAjrMGkwpRsSduxumN12VasFkL8ixbI38Ir6pDgxlDTAq6gAcwtqbGunMHWQksJtYTVPNdUDyPq3pDypYVnb6AM498QRx8G1KFvfrDhJfdWvjR9mGwZQw83w5jUYDKYq+vN7Xa1xktOyXL1++HlCGMuUHqLOqQ1cabVDvOa1pgbCVgRxbGumNBaNkpQeUjzQ4I4qL4c7dMJgw1pgGQ6VrKqJJi16H2BrEoqw9ZqhO3rPiOZZbrK8cUcno/dG3qGiDq2+BD0UO7C9P5iN+rJ9/YiqfgAyUW1g5cQn+BZ9WiB9jHsISYPsz6rTXGCRElJStYwQtAC3Snz6Acobq6KVZ8JW9dQ1gLgtmo15lQorBmX2JrGtkYyUfOM8RbiAP1Z1TtvYhiDS8VR9uJTn2UYkh+mMI3FzZDgIap0yPui+hHQAq0n3fvx8R6Ufd2G+ynfDVOfuSynGGFIxVqlx+IPNT6iDnHDNWVUEdu6ijIppKkcqQWlFWurWkuprTPEUU4FqytKRGOqVjfCCEIts2iBVlPaT+mo/zc/XH8/w7GNfrcDewKxnWVe9yq5EHc3Fobknc/TOfPZbK2+n7kVx8rL3sOQPkmNOiSFdBUIi0VWmJumxVqDxFRxQkDXEjg7yOb8w/RTLeKc5ZWrpWx0qykB5oTkRDhNrHGVaW2tQTBBhATZGkJ0zanUrSEWaM0z7XUMdjLpV0NQUqEFup+GvKfFTWb+4gf8veEnUdYxpGBCf1LlP1Nbht0+jD5l5u442q8j3IUh3x7/gM/JlyGdYpD3oJhXzwotnTQc64ZXmFeSY0VYjTVvwbV1LRuRV+8qmCeIRTaY8sM8kA9PrTbFZTSPPoFJU8yd/5npHGb55WNlTkqUf11vlyHC5X6/OEZ/e5ZlNvBqU3wM/9PIv4759WMYM4kUpzMPbaB3H7DOnHTwXXEP1kcwab7aHhKPEn1y1zHrMibvlElj3oI/g5kdcbTY8cmv/c70/5l9aH42g6MbjpV4VnRz+ABnD/yv/+/9/f39BwAAAP//AwDdweBN9AUAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_0513fab3355e4493b3b7725cdecbb0b5.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_0513fab3355e4493b3b7725cdecbb0b5.trn deleted file mode 100644 index f6d7382..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_0513fab3355e4493b3b7725cdecbb0b5.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpRUy27kNhD8FYHXjLR8k9LNO+NFDMNrY2eQBLnx0bIZa6gBRdkxjPn3BTW2195FDrkIQoPVXV1V5DOKZg+oQ2eHw/kDxDyhFcphKVFMZY1ZTfAOtx0VHcMN5gRjIf9GKxQu4Ql1SHHniGuhZiCh5h6L2rLe1d5DSzDxmApeeprbCXXPyITGw0Nw0IzTH5CmMEbUoT9D9ONjmW1C44Zx9k0aB7iIUzbRFTKb8+3l7vqmXnOC19efTycnmEqDJnjUIWtx71rb11wQUXOnoTbY8NoyqqzV0iiiT7AQM6Rohmby9z84+DFHyK6jDWUNrmmLjivkTTaFtjUT7J4Ohcki06bUV0t5+e2e0QMk1NHVq6Cndp/cED7tJzuHwX9avmiFDmk8QMoBFkWWJYfB5DDG6mXGeggQM1qhzwWynZ2DaUId2qUZXqvn8TZE+JLMHh7HdP/1NLb5er5DK3STxn/A5RuT71CHWqootFhyaZwiRmHSOqEEdraXqnV9L4XBvfWeEky04lgRzbkXjKkW61aiFbreVjeDyf2Y9h/82p4suPgfDmzP1ufR2AEK5osZpreVdibdQkYdElJYYL2m0krjTct0Twyw1jvLpABtldegFKPMOOGwJo4oIkyrhFCSUYJW6Mq4uxChutigDmmlewbK14ooU3Mn29pa0DUxHGOwQgOnaIXWY8whzuM8VRcxw21aTHnH8npbnSV3FzK4PKei91+ypPsmjX52ufqRJoIb3BDMCmjOhzlX38CHBC4va78Yeb39GUIlxbhQmVOCmKviYPW7mYqN3HFLKDHYtz0jVCvtWI+FIoTRlgmrtfW9wz3hRFHBCFbSsdZK5RQmnpboQQlvtdwXQRinnPQ1I7atuSW6tpTyWktXBHbAZP9Bx+p6KDjfS0JbgLplra15EdRSrmvvpG+dpkpw8zGj71bURRXSKLko8yrbS+p5ScclpAjDO1mugkvjNPa5ekld9UGod3M2YToM5umXcb85yplwDN7Or+/A3f8awm9zLG9ftaT5McT638XdzejuIVUlHSbEcs3fEFfzkMPuLoHx4K9GDz83Pa7QHsw0J9gvr+ty4SOkhcZmPiXsIl6FYQgTuDH6CXWCcd1orPUL3f88x3URgtDj8Xj8DgAA//8DAGnSu7zLBQAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2a8f240a1aa6418fb4b1f67087c30655.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2a8f240a1aa6418fb4b1f67087c30655.trn deleted file mode 100644 index 20b3092..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2a8f240a1aa6418fb4b1f67087c30655.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpRTyW7bMBD9FWHOokJS1ELdUjtFjSBw0Bht0RuXUUxEoQyKyoLA/15QdpCmt14IYaiZeRvfwKtHhA4uD4erJ/RxghyiW0qc8prQkjC6o7LjVVfSgpZtVXP5G3Jw1/gKHTTCGGYkkhJrJMLSiuiyN8RalIwyS3kl0kx1P0H3BsoVFp+cwWKcfmCY3Oihg5/O2/E57VauMMM42yKMA278FJU3Ccz66u56t70lK8Hoavvl9OeEUxpQOAsdaE17I3VPRMUqIkyLRFEliC55o3Vbq4a1pzbnIwavhmKyDx8Y7Bg9RtPxgpcFJVzCMQerokqwtZpw93pISBaZ1qmeL+Xls3uDJwzQ8fxd0NO4CzO4i8dJz26wF6czqukhMT2E8YAhOlx0WagOg4pu9Nl502pw6CPksL3LbgcV+zE8fhLr7sR/8x/0d2n71QuaOaJdjbOP0AET6epGmb3zmG3W0EHbtH2JjSUNaxQRppZEa2wJU4JS1FWLgkMOq9FH5+dxnrKNj3gfFgLQwVc1THiCfhnM3kU0cQ6J1a865eE2jHY2MfvQn9GCFoyWqWmOhzlm39G6gCZi4rcL83nePy285pQmKHMI6GN2q+I++6amPXQgjNCMM0Wt7EvG26Y1ZU+rhrGSy7LSbattb2jPBGt4VTLa1KaUum5MQ5nlFnLAZHd2ShjrOfZWE2YlJ0L0nGjJW0IlV5VAFKoyn3TMtkPqs33NuEQkspSaiCSo5qIl1tRWmpY3lUhhepfk7P7iyTUGj8NflG+cCeM09jE7xyD7JML32afXmy2ReHaevCxqr0fzgCFLbinnU1DPBh2Px+MfAAAA//8DAOFo8wIEBAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2b773dda76f74792ab70bae787cae4cb.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2b773dda76f74792ab70bae787cae4cb.trn deleted file mode 100644 index 099dda2..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_2b773dda76f74792ab70bae787cae4cb.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSTSU8cMRCF/0qrzu3GW683MhAFIQQKKIly81LNWDT2yO1mEZr/HrlnECG33KyS6/nV98pv4NUjwgCnu935E/o0QwnJrSVOeUOoIIze0X7g9SBoRSUTvGG/oQR3ia8wQCuNYaZHIrBBIi2tiRajIdZizyizlNcya6r7GYY3UK6y+OQMVmH+gXF2wcMAP5234Tm/rVxlprDYKoYJL/yclDfZzNn57eXd9Q3ZSEY3118ON2ecs0DlLAygNR1Nr0cia1YTaTokiipJtOCt1l2jWtYd2pxPGL2aqtk+fHiwIXlMZuAVFxUlvId9CVYllW1rNePd6y47WTGd5Xq5ltfj8AZPGGHg5TvQg9yJmdyJCY+PytuT0Xk3b6GEXQw7jMnhimSdcppUcsEXx0c2k0OfoITr2+JmUmkM8fETp9vD6Bf/MfmVMlvnsbg4gwG6thsFtpa0rFVEmqYnWmNHmJKUoq47lBxK2ASfnF/CMhcXPuF9XF3CAF/VNOPB32k0W5fQpCVm67+anDe+uLQJNhcolHATg11MKj5wM1rRilGRNZa0W1LxHa2LaBLmme7icpT/p4U3nGbFzRIj+lTcqLQtvql5CwNIIzXjTFHbj4Lxru2MGGndMiZ4L2rdddqOho5MspbXgtG2MaLXTWtayiy32XdOt1gXSjCKqDpFREM7IuumIb0VPWG1ba1pbG1p8wlrcT3lPjs2jPeIpBe9JjLz1Vx2JPf0puNtLfPuvCM5Ji5zRJcYPU5/jXzlTAxzGFNxjL74BOH74vNnLdY1eHaevKzwz4J5wFjk8JTzeS+Pee33+/0fAAAA//8DAFTiLWrzAwAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_f1b461b9e83e4ca49826cbcdbd3df23e.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_f1b461b9e83e4ca49826cbcdbd3df23e.trn deleted file mode 100644 index c66f6c9..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092530_f1b461b9e83e4ca49826cbcdbd3df23e.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSUy27cOBBFf0WotSjzpQe187QdjGEENuJGMpgdH6WYsEw1SMqJYfS/D6huw8lsBrMhCIpVvHXuhd4g6GeEES4Ph+sXDDlBDdlvR5zyjlBBGN1TNfJ2FLShouukon9DDf4WX2GEXlrLrEIisEMiHW2JEZMlzqFilDnKW1l66u8JxjfQvnH44i02S/qKMfklwAjffHDLj/K29o2dl9U1cZnxJqSsgy1irq4fbvd392QnGd3d/XG6mTCVBo13MIIxdLLKTES2rCXSDkg01ZIYwXtjhk73bDiV+ZAxBj03yT19aHBLDpjtyBsuGkq4gmMNTmddZBudcP96KEo2TFflvN6Ot+34Bi8YYeT1O9BTuws7+4vnZFY/u4vTmnV6Sts6aZuX+Ao1HOJywJg9bowuU8JnM7/udXr6dLpTtun6J9o1o9sta8gwAhNloA3SPOvsl1CdNe5mjyFvH3P0IXn7n70o1HD3UN3POk9LfP7NlIcT55v/gfmzto8+YHVzBSMM/TAJ7B3pWa+JtJ0ixuBAmJaUomkHlBxq2C0h+7Aua6puQsbvcZsJRvik54QnfZfRPvqMNq+xDPpXV8J1Hxe32lx9mMloQxtGRSla82HN1Rd0PqLNWIbYx/Xc718lvOO0kNitMWLI1b3Oj9WfOj3CCNJKwzjT1KlJMD70gxUTbXvGBFeiNcNg3GTpxCTreSsY7TsrlOl621PmuIMasGSn2uI6MTsxKjThtONEKqXIwCZHlGnVJFvecyzqPzhWd3Opc1PHuEIkSihDZAFquByIs51TduB9K0sy35GcAyGLJ7cYA86/jPzZ27ikZcrV2evqNwhf1lB+BdXm+w8fyM+N9tVinzBWxS3tQ0n92aDj8Xj8BwAA//8DAKNVbQlRBAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_07f047cb3fb640fb84b5e9a8ade286af.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_07f047cb3fb640fb84b5e9a8ade286af.trn deleted file mode 100644 index 40204a3..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_07f047cb3fb640fb84b5e9a8ade286af.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzS/zQLbVT1DUCG/EiLXojhyNbiJZaUJTTwNj/XlDeIHVvvREDzszLZ17OK0n+iGQgH06njy+YykpaUqY9JJjQlEnK2YG5QehByY730ole/UVaMt3hdzIQowA4OKQSNVIVWU+DHIHGiI4zHpnoVa3pn1YyvBI/dRFfJsBuWb9gXqclkYH8MaW4fKu9/dTBvGyxy8uMt2ktPkEVc/Px8e5w/0CvFWfX97+83VxxrQW6KZKBqMgBNIxUCm2oAjtSa3tF1SgECm162/u3tCkVzMnP3Rq//tQQl5KwwCA6ITtGhSPnlkRffJUd/IqH76eqZMd0U+PtHt6Pwyt5wUwG0f4A+lbuCubpqiynGV9wPvm8Yr6C5Xj0KZKWnPJywlwm3NHsr51nX6YlNZdm1/OEqZCW3D82D7Mv45KP73g9viG4/R8EXjAHMhDJeqmNQSWl9E4HwTAaDVqLAJ6ZMQjkgKx3yjhuGJdOMCd7bayJnjkgLXmal+Dn39ednxMs2MiM0AIVOqG0dsBQWhx7gyx6rYO24KK0RigbrfTOe+4CGnAaqkk+eXieEja3N2Qg1thRoonUcOOpAu1oCGgp94oxDL1FJUhLrpdUprQt29rcpoJPeedHBvKrn1d8I/chw/NUEMqWK9Q/dW32kJe4QWl+OoCzjnWcyZq0ldNWms8Yp4xQsOI95O1S7z8pQgvGqpQtZ0ylefDlufnNr891JqACF9yz6EbJhTUW5Mh6w7kUTvbB2hBHYCNX3IhecmY0SBe0AcN4FNUlWA3X7B4PQsmRjZxqGTRVIwB1RkiqvfbSKgUy9O84NvdzzYuj5sIhUiddoKoCDUJZGkFHB1aYXlVn/EByMZ+ypCV3mBPO/3rypwnysi5jaS4ubN5B+Lyluj+a3ZHfpkT/3mnfLPAVc1On5adUv8plQOeWHNGvW8bjvn6GV/JQ/0lz2LeQ7DulmWzJY/G5bKdLWPWdMpqfz+fzPwAAAP//AwC6MOVGwwQAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_2bdea471eedc4c6a8870cb6e475529e8.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_2bdea471eedc4c6a8870cb6e475529e8.trn deleted file mode 100644 index aabb32e..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_2bdea471eedc4c6a8870cb6e475529e8.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoyUwW7jNhCGX0WYs6iQFCVKuu3au2iQpg7W7rbojSJHDhGZNCgq2yDwuy8oO81620Nvwmj0zzf/zOgVnDogdPDhePz0jC5OkEO0S4hTXhNaEkZ3tO143Ymy4KKtylb+BTnYO3yBDqTQmukWSYk1EmFoRfpy0MQYbBllhvJKJE21n6B7BWULg89WY+Gnrxgm6x108Id1xn9LtZUt9OhnUwQ/4q2bonI6waw/be92mweyEoyuNh/PmRNOSaCwBjoQhmld64GUvJZE6GYgTVMJIgbOkdeyaip1/sy6iMGpsZjM0zuD8dFh1B0veFlQwls45WBUVAm7VxPuXo6JZLFpneL5El4eu1d4xgAdz98MPcvd6NHeHKZ+tqO5Gf1+b91+5d1g93NQMRXO4Rj8EUO0uBi02WbvTIwWtOA1pxRyuFf60TrMbtfZZkwdm6FmvEUkbdn2RDCpSM9FQ4yuTasbLiuRIO8wOBx/UL23OvjJDzG7+J5d1Vl5F62b/Txlty7i/gLawWc1TpgS5hDQxexBxcfsFzU9Jve16Blnipp2KBlvZKPLgVaSsZK3ZdU3TW8GTQcmmORVyaisddn2tdSSMsMN5LDDcLBOjb/6/T55+U+96xdrHNQ8xq2fw7IZk3mCHD5ap8LLOeP3Cc0l67fzMN6UloUax6Wh7DLP1WjRxSt/oYNGNkOJ0hCZbBW6bknfY0OYEpRiXzUoOOTwELyZdfx5ZIyWkMOX2aVTym7TsL5ZR/6uxU+oP7Bh2qtsWWVmeFVXVUuUwoaImg1EKToQJZmUomyrqtWQw9rrJwxZmpey7kpss80+BP1oI+o4h9Tmn0vtzTZ7GFUcfDhcnd1mjsc5Zl/Q2IA6YqLYhTlJfbYj/gv2re+Lh6I5783k33K/Yuj9ZGP6RdxbZw9qhBy254NdDPmf93ql+k71nzsBHag5ejidTqfvAAAA//8DAK1AQ6naBAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_be7c925332454565879255f3987b5cc3.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_be7c925332454565879255f3987b5cc3.trn deleted file mode 100644 index f9129f8..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_be7c925332454565879255f3987b5cc3.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSU227cNhCGX0XgtSjzfNBdaqeoYQQ24kVb9I6HUUxESy0oatPA2HcvKG+Qune9Iwac4T/f/JxXlN0R0Ig+nE4fz5DrinpU0x5ihClMOKbkQOzI1Cj4wKiWxoq/UI/SA3xHI9IiBBosYA4KsIhEYs+ngGMESwmNhEnRarovKxpfkUtDhHMKMCzr71DWtGQ0oj9Sjsu39rZLQ5iXLQ5lmeE+r9Xl0MTcfXx+ODw+4VtBye3jL283V1hbgSFFNCIRaQgqTJgzpbEIZsLGSIHFxBgwpaWR7i0t5Qolu3lY49efGuJSM9QwsoHxgWBm0aVH0VXXZHu3wuH7qSnZMd21eL+H9+P4is5Q0Mj6H0Dfyt2EOd2sm5/hDPPJlRXKTViOR5cj6tGpLCcoNcGO5gzFL2uqjWoI2hlDaTROC6mj4ZJxHTmBaIiW0UbrlFATC1JO0RurxSQioyIqEMJr1KMd3jy7mpbcXbXfzglyRT16fO6eZlenpRzf4X9+I3r/P4A22WhEnEiutAbBOXdWeUYgahWUYj44oifPgAYg0gptqSaUW0Ysl0obHR2xAfXokwsvKUN3f4dGZLSZOOiINdUOi6As9h4Mpk4QAl4aEAz16HbJNeVt2dbuPlf4UvZ+0Yh+dfMKb51+KOElVQh1Kw3Cn6oZ8qkscQu1+2kASgYyUMJb0lZPW+0+Q0wFQoWG41C2a73/pDDFCGlStlIg1+7J1ZfuN7e+NIZBeMqoI9FOnDKjTeATkZpSziyX3hgfp0AmKqhmklOiVeDWKx00oZE1k0DzW7dbnHgTwVCNrQWGhTEGG04JhujpBJJPOph3HLvHueXFSVFmAbDl1mPRgHomDI5BRRsM01K0Sf5AcjWLaLUeoGSY/9XypxTKsi5T7a6u6d5B+Lzltj663UHfUsZ/77TvlvAVStem5VJuP+U6oEuPjuDWrcBx3z7jK3pq36Q77EuIy0Eownv0XF2p2+kaFnIQWtHL5XL5BwAA//8DAGMj50HCBAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_e49cd025374a489a9d78c041b5553ce0.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_e49cd025374a489a9d78c041b5553ce0.trn deleted file mode 100644 index 0b16446..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092643_e49cd025374a489a9d78c041b5553ce0.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoxUwW7kKBD9FYuzcQBjG1vaQ7aT0UbZbLeSnp3V3jAUaRQ3tDBOJory7yPcznRn9rI3VFBVr957xRtycg+oQ5eHw/UzuDiiHEU7hxhhNSYlpmRL2o7VHS8LIdqq5e2/KEf2Fl5RhxquFFUt4BJqwFyTCvelUVhraCmhmrCKp5rycUTdG5K20PBsFRR+/BvCaL1DHfpmnfYvqbe0hRr8pIvgB7hxY5ROJTBX1w+32/UGrzglq/Xvx5cjjKlAYTXqENdUqVoZXLK6wVwJg4WoOOaGMWB1U4lKHtOsixCcHIpRP50waB8dRNWxgpUFwaxF7znSMsoEu5cjbF8PCclM01WK53N4PnZv6BkC6lj+Qeix3IUa7MV+7Cc76IsowyNEE+QeXnx4gmc5oBwdgj9AiBZmftYP2QkSJQUpWM0IQTm6k2pnHWQ3V9l6SANrU1PWAuC2bHvMaSNxz7jAWtW6VYI1FU8YbyE4GM6q3lkV/OhNzBbas099Vt5F6yY/jdmNi/AYZDzmfZHDCChHm6kf7Li7B6lft/5+SnduGtIsqykEcDHbyLjL/pDjLumieE8ZlUS3pqRMNEKVhlQNpSVry6oXotdGEUM5bVhVUtLUqmz7ulENoZpplKP1FA9TXPj/Zt319zMc22D3e9AnENuZ5s0go/Fhf6PBRWtsUufMZ7O1hmGeLVsqrwYLLn6iGnVINMKU0GjcJIa5qlvc9yAwlZwQ6CsBnB1pM/Zx+skWMUbz0lRC1H3bUwLMNIKTxvREK1OqVlc9NKwhjQDRKkL6ilPRt4pooBVPY2+C15OKvxqCkhLl6H5yaU+zmzT5i3X4e81PpGyCj1754cTKf1Rb+f3Bjzamyc0i7dcR7rxLt8sf8Dn50sdTDNIeZMfV65mqjZJYlRXFvOwplqLmuKKEQsPbhrep+pVXTxCyZDBp3SzIh6fWD9llUDsbQcUppM7/zOMctfzysTInJoq/rrcrH+DycMiX6G/PokgGXj9kH+J/kvzrmF7v/JiGiGE689ADDOYD1pmTjr7L7kHbACrOV9tj4kLRJ3ctWZchWiNVHNMW/OnV7IjFYsuTX/ud8f8z+9j8TIPFDUslLuY68wc4e+B//X/v7+/vPwAAAP//AwCwQwKW9AUAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_1dbbbbe4dc9543f980e86c601f19c32f.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_1dbbbbe4dc9543f980e86c601f19c32f.trn deleted file mode 100644 index 554aa50..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_1dbbbbe4dc9543f980e86c601f19c32f.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoxUwW7kKBD9FYuzcQBjG1vaQ7aT0UbZbLeSnp3V3jAUaRQ3tDBOJory7yPcznRn9rI3VFBVr957xRtycg+oQ5eHw/UzuDiiHEU7hxhhNSYlpmRL2o7VHecFY20pKvEvypG9hVfUoYYrRVULuIQaMNekwn1pFNYaWkqoJqziqaZ8HFH3hqQtNDxbBYUf/4YwWu9Qh75Zp/1L6i1toQY/6SL4AW7cGKVTCczV9cPtdr3BK07Jav378eUIYypQWI06xDVVqlYGl6xuMFfCYCEqjrlhDFjdVKKSxzTrIgQnh2LUTycM2kcHUXWsYGVBMGvRe460jDLB7uUI29dDQjLTdJXi+Ryej90beoaAOpZ/EHosd6EGe7Ef+8kO+iLK8AjRBLmHFx+e4FkOKEeH4A8QooWZn/VDdoJESUEKVjNCUI7upNpZB9nNVbYe0sDa1JS1ALgt2x5z2kjcMy6wVrVulWBNxRPGWwgOhrOqd1YFP3oTs4X27FOflXfRuslPY3bjIjwGGY95X+QwAsrRZuoHO+7uQerXrb+f0p2bhjTLagoBXMw2Mu6yP+S4S7oo3lNGJdGtKSkTjVClIVVDacnasuqF6LVRxFBOG1aVlDS1Ktu+blRDqGYa5Wg9xcMUF/6/WXf9/QzHNtj9HvQJxHameTPIaHzY32hw0Rqb1Dnz2WytYZhny5bKq8GCi5+oRh0SjTAlNBo3iWGu6hb3PQhMJScE+koAZ0fajH2cfrJFjNG8NJUQdd/2lAAzjeCkMT3RypSq1VUPDWtII0C0ipC+4lT0rSIaaMXT2Jvg9aTir4agpEQ5up9c2tPsJk3+Yh3+XvMTKZvgo1d+OLHyH9VWfn/wo41pcrNI+3WEO+/S7fIHfE6+9PEUg7QH2bx6dd8TzmuNy1YSzGtVYUF0jQXUlWpaVgqWKLry6glClgwmrZsF+fDU+iG7DGpnI6g4hdT5n3mco5ZfPlbmxETx1/V25QNcHg75Ev3tWRTJwOuH7EP8T5J/HdPrnR/TEDFMZx56gMF8wDpz0tF32T1oG0DF+Wp7TFwo+uSuJesyRGukimPagj+9mh2xWGx58mu/M/5/Zh+bn2mwuGGpxMVcZ/4AZw/8r//v/f39/QcAAAD//wMACJyzv/QFAAA= \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_2d3ca726c88145d08a352f841b9960c4.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_2d3ca726c88145d08a352f841b9960c4.trn deleted file mode 100644 index 7019167..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092644_2d3ca726c88145d08a352f841b9960c4.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACoxUTW/jNhD9KwLPokJSlEQJ6CF1smiQpjYSb7fojR/DmIgsGhSVbBDkvy8oK2tne+mNGHJm3rz3hm9okHtAHbo8HK6fYYgjylF0c4gRVmNSYkq2pO1Y3XFe1JxyUtJ/UY7cLbyiDjVca6pbwCXUgLkhFVal1dgYaCmhhrCKp5rycUTdG5KuMPDsNBR+/BvC6PyAOvTNDca/pN7SFbr3kymC7+FmGKMcdAJzdf1wu11v8IpTslr/fnw5wpgKFM6gDnFDta61xSWrG8y1sFiIimNuGQNWN5Wo5DHNDRHCIPtiNE8nDMbHAaLuWMHKgmDWovccGRllgq3kCNvXQ0Iy03SV4vkcno/dG3qGgDqWfxB6LHehe3exH9XkenMRZXiEaIPcw4sPT/Ase5SjQ/AHCNHBzM/6ITtBoqQgBasZIShHd1Lv3ADZzVW27tPAxtaUtQC4LVuFOW0kVowLbHRtWi1YU/GE8RbCAP1Z1Tungx+9jdlCe/apz8oP0Q2Tn8bsZojwGGQ85n2R/QgoR5tJ9W7c3YM0r1t/P6W7YerTLKspBBhitpFxl/0hx13SRXNFGZXEtLakTDRCl5ZUDaUla8tKCaGM1cRSThtWlZQ0tS5bVTe6IdQwg3K0nuJhigv/39xw/f0Mxza4/R7MCcR2pnnTy2h92N8YGKKzLqlz5rPZWn0/z5YtlVe9gyF+ohp1SDTCltAY3CSGua5brBQITCUnBFQlgLMjbdY9Tj/ZItYaXtpKiFq1ihJgthGcNFYRo22pW1MpaFhDGgGi1YSoilOhWk0M0IqnsTfBm0nHXw1BSYlydD8NaU+zmzT5ixvw95qfSNkEH732/YmV/6i28vuDH11Mk9tF2q8j3Pkh3S5/wOfkSx9PMUh7kM2rx5iuOdEWV40QmCtaY2HKGquWmxJKK1WrUI6uvH6CkCWDSTfMgnx4av2QXQa9cxF0nELq/M88zlHLLx8rc2Ki+Ot6u/IBLg+HfIn+9iyKZOD1Q/Yh/ifJv47p9c6PaYgYpjMPPUBvP2CdOenou+wejAug43y1PSYuFH1y15J1GaKzUscxbcGfXs+OWCy2PPm13xn/P7OPzc80WNywVOJirjN/gLMH/tf/9/7+/v4DAAD//wMAubDW2/QFAAA= \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_2690a90d71254faa876ab7e0714d0b61.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_2690a90d71254faa876ab7e0714d0b61.trn deleted file mode 100644 index 314e285..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_2690a90d71254faa876ab7e0714d0b61.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSTW0/cMBCF/0o0z3HwLc7ljS5URQiBCmqrvjn2hLUI9spxuAjtf6+cXUTpW9+skef4zHfGb+D1I0IPp7vd+RP6NEMJya0lTrkiVBBG72jXc9XXouKt6kSnfkMJ7hJfoYdGGsNMh0SgQiItrckgRkOsxY5RZimvZdbU9zP0b6BdZfHJGazC/APj7IKHHn46b8Nzflu7ykxhsVUME174OWlvspmz89vLu+sbspGMbq6/HG7OOGeBylnoQVpmjDIjEVw1RJp2JG1bSyJHzpGrpm5rfWhzPmH0eqpm+/DhwYbkMZmeV1xUlPAO9iVYnXS2PegZ71532cmK6SzXy7W8Hvs3eMIIPS/fgR7kTszkTkx4fNTenozOu3kLJexi2GFMDlck65TTpJMLvjg+spkc+gQlXN8WN5NOY4iPnzjdHka/+I/Jr7TZOo/FxRn00DbtKLCxpGGNJtKojgwDtoRpSSkOdYuSQwmb4JPzS1jm4sInvI+rS+jhq55mPPg7jWbrEpq0xGz9l8p544tLm2BzgUIJNzHYxaTiAzejFa0YFVljSbslFd/RuogmYZ7pLi5H+X9auOI0K26WGNGn4kanbfFNz9sMwsiBcaap7UbBeNu0Roy0bhgTvBP10LaDHQ0dmWQNrwWjjTKiG1RjGsost9l3TrdYF6pWaFGqgXSGIpGjYEQLNpK6EZorO1KOzSesxfWU++yoGO8QSSe6gcjMd+CyJdYo25mWN7XMcbwjOSYuWyjhEqPH6a+Rr5yJYQ5jKo7RF58gfF98/qzFugbPzpOXFf5ZMA8Yixyedj7v5TGv/X6//wMAAP//AwCW4r568wMAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_8e7765dda7b747818c7f0af22bbafe64.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_8e7765dda7b747818c7f0af22bbafe64.trn deleted file mode 100644 index 76cdaac..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_8e7765dda7b747818c7f0af22bbafe64.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSTy27cOBBFf0WotSjzJZHSLmk7iGEEbcSNZDA7PkoxYZlqUJSTwOh/D6juIPHsZiMIBVXVveeWXiGaZ4QB3h2PNy8Y8wI15LCVOOUdoYIweqD9wLuhFQ3XXGrZ/gs1hDv8CQMo6RxzPRKBHRLpaUusGB3xHntGmae8lWWm+bbA8AomNB5fgsNmXr5gWsIcYYCvIfr5e9ltQuOmefVNmie8jUs20RUx1zcPd4f9PdlJRnf79+cvF1zKgCZ4GEB65lznRiJ4p4h0eiRat5LIkXPknWp1a85tIWZM0UzN4p/+aPBzjpjdwBsuGkp4D6cavMmmyLZmwcPPY1GyYbou9Xorb6/DK7xggoHXv4Gex125KVw9L3YNk786P7NZnorTY5qPmHLAjctmdZpMDnOsLpt2U8CYoYb9Q3U/mTzO6fkNrIez/9v/Yf9Qtt/8QLdm9Lt5jXlLWkANn4x7DBGr22sYQCs9ClSeKKYMka7ribWoCTOSUrStRsmhht0cc4jrvC7Vbcz4LW0GYIAPZlrwLP1dco8ho8trKq7+6co93KfZry5Xf/gz2tCGbUr2az6uufqMPiR0GYu/Q1ov8/7TwjtOaZGypoQxV/cmP1YfzfJYoDhpGWeG+n4UjGulnRhpqxgTvBet1dr60dGRSaZ4KxhVnRO97ZRTlHnuoQYscVfbhTnZMsWEJa0QlsjOOmIVYwSZknbUyjrbveFY7afS58eO8R6R9KK3RBaglktNvOt87zRXrSzR/EZySV9qqOEOU8TpL8ufgkvzMo+5upxB9QbC5zWWv7faTuJ7iOTHRvt6dk+YqpKWCbEc6iWg0+l0+gUAAP//AwCB/MOVBAQAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ab3f2efb9199408996f5b8be0b96d94f.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ab3f2efb9199408996f5b8be0b96d94f.trn deleted file mode 100644 index 31079f4..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ab3f2efb9199408996f5b8be0b96d94f.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpRUy27kNhD8FYHXiFq+H7p5PV7EMLw2dgZJkBtFtmzGGmpAUXYMY/59Ifmx9i5yyEUQGqzu6qoin1Bye0AtOjkczu4hlQnVqMS1xAhTmHBMyY7YlqlW8oYZxYiVf6MaxQt4RC3SwnvqLWAOCrAIROKO9x6HAJYSGgiTYunpbibUPiEXmwD30UMzTn9AnuKYUIv+jCmMD8tsFxs/jHNo8jjAeZqKS34hsznbXuyurvGpoOT06vPzyQmmpUETA2qRCNR75XvMmdJYeNNjY6TAomcMmNLSSPcMi6lATm5opnD3g0MYS4LiW9Yw3hDMLDrWKLjiFtqdm2D3eFiYrDJtlnq9ltff9gndQ0Ytq18FfW73yQ/x037q5jiET+sX1eiQxwPkEmFVZF1yGFyJY6peZpwOEVJBNfq8QLaz9zBNqEW7PMNr9SzdxARfstvDw5jvvj6Pbb6e7VCNrvP4D/hy7cotapFlmoElSijnNXWaUOullsR3vdLW972SjvRdCIwSarQgmhohguRcW2KsQjW62lbXgyv9mPcf/No+W3D+PxzYnpyeJdcNsGC+uGF6W2nn8g0U1CKpZAe8N0x1ygVnuempA26D77iSYDodDGjNGXdeemKop5pKZ7WUWnFGUY0unb+NCarzDWqR0abnoAPWVDssvLK468Bg6gQh0EkDgqEanY6pxDSP81SdpwI3eTXlHcurbXWS/W0s4MucF73/Uku6r/MYZl+qH2mipCENJXwBzeUwl+obhJjBl3XtFyOvtj9DmGKELFTmnCGVanGw+t1Ni43Ci44y6kiwPafMaON5T6SmlDPLZWdMF3pPeiqoZpJTopXntlPaa0IDW6IHS3ir9b4w3gXfCYtDUD0WXAtsmebYSakceKmplh90rK6GBRd6RZkFwJbbDotF0I4Jg4NXwXrDtBTuY0bfrWgWVWij1arMq2wvqRcG1egCcoLhnSyX0edxGvtSvaSu+iDUuzmbOB0G9/jLuN88E1x6Dm/nT2/B3/0awm9zWt6+ak3zQ0z439XdzejvIFdLOlxMyzV/Q1zOQ4m72wwuQLgcA/zc9FijPbhpzrBfX9f1wifIK43N/Jyw83QZhyFO4McUJtRSQoRuKCH2he9/H6ScNYppezwej98BAAD//wMAGrZp/s0FAAA= \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ccfbf49f891a4ae0b435d0c2c0cd053c.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ccfbf49f891a4ae0b435d0c2c0cd053c.trn deleted file mode 100644 index a48c2ac..0000000 --- a/.dotnet-cli/.dotnet/TelemetryStorageService/20260310092653_ccfbf49f891a4ae0b435d0c2c0cd053c.trn +++ /dev/null @@ -1,5 +0,0 @@ -https://dc.services.visualstudio.com/v2/track -Content-Type:application/x-json-stream -Content-Encoding:gzip - -H4sIAAAAAAAACpSUQW/kKBCF/4pVZ+MAxgb7lu1ktFE0SjRpzaz2hqE8QXGgBTgzUdT/fYW7o8zsZbUXhDD1ePW9kt/A62eEES4Ph+sX9DlBDdltR5zyntCWMLqnw8j7sWsbLgcmevk31OBu8RVGkMIYZgYkLfZIhKUdmdrZEGtxYJRZyjtRNPX3BOMbaNdYfHEGm5C+YkwueBjhm/M2/Chva9eYJay2iWHBG5+y9qaYubp+uN3f3ZOdYHR398fpZsJUBBpnYQRhmTG9mUnLe0mEUTNRqhNEzJwj72WnOn0qcz5j9Hppkn368GBD9pjNyBveNpTwAY41WJ11sT3phPvXQ3GyYboq5/V2vG3HN3jBCCOv34Ge5C7M4i6e07S6xV6c1qzTU9rWWZsc4ivUcIjhgDE73BhdpoTP0/K61+np0+lO2abrn2jWjHYXVp9hBDZwqGGDtCw6u+Crs8fd4tDn7WOOzidn/lOLQQ13D9X9ovMc4vNvoTycON/8D8yftXl0HqubKxhBSTW3KC2RTGoiTD+QaUJFmBaU4tQpFKWTXfDZ+TWsqbrxGb/HrScY4ZNeEp78XUbz6DKavMbS6F99Ga77GOxqcvURJqMNbRhtS9GaD2uuvqB1EU3G0sQ+rme9f5XwnlNarKwxos/Vvc6P1Z86PZbOjZgYZ5raYW4ZV1KZdqadZKzlQ9tNSk12NnRmgknetYzK3rTD1EsjKbPcQg1YZqfaxlXxXg0FR8coJaKfZjIIaknfTpZxbOXAi/sPjtXdUurs3DM+IJKhHSYiisLEhSLW9HYwistOFP7vSM4DIRTUcIvR4/JLy5+diSGFOVfnrKvfIHxZffkVVFvuP5wnPzfaV8E8YaxKWtr5MvXngI7H4/EfAAAA//8DAEs5XipRBAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_7255c9a8e33d4205b22841638ec113d2.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_7255c9a8e33d4205b22841638ec113d2.trn new file mode 100644 index 0000000..3ac15b7 --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_7255c9a8e33d4205b22841638ec113d2.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACpSUW2/cNhCF/4rAZ1Hm/aK31E5RwwhsxEZb9I3kjGIhWmlBUZsGxv73gtoNUvetb8JAc3j4zRm+kTkckPTkw/H48YRzWUlLyriXBBOGMkm5emGm56KXtrPcMOHtX6Ql4wN+Jz2xKiWePFKJBqkCpmmUQ6IA6DnjwIRWVTN8WUn/RsLYAZ7GhN2y/o55HZeZ9OSPcYblWz07jF2alg26vEx4P68lzKmaufv4/PDy+ERvFWe3j79c/lxxrQLdCKQnCbzgmnPqEgOq0FgauYvUeZbAxEGCjpe2cS6Y5zB1K3z96QGWMmNJveiE7BgVnpxbAqGEajuGFV++H6uTHdNdrbd7ef/s38gJM+lF+wPoRe4mTePNusUJTzgdQ14x36TlcAgzkJYc83LEXEbc0Zwwx2UdS6Wakg3OcQ4uWKUtOKmFtCAZgmNWgwcfjDKDSFoPEJ23alAguAKDSkVLWrLDm6ZQxmVurt5vpxHnQlry+Nw8TaEMSz68w/98IXr/P4BW26QnXiEy7aXUqJ1FzXhKKg6eGS6ROa4GxoKNzMVkk1FuAGd0EGEwQYiUBGnJp5Bexxmb+zvSE2fdINECtdwGqpLxNEZ0lAfFGEbtUNWe22Uu47wt29rczwW/5P2+pCe/hmnFy00/5PQ6FkxlyxXCn6YG8ikvsKXS/AwAZx3rOJO1aSvHrTSfEcaMqWDF8ZK3q95/WoQRjFUrW844l+YplNfmt7C+kp6opCIXPDDwg+TCWZfkwLTlXAovdXQuwpDYwBW3QkvOrEnSR2OTZRxEDQnWvDWXiGMYAqKl2g2eqhgcdQ4CDSYkbjVCGtw7js3jVPtgMFx4ROqlj1RVoFEoRyEZ8MkJq1VN8w8k17CoqgV4uuzrbkAA93ZwjkYLiSoNnnqwQEOSiQvGNNoq9IB5xulfnD6NKS/rMpTmGrXmHbnP21zfnGaP3bdxpn/vI7pb0lfMTR1xGOe6XtepnltywLBuGQ/7k9W/kae6W83L/nJJ1mnDTEueS8hlO17LinWCCX8+n8//AAAA//8DALXJLrv3BAAA \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_922643d02f42429d9b9a676191242f13.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_922643d02f42429d9b9a676191242f13.trn new file mode 100644 index 0000000..17a1aff --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_922643d02f42429d9b9a676191242f13.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACoxUTW/cNhD9K8KcRZmkKFHSLfEmqOG6a2TdtOiNH6M1YS25oCinhuH/HlBr19m0h94Eavjemzdv+AxeHRAG+HA8fnpEn2YoIbn1iFPeEloTJu5oOzA+1LKSTdu1vfgLSnDX+AQDSGEMMz2SGlskwtKG6Ho0xFrsGWWW8kZkTLWfYXgG5SqLj85gFeavGGcXPAzwh/M2fMvcylVmCoutYpjwys9JeZPFbD7tru+2t+RSMHq5/XiqnHHOAJWzMICxPWcNY6Qz1BKBrSSadZp0PTW21WNtG3265nzC6NVUzfbhXYMNyWMyA694XVHCe3gpwaqksmytZrx7OmYlq02bfF6ux+vn8AyPGGHg5ZuhJ7gLM7mLw6wXN9mLKez3zu8vgx/dfokqZeISjjEcMSaHq0HbXfGuidGKVrzllEIJN8rcO4/F1abYTrljO7aM94ikr3tNBJOKaC46Yk1re9Nx2Ygs8hqjx+kH1BtnYpjDmIpX34sznsvgk/NLWObiyifcvwod4LOaZswFS4zoU3Gr0n3xi5rvYQBhhGacKWr7sWa8k52pR9pIxmre143uOm1HQ0cmmORNzahsTd3rVhpJmeUWSrjDeHBeTb+G/T57+Q/f+Y8NjmqZ0i4scU3GbB+ghI/Oq/h0qvh9Rvta9dtpGG9Ia6CmaW2oeJ3n5eTQpzN/YYBOdmON0hKZbRWm7YnW2BGmBKWomw4FhxJuY7CLST+PjNEaSviy+LxKxVUe1jfnyd+t+EnqD9ow56pYo6y1pKJjijRCMSJa2xAlmCKS9i013HLdtFDCJpgHjEWel3L+DGy7Kz5Ec+8SmrTE3OafK/d2V9xOKo0hHs7WzuLjaS1Xfm5ZL8euI1paQ0Rje9JbaYkytWGc0gZlDtZ2ScclFV/QuogmYb56F5fM/9lN+K8O38x6NV50p7DN4a32K0YdZpfyu3LjvDuoCUrYnbZ8dfF/LvkZ6ruq/wwSDKCWFODl5eXlOwAAAP//AwAs5ASbDwUAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_ddc897c494ee41fba2267fa7c6268151.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_ddc897c494ee41fba2267fa7c6268151.trn new file mode 100644 index 0000000..6265b96 --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061237_ddc897c494ee41fba2267fa7c6268151.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACpSU227cNhCGX0Xg9VLm+aC71E5R1whsxIu06B0PQ1uIllpQ1KaBse9eULtB6t71ThhoZn5+88+8oewOgAb04Xj8eIJcF7RDddxCjDCFCcdU7IkaKBu47pU0kmvyF9qh8QG+owFpEQINFjAHBVhEIrHnKeAYwVJCI2FStJruZUHDG3JjH+E0Bujn5QuUZZwzGtAfY47zt9bbjX2Y5jX2ZZ7gPi/V5dDE3H18ftg/PuFbQcnt4y+XPxdYWoF+jGhAIVpGJaXYBBKxAKWxp8ZjY0mIyicepb+kjblCyW7ql/j1p4Y41ww1DKxnvCeYWXTeoeiqa7K9W2D//diUbJjuWny3hbfP4Q2doKCB7X4AvZS7CdN4U+fjBCeYjq4sUG7CfDi4HNEOHct8hFJH2NBsr50mV8c5d9dmt9MIuaIdenzuniZX01wO73g9XxDc/w8CJygeDcgKACIt5xKk0SAJDUH4ZImiHIihIhHitCfGBx2UMCkaJR1zSTnGQmBoh16m2bvp92XjZxnxJhLNFAMBlgmlbCDADSSpgUSnlFcm2MiNZsJEw511jloPOlgVmkk+ufA6Zuju79CAjDaJg45YU+2wCMpi78Fg6gQh4KUB0TTczrmOeZ3XpbvPFV7Kxg8N6Fc3LXAh96GE17FCqGtpUP9UrdlTmeMaavfTAZT0pKeEt6S1HtfafYY4FggVGt59Wa/1/pPCFCOkSVlLgVy7J1dfu9/c8ooGJILwlFFHok2cMqNN4IlITSlnlktvjI8pkEQF1UxySrQK3HqlgyY0suYSaIbrNo83bk5HjZNPGgsrE3bEOJyMookl4SJR7zh2j1PLi0lRZgGw5dZj0YB6JgyOQUUbDNNSNDv/QHI1nzBohyKcLgt7ERCp1ckY7HUMWMhosY06Yhd4oIwQCboVeoCSYfoXp09jKPMyp9pdrdu9I/d5ze3odJuNv40Z/72N6G4OX6F0bcRuzG2/rlM979AB3LIWOGw3a3hDT225uv12ujjppSJqh56rK3U9XsOC9Iwwez6fz/8AAAD//wMAGBbt6fgEAAA= \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_0a3ec038c4854436a3460a4240a7f266.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_0a3ec038c4854436a3460a4240a7f266.trn new file mode 100644 index 0000000..571662e --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_0a3ec038c4854436a3460a4240a7f266.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACpRUwW7cKhT9FYu1cQBjG7zLm6RqFFWJmlH79HZwuW5QHDwCnDaK5t8rPFO1WVVvg9A193DuOQe/kWCekYzk8nC4fsGQE6lJ9ltJMNFT1lIu96wfuRhb1XCtFOvYf6Qm/hZfyUgGCcBBI22xRyod66htJ6DOoeaMOyY6WTDNt0TGN2J84/DFAzZL+oIx+SWQkXz1wS3fy93GNzAvq2viMuNNSNkEKGSurh9u93f3dCc52939czqZMBWAxjsyEnBa8I5zqoA5KrEfqOXKUqUZuN5Orevsqc2HjDGYuUnu6TcHt+SAGUbRiLZhVGhyrIkz2RTa1iTcvx4Kk02mq1Kvt/K2Hd/IC0YyivqXoCe4C5j9xXOyq5/dxWnNJj2lbZ0M5CW+kpoc4nLAmD1uGl2mhM92ft2b9PThdKZs0/UPhDWj2y1ryGQkXJOabBrNs8l+CdWZ4m72GPL2MUcfkoe/QQlSk7uH6n42eVri8ztLHk4q3/wPkT8ZePQBq5srMhI1qKnFwdGBD4ZK6DW1FhXlRjKGtlMoy/W7JWQf1mVN1U3I+C1uI5GRfDBzwhO/ywiPPiPkNZY5/+1LtO7j4lbI1W8rOWtYw1lbmtZ8WHP1GZ2PCBnLEPu4nvG+vG8RvWCsUFljxJCre5Mfq48mPZKRSJCWC26Y01PLhRoUtBPrBs5bodvOKmXdBGzikg+iazkbemi17QcYGHfCkZpgSU61hbVvrZom1lHnpKGSQ0ctWKQSQIOQrbBieKdjdTeXPjf1XGhEqlttqSyCWiEVddA7DUoMnSy5/CXJOQ9SkZo4fDm9vI2AcFwPk1LUDg6o7Jym2g2OGmiBC8Y6HArQLcaA8x86ffIQl7RMuToHpHqn3Oc1lL9HtYXluw/0x2bR1QJPGKtisfGhPJSzq8fj8fgTAAD//wMAITadXoQEAAA= \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_7be3ec1d974a47ec9f150922138df025.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_7be3ec1d974a47ec9f150922138df025.trn new file mode 100644 index 0000000..0dfab8a --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_7be3ec1d974a47ec9f150922138df025.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACpRTzW7cIBB+FYuzcQBjA761m1SNoipRs2qr3oAZNygOXmGctor23Su8W6XtrReERszM98cLifYJyUDeHA5XzxjzQmqSw1YSTPSUtZTLPesHLoZWN4IxrbX8SmoSbvAnGYiS3nNvkLbYI5XAOura0VMANJxxYKKTZab9tpDhhdjQAD4Hj828fMK0hDmSgXwOEebvZbcNjZ/mFZo0T3gdl2yjL2Aur+5v9rd3dCc5292+Pb1ccCkDmgBkIB6M4B3nVHsGVGKvqOPaUW2Yh96NLXTu1BZixhTt1Czw+IoB5hwx+0E0om0YFYYcawI22wLb2QX3Pw8FySbTZanXW3m7Di/kGRMZRP1b0NO4Cz+Fi6fFrWGCi9OZ7fJYmB7SfMCUA266bFSnyeYwx+q8aTcFjJnU5Pa+uptsHuf09JdY9yf+1/9Bf1+2X/1Av2aE3bzGXJzmpCYfrH8IEavrSzIQrfTYogKquLJU+t5Q51BTbiVj6DqNUpCa7OaYQ1zndamuY8ZvacNPBvLOTguekL9J/iFk9HlNhdSXvsThLs2w+ly9ys9ZwxrO2tK05sOaq48IIaHPWOjt03qe90+L6AVjBcqaEsZc3dn8UL23ywMZiPTSccEtAzO2XGilfTuyTnHeCtN2TmsHo2cjl1yJruVM9b41rldeMQ4CSE2wuF1tAbO9QMc9UKE5Usl4T61FoNz1inmDI9+S/qpjdTuVPhh7LgwiNa1xVBZBnZCagu/BeC1UJ0uWfktyNl9qUhPA59Nv2QAI4EaNWlOnwFPZgaEGFFDrW88FYx2qMugGU8TpD50+BJ/mZR5zdY5O9ZdyH9dYfny1xeh7iPTHZtHl7B8xVcViG2IJ99nV4/F4/AUAAP//AwCbznb/OAQAAA== \ No newline at end of file diff --git a/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_8e667663ada3485aab4314f51a11da10.trn b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_8e667663ada3485aab4314f51a11da10.trn new file mode 100644 index 0000000..ccbda80 --- /dev/null +++ b/.dotnet-cli/.dotnet/TelemetryStorageService/20260314061238_8e667663ada3485aab4314f51a11da10.trn @@ -0,0 +1,5 @@ +https://dc.services.visualstudio.com/v2/track +Content-Type:application/x-json-stream +Content-Encoding:gzip + +H4sIAAAAAAAACpSTT2/UMBDFv0o05zi1HSe2c4NtEVWFWtEKEDf/mbBWU2flOAVU7XdHzi4qcONmjTzPb35v/ALRPCEM8OZwuHrGmBeoIYetxCnvCW0JEw+0HxgfWtWUWqf0V6gh3OBPGEAK55jTSFrskQhPO2Lb0RHvUTPKPOWdKJrm2wLDC5jQeHwODpt5+YRpCXOEAT6H6Ofv5W0TGjfNq2/SPOF1XLKJrpi5vLq/ebi9IzvB6O727enmgksRaIKHAZzXnHWMEeWoJwJ7SSxTlihNne/t2PrOntpCzJiimZrFP7568HOOmN3AG942lHANxxq8yabYtmbBh5+H4mTDdFnq9VbejsMLPGOCgde/gZ7kLtwULtz89GSivxhDDMseajik+YApB9yQbFNOk8lhjtX5kd0UMGao4fa+uptMHuf09Ben+9Po1/8x+Qfj9iFidX0JAyipxhalJ5JJQ4TrNbEWFWFGUIq2Uyg41LCbYw5xndeluo4Zv6XNJQzwzkwLnvy9SW4fMrq8pmL9S1/yxh8h72ZfChRquEuzX12uXnEz2tCG0bZorPmw5uoj+pDQZSwzPaT1LP9PC+85LYq7NSWMubozeV+9N8seBhBOWMaZoV6PLeNKKteOtJOMtVy3nVXK+tHRkQkmedcyKnvXattLJynz3BffJd1qW6hRUuFQOmKpEURo4Ynt2UiY4axXVHajLIhesVa3U+nzY8+4RiS61ZaIwtdyoYh3vddOcdmJsju/kZwTFwpq8Ph8+h2bAe6ZlqNSxErviOi8JtpLT4xrHeOUdiiL0A2miNMfnD4El+ZlHnN13pfqL3If11h+eLXtzvcQyY8tscvZPWKqSuImxLLM55CPx+PxFwAAAP//AwCX5cHkKAQAAA== \ No newline at end of file diff --git a/.pdf-pages/page-1.png b/.pdf-pages/page-1.png new file mode 100644 index 0000000..823a48e Binary files /dev/null and b/.pdf-pages/page-1.png differ diff --git a/.pdf-pages/page-12.png b/.pdf-pages/page-12.png new file mode 100644 index 0000000..442515d Binary files /dev/null and b/.pdf-pages/page-12.png differ diff --git a/.pdf-pages/page-13.png b/.pdf-pages/page-13.png new file mode 100644 index 0000000..6c77a7b Binary files /dev/null and b/.pdf-pages/page-13.png differ diff --git a/.pdf-pages/page-14.png b/.pdf-pages/page-14.png new file mode 100644 index 0000000..09a6b11 Binary files /dev/null and b/.pdf-pages/page-14.png differ diff --git a/.pdf-pages/page-15.png b/.pdf-pages/page-15.png new file mode 100644 index 0000000..765a800 Binary files /dev/null and b/.pdf-pages/page-15.png differ diff --git a/.pdf-pages/page-16.png b/.pdf-pages/page-16.png new file mode 100644 index 0000000..aa2efff Binary files /dev/null and b/.pdf-pages/page-16.png differ diff --git a/.pdf-pages/page-17.png b/.pdf-pages/page-17.png new file mode 100644 index 0000000..b5f4415 Binary files /dev/null and b/.pdf-pages/page-17.png differ diff --git a/.pdf-pages/page-18.png b/.pdf-pages/page-18.png new file mode 100644 index 0000000..2176c0e Binary files /dev/null and b/.pdf-pages/page-18.png differ diff --git a/.pdf-pages/page-19.png b/.pdf-pages/page-19.png new file mode 100644 index 0000000..d521513 Binary files /dev/null and b/.pdf-pages/page-19.png differ diff --git a/.pdf-pages/page-2.png b/.pdf-pages/page-2.png new file mode 100644 index 0000000..7a9c8de Binary files /dev/null and b/.pdf-pages/page-2.png differ diff --git a/.pdf-pages/page-20.png b/.pdf-pages/page-20.png new file mode 100644 index 0000000..55f039b Binary files /dev/null and b/.pdf-pages/page-20.png differ diff --git a/.pdf-pages/page-3.png b/.pdf-pages/page-3.png new file mode 100644 index 0000000..288ac08 Binary files /dev/null and b/.pdf-pages/page-3.png differ diff --git a/.pdf-pages/page-4.png b/.pdf-pages/page-4.png new file mode 100644 index 0000000..fa4498b Binary files /dev/null and b/.pdf-pages/page-4.png differ diff --git a/.pdf-pages/page-5.png b/.pdf-pages/page-5.png new file mode 100644 index 0000000..d35e53a Binary files /dev/null and b/.pdf-pages/page-5.png differ diff --git a/.pdf-pages/page-6.png b/.pdf-pages/page-6.png new file mode 100644 index 0000000..7897f54 Binary files /dev/null and b/.pdf-pages/page-6.png differ diff --git a/.pdf-pages/page-7.png b/.pdf-pages/page-7.png new file mode 100644 index 0000000..00ef643 Binary files /dev/null and b/.pdf-pages/page-7.png differ diff --git a/Cardiopulmonarybypasssystems/App.xaml.cs b/Cardiopulmonarybypasssystems/App.xaml.cs index 6ecc783..c12de06 100644 --- a/Cardiopulmonarybypasssystems/App.xaml.cs +++ b/Cardiopulmonarybypasssystems/App.xaml.cs @@ -17,7 +17,7 @@ public partial class App : Application var services = new ServiceCollection(); services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); diff --git a/Cardiopulmonarybypasssystems/Cardiopulmonarybypasssystems.csproj b/Cardiopulmonarybypasssystems/Cardiopulmonarybypasssystems.csproj index b67bc9d..a9b555c 100644 --- a/Cardiopulmonarybypasssystems/Cardiopulmonarybypasssystems.csproj +++ b/Cardiopulmonarybypasssystems/Cardiopulmonarybypasssystems.csproj @@ -6,6 +6,9 @@ enable true + + + diff --git a/Cardiopulmonarybypasssystems/MainWindow.xaml b/Cardiopulmonarybypasssystems/MainWindow.xaml index 10665dd..bd85928 100644 --- a/Cardiopulmonarybypasssystems/MainWindow.xaml +++ b/Cardiopulmonarybypasssystems/MainWindow.xaml @@ -45,6 +45,12 @@ + + + + + + @@ -656,41 +662,48 @@ - - + + + - - + + - - + + - - + + - - + + - - + + + + + + + + @@ -803,7 +816,7 @@ - + diff --git a/Cardiopulmonarybypasssystems/Models/DeviceChannel.cs b/Cardiopulmonarybypasssystems/Models/DeviceChannel.cs index 2cc5cd4..bc21357 100644 --- a/Cardiopulmonarybypasssystems/Models/DeviceChannel.cs +++ b/Cardiopulmonarybypasssystems/Models/DeviceChannel.cs @@ -12,12 +12,23 @@ public partial class DeviceChannel : ObservableObject [ObservableProperty] private double value; - public string DisplayValue => $"{Value:F2} {Unit}"; - public double NormalizedValue => Max <= Min ? 0d : Math.Clamp((Value - Min) / (Max - Min), 0d, 1d); + [ObservableProperty] + private bool isAvailable; + + public string DisplayValue => IsAvailable ? $"{Value:F2} {Unit}" : "--"; + public double NormalizedValue => !IsAvailable || Max <= Min ? 0d : Math.Clamp((Value - Min) / (Max - Min), 0d, 1d); + public string AvailabilityText => IsAvailable ? "在线" : "无数据"; partial void OnValueChanged(double value) { OnPropertyChanged(nameof(DisplayValue)); OnPropertyChanged(nameof(NormalizedValue)); } + + partial void OnIsAvailableChanged(bool value) + { + OnPropertyChanged(nameof(DisplayValue)); + OnPropertyChanged(nameof(NormalizedValue)); + OnPropertyChanged(nameof(AvailabilityText)); + } } diff --git a/Cardiopulmonarybypasssystems/Models/PumpControlChannel.cs b/Cardiopulmonarybypasssystems/Models/PumpControlChannel.cs index ab5d2cf..a9b71c5 100644 --- a/Cardiopulmonarybypasssystems/Models/PumpControlChannel.cs +++ b/Cardiopulmonarybypasssystems/Models/PumpControlChannel.cs @@ -17,26 +17,38 @@ public partial class PumpControlChannel : ObservableObject [ObservableProperty] private double flowValue; + [ObservableProperty] + private bool stateAvailable; + + [ObservableProperty] + private bool flowAvailable; + public string StartAddressDisplay => $"M{StartAddress}"; public string FlowAddressDisplay => FlowAddress.HasValue ? $"D{FlowAddress.Value}" : "-"; public bool HasFlowTelemetry => FlowAddress.HasValue; - public bool IsFlowEstablished => !HasFlowTelemetry || FlowValue >= FlowEstablishedThreshold; - public string StateText => !IsRunning + public bool IsFlowEstablished => !HasFlowTelemetry || (FlowAvailable && FlowValue >= FlowEstablishedThreshold); + public string StateText => !StateAvailable + ? "未知" + : !IsRunning ? "停止" : IsFlowEstablished ? "运行" : "启动中"; - public string StateHint => !IsRunning + public string StateHint => !StateAvailable + ? "未取得 PLC 状态" + : !IsRunning ? "泵未启动" : IsFlowEstablished ? "流量已建立" : "等待流量建立"; - public string IndicatorColor => !IsRunning + public string IndicatorColor => !StateAvailable + ? "#FF94A6AE" + : !IsRunning ? "#FFC8D4DA" : IsFlowEstablished ? "#FF32B06A" : "#FFD38A16"; - public string FlowDisplay => FlowAddress.HasValue ? $"{FlowValue:F2} L/min" : "-"; + public string FlowDisplay => !FlowAddress.HasValue ? "-" : FlowAvailable ? $"{FlowValue:F2} L/min" : "--"; public string ActionText => IsRunning ? "停止" : "启动"; partial void OnIsRunningChanged(bool value) @@ -55,4 +67,20 @@ public partial class PumpControlChannel : ObservableObject OnPropertyChanged(nameof(StateHint)); OnPropertyChanged(nameof(IndicatorColor)); } + + partial void OnStateAvailableChanged(bool value) + { + OnPropertyChanged(nameof(StateText)); + OnPropertyChanged(nameof(StateHint)); + OnPropertyChanged(nameof(IndicatorColor)); + } + + partial void OnFlowAvailableChanged(bool value) + { + OnPropertyChanged(nameof(FlowDisplay)); + OnPropertyChanged(nameof(IsFlowEstablished)); + OnPropertyChanged(nameof(StateText)); + OnPropertyChanged(nameof(StateHint)); + OnPropertyChanged(nameof(IndicatorColor)); + } } diff --git a/Cardiopulmonarybypasssystems/Models/ValveControlChannel.cs b/Cardiopulmonarybypasssystems/Models/ValveControlChannel.cs index 08b4c0e..3e37827 100644 --- a/Cardiopulmonarybypasssystems/Models/ValveControlChannel.cs +++ b/Cardiopulmonarybypasssystems/Models/ValveControlChannel.cs @@ -11,10 +11,13 @@ public partial class ValveControlChannel : ObservableObject [ObservableProperty] private bool isOpen; - public string StateText => IsOpen ? "开启" : "关闭"; + [ObservableProperty] + private bool stateAvailable; + + public string StateText => !StateAvailable ? "未知" : IsOpen ? "开启" : "关闭"; public string ActionText => IsOpen ? "关闭阀门" : "开启阀门"; - public string IndicatorColor => IsOpen ? "#FF32B06A" : "#FFC8D4DA"; - public string StateHint => IsOpen ? "测试回路已导通" : "测试回路已关闭"; + public string IndicatorColor => !StateAvailable ? "#FF94A6AE" : IsOpen ? "#FF32B06A" : "#FFC8D4DA"; + public string StateHint => !StateAvailable ? "未取得 PLC 状态" : IsOpen ? "测试回路已导通" : "测试回路已关闭"; partial void OnIsOpenChanged(bool value) { @@ -23,4 +26,11 @@ public partial class ValveControlChannel : ObservableObject OnPropertyChanged(nameof(IndicatorColor)); OnPropertyChanged(nameof(StateHint)); } + + partial void OnStateAvailableChanged(bool value) + { + OnPropertyChanged(nameof(StateText)); + OnPropertyChanged(nameof(IndicatorColor)); + OnPropertyChanged(nameof(StateHint)); + } } diff --git a/Cardiopulmonarybypasssystems/Services/IModbusTelemetryService.cs b/Cardiopulmonarybypasssystems/Services/IModbusTelemetryService.cs index b08d94d..bccc771 100644 --- a/Cardiopulmonarybypasssystems/Services/IModbusTelemetryService.cs +++ b/Cardiopulmonarybypasssystems/Services/IModbusTelemetryService.cs @@ -5,6 +5,9 @@ namespace Cardiopulmonarybypasssystems.Services; public interface IModbusTelemetryService { bool IsLiveConnected { get; } + string EndpointDescription { get; } + DateTime? LastSuccessfulReadAt { get; } + string LastErrorMessage { get; } IReadOnlyList GetChannels(); IReadOnlyList GetPumpControls(); IReadOnlyList GetValveControls(); diff --git a/Cardiopulmonarybypasssystems/Services/IStandardRepository.cs b/Cardiopulmonarybypasssystems/Services/IStandardRepository.cs index 123538a..8b0a606 100644 --- a/Cardiopulmonarybypasssystems/Services/IStandardRepository.cs +++ b/Cardiopulmonarybypasssystems/Services/IStandardRepository.cs @@ -5,5 +5,5 @@ namespace Cardiopulmonarybypasssystems.Services; public interface IStandardRepository { IReadOnlyList GetInspectionItems(); - IReadOnlyList GetSeedTraceEvents(); + IReadOnlyList GetInitialTraceEvents(); } diff --git a/Cardiopulmonarybypasssystems/Services/MockModbusTelemetryService.cs b/Cardiopulmonarybypasssystems/Services/MockModbusTelemetryService.cs index 1309176..2ff8287 100644 --- a/Cardiopulmonarybypasssystems/Services/MockModbusTelemetryService.cs +++ b/Cardiopulmonarybypasssystems/Services/MockModbusTelemetryService.cs @@ -104,6 +104,10 @@ public sealed class MockModbusTelemetryService : IModbusTelemetryService, IDispo } } + public string EndpointDescription => $"{IpAddress}:{Port} / Slave {SlaveId}"; + public DateTime? LastSuccessfulReadAt => null; + public string LastErrorMessage => "未使用的兼容服务"; + public IReadOnlyList GetChannels() { EnsureConnectionScheduled(); diff --git a/Cardiopulmonarybypasssystems/Services/ModbusTelemetryService.cs b/Cardiopulmonarybypasssystems/Services/ModbusTelemetryService.cs new file mode 100644 index 0000000..86ee28c --- /dev/null +++ b/Cardiopulmonarybypasssystems/Services/ModbusTelemetryService.cs @@ -0,0 +1,507 @@ +using System.Globalization; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using Cardiopulmonarybypasssystems.Models; +using NModbus; + +namespace Cardiopulmonarybypasssystems.Services; + +public sealed class ModbusTelemetryService : IModbusTelemetryService, IDisposable +{ + private const string DefaultIpAddress = "192.168.1.10"; + private const int DefaultPort = 502; + private const byte DefaultSlaveId = 1; + private const ushort ProximalPressureRegister = 1330; + private const ushort DistalPressureRegister = 1380; + private const double FlowRegisterScale = 0.01d; + private static readonly TimeSpan ConnectionAttemptTimeout = TimeSpan.FromMilliseconds(300); + private static readonly TimeSpan ConnectionRetryInterval = TimeSpan.FromSeconds(5); + + private static readonly IReadOnlyDictionary FlowRegisters = new Dictionary(StringComparer.Ordinal) + { + ["PressureDropPump"] = 1000, + ["RecirculationMainPump"] = 1010, + ["RecirculationReturnPump"] = 1020, + ["RecirculationDrainagePump"] = 1030, + ["KinkResistancePump"] = 1040, + ["HemolysisDrainageSinglePump"] = 1050, + ["HemolysisReturnSinglePump"] = 1060, + ["HemolysisDualLumenPump"] = 1070 + }; + + private static readonly IReadOnlyDictionary FlowChannelNames = new Dictionary(StringComparer.Ordinal) + { + ["PressureDropPump"] = "主泵流量", + ["RecirculationMainPump"] = "再循环主泵流量", + ["RecirculationReturnPump"] = "动脉回输流量", + ["RecirculationDrainagePump"] = "静脉引流流量", + ["KinkResistancePump"] = "抗扭结主泵流量", + ["HemolysisDrainageSinglePump"] = "血细胞破坏-单腔引流/回输流量", + ["HemolysisReturnSinglePump"] = "双腔插管试验回路流量", + ["HemolysisDualLumenPump"] = "双腔插管试验回路流量(两个管腔)" + }; + + private readonly object _syncRoot = new(); + private readonly ModbusFactory _factory = new(); + private readonly string _ipAddress; + private readonly int _port; + private readonly byte _slaveId; + private readonly List _channels = + [ + new() { Name = "主泵流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "再循环主泵流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "动脉回输流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "静脉引流流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "抗扭结主泵流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "血细胞破坏-单腔引流/回输流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "双腔插管试验回路流量", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "双腔插管试验回路流量(两个管腔)", Unit = "L/min", Value = 0, Min = 0, Max = 7 }, + new() { Name = "远端压力", Unit = "mmHg", Value = 0, Min = 40, Max = 180 }, + new() { Name = "近端压力", Unit = "mmHg", Value = 0, Min = 60, Max = 220 }, + new() { Name = "负压辅助引流", Unit = "kPa", Value = 0, Min = -20, Max = 0 }, + new() { Name = "模拟血液温度", Unit = "°C", Value = 0, Min = 34, Max = 40 }, + new() { Name = "再循环率", Unit = "%", Value = 0, Min = 0, Max = 20 }, + new() { Name = "游离血红蛋白", Unit = "g/L", Value = 0, Min = 0, Max = 0.08 }, + new() { Name = "白细胞减少率", Unit = "%", Value = 0, Min = 0, Max = 20 } + ]; + private readonly List _pumpControls = + [ + new() { Key = "NegativeAssistPump", Name = "负压泵", StartAddress = 0 }, + new() { Key = "PressureDropPump", Name = "压力降/抗塌陷泵", StartAddress = 1, FlowAddress = FlowRegisters["PressureDropPump"] }, + new() { Key = "RecirculationMainPump", Name = "再循环主泵", StartAddress = 2, FlowAddress = FlowRegisters["RecirculationMainPump"] }, + new() { Key = "RecirculationReturnPump", Name = "回流泵", StartAddress = 3, FlowAddress = FlowRegisters["RecirculationReturnPump"] }, + new() { Key = "RecirculationDrainagePump", Name = "引流泵", StartAddress = 4, FlowAddress = FlowRegisters["RecirculationDrainagePump"] }, + new() { Key = "KinkResistancePump", Name = "抗扭结泵", StartAddress = 5, FlowAddress = FlowRegisters["KinkResistancePump"] }, + new() { Key = "HemolysisDrainageSinglePump", Name = "血细胞破坏-单腔引流/回输泵", StartAddress = 6, FlowAddress = FlowRegisters["HemolysisDrainageSinglePump"] }, + new() { Key = "HemolysisReturnSinglePump", Name = "双腔插管试验回路泵", StartAddress = 7, FlowAddress = FlowRegisters["HemolysisReturnSinglePump"] }, + new() { Key = "HemolysisDualLumenPump", Name = "双腔插管试验回路泵(两个管腔)", StartAddress = 8, FlowAddress = FlowRegisters["HemolysisDualLumenPump"] } + ]; + private readonly List _valveControls = + [ + new() { Key = "TestLoopValve1", Name = "测试回路阀 1", StartAddress = 10 }, + new() { Key = "TestLoopValve2", Name = "测试回路阀 2", StartAddress = 11 } + ]; + + private TcpClient? _tcpClient; + private IModbusMaster? _master; + private Task? _connectionTask; + private DateTime _nextConnectionAttemptUtc = DateTime.MinValue; + private DateTime? _lastSuccessfulReadAt; + private string _lastErrorMessage = "等待首次连接"; + + public ModbusTelemetryService() + { + _ipAddress = Environment.GetEnvironmentVariable("CPB_MODBUS_IP") ?? DefaultIpAddress; + _port = ParseIntSetting("CPB_MODBUS_PORT", DefaultPort); + _slaveId = (byte)ParseIntSetting("CPB_MODBUS_SLAVE_ID", DefaultSlaveId); + ApplyUnavailableDeviceState(); + } + + private int HighestConfiguredCoilAddress => Math.Max( + _pumpControls.Max(item => item.StartAddress), + _valveControls.Max(item => item.StartAddress)); + + public bool IsLiveConnected + { + get + { + lock (_syncRoot) + { + return _master is not null && _tcpClient?.Connected == true; + } + } + } + + public string EndpointDescription => $"{_ipAddress}:{_port} / Slave {_slaveId}"; + + public DateTime? LastSuccessfulReadAt + { + get + { + lock (_syncRoot) + { + return _lastSuccessfulReadAt; + } + } + } + + public string LastErrorMessage + { + get + { + lock (_syncRoot) + { + return _lastErrorMessage; + } + } + } + + public IReadOnlyList GetChannels() + { + EnsureConnectionScheduled(); + return _channels; + } + + public IReadOnlyList GetPumpControls() + { + EnsureConnectionScheduled(); + return _pumpControls; + } + + public IReadOnlyList GetValveControls() + { + EnsureConnectionScheduled(); + return _valveControls; + } + + public IReadOnlyList UpdateChannels() + { + EnsureConnectionScheduled(); + + lock (_syncRoot) + { + var liveReadSucceeded = TryReadPumpStatesAndFlows(); + TryReadPressureChannels(liveReadSucceeded); + SyncDerivedChannels(); + if (liveReadSucceeded) + { + _lastSuccessfulReadAt = DateTime.Now; + _lastErrorMessage = "实时数据正常"; + } + + return BuildAlarms(); + } + } + + public void SetPumpRunning(string pumpKey, bool isRunning) + { + lock (_syncRoot) + { + var pump = _pumpControls.FirstOrDefault(item => item.Key == pumpKey); + if (pump is null) + { + return; + } + + if (_master is null) + { + _lastErrorMessage = $"PLC 离线,未执行泵控写入:{pump.Name}"; + return; + } + + try + { + _master.WriteSingleCoil(_slaveId, (ushort)pump.StartAddress, isRunning); + pump.IsRunning = isRunning; + pump.StateAvailable = true; + } + catch (Exception ex) + { + HandleConnectionFailure($"泵控写入失败:{pump.Name} / {ex.Message}"); + } + } + } + + public void SetValveOpen(string valveKey, bool isOpen) + { + lock (_syncRoot) + { + var valve = _valveControls.FirstOrDefault(item => item.Key == valveKey); + if (valve is null) + { + return; + } + + if (_master is null) + { + _lastErrorMessage = $"PLC 离线,未执行阀控写入:{valve.Name}"; + return; + } + + try + { + _master.WriteSingleCoil(_slaveId, (ushort)valve.StartAddress, isOpen); + valve.IsOpen = isOpen; + valve.StateAvailable = true; + } + catch (Exception ex) + { + HandleConnectionFailure($"阀控写入失败:{valve.Name} / {ex.Message}"); + } + } + } + + public void Dispose() + { + lock (_syncRoot) + { + ReleaseConnection(); + } + } + + private void EnsureConnectionScheduled() + { + lock (_syncRoot) + { + if (_master is not null && _tcpClient?.Connected == true) + { + return; + } + + if (_connectionTask is { IsCompleted: false }) + { + return; + } + + if (DateTime.UtcNow < _nextConnectionAttemptUtc) + { + return; + } + + _nextConnectionAttemptUtc = DateTime.UtcNow.Add(ConnectionRetryInterval); + _connectionTask = Task.Run(ConnectWithTimeout); + } + } + + private void ConnectWithTimeout() + { + TcpClient? tcpClient = null; + + try + { + tcpClient = new TcpClient(); + using var cancellation = new CancellationTokenSource(ConnectionAttemptTimeout); + tcpClient.ConnectAsync(_ipAddress, _port, cancellation.Token).GetAwaiter().GetResult(); + tcpClient.ReceiveTimeout = (int)ConnectionAttemptTimeout.TotalMilliseconds; + tcpClient.SendTimeout = (int)ConnectionAttemptTimeout.TotalMilliseconds; + var master = _factory.CreateMaster(tcpClient); + + lock (_syncRoot) + { + ReleaseConnection(); + _tcpClient = tcpClient; + _master = master; + _lastErrorMessage = "PLC 已连接,等待首帧数据"; + tcpClient = null; + } + } + catch (Exception ex) + { + tcpClient?.Dispose(); + + lock (_syncRoot) + { + HandleConnectionFailure($"连接失败:{ex.Message}"); + } + } + } + + private bool TryReadPumpStatesAndFlows() + { + if (_master is null) + { + ApplyUnavailableDeviceState(); + return false; + } + + try + { + var coilStates = _master.ReadCoils(_slaveId, 0, (ushort)(HighestConfiguredCoilAddress + 1)); + foreach (var pump in _pumpControls) + { + pump.IsRunning = coilStates[pump.StartAddress]; + pump.StateAvailable = true; + if (!pump.FlowAddress.HasValue) + { + pump.FlowAvailable = false; + } + } + + foreach (var valve in _valveControls) + { + valve.IsOpen = coilStates[valve.StartAddress]; + valve.StateAvailable = true; + } + + foreach (var pump in _pumpControls.Where(item => item.FlowAddress.HasValue)) + { + var registerValue = _master.ReadHoldingRegisters(_slaveId, (ushort)pump.FlowAddress!.Value, 1)[0]; + var flowValue = ConvertRegisterToFlow(registerValue); + pump.FlowValue = flowValue; + pump.FlowAvailable = true; + SetChannelValue(FlowChannelNames[pump.Key], flowValue, true); + } + + return true; + } + catch (Exception ex) + { + HandleConnectionFailure($"读取泵控/流量失败:{ex.Message}"); + return false; + } + } + + private void TryReadPressureChannels(bool liveReadSucceeded) + { + if (_master is null || !liveReadSucceeded) + { + SetChannelAvailability("近端压力", false); + SetChannelAvailability("远端压力", false); + return; + } + + try + { + var proximalRaw = _master.ReadHoldingRegisters(_slaveId, ProximalPressureRegister, 1)[0]; + var distalRaw = _master.ReadHoldingRegisters(_slaveId, DistalPressureRegister, 1)[0]; + SetChannelValue("近端压力", ConvertRegisterToPressure(proximalRaw, Channel("近端压力")), true); + SetChannelValue("远端压力", ConvertRegisterToPressure(distalRaw, Channel("远端压力")), true); + } + catch (Exception ex) + { + HandleConnectionFailure($"读取压力失败:{ex.Message}"); + } + } + + private void SyncDerivedChannels() + { + var returnFlow = Channel("动脉回输流量"); + var drainageFlow = Channel("静脉引流流量"); + if (!returnFlow.IsAvailable || !drainageFlow.IsAvailable || returnFlow.Value <= 0.01) + { + SetChannelAvailability("再循环率", false); + return; + } + + var recirculationRate = Math.Clamp((returnFlow.Value - drainageFlow.Value) / returnFlow.Value * 100d, 0d, 100d); + SetChannelValue("再循环率", recirculationRate, true); + } + + private List BuildAlarms() + { + var alarms = new List(); + var proximal = Channel("近端压力"); + var distal = Channel("远端压力"); + var recirculation = Channel("再循环率"); + + if (proximal.IsAvailable && distal.IsAvailable) + { + var deltaPressure = proximal.Value - distal.Value; + if (deltaPressure > 24) + { + alarms.Add(new AlarmMessage + { + Timestamp = DateTime.Now, + Level = "高", + Message = $"压力降 ΔP {deltaPressure:F1} mmHg 偏高,请复核 D{ProximalPressureRegister}/D{DistalPressureRegister}。" + }); + } + } + + if (_master is null) + { + alarms.Add(new AlarmMessage + { + Timestamp = DateTime.Now, + Level = "中", + Message = $"ModbusTcp 未连接,当前不再使用本地模拟数据。目标 {_ipAddress}:{_port}。" + }); + } + + if (recirculation.IsAvailable && recirculation.Value > 8) + { + alarms.Add(new AlarmMessage + { + Timestamp = DateTime.Now, + Level = "中", + Message = $"再循环率 {recirculation.Value:F1}% 偏高,建议复核回路与泵状态。" + }); + } + + foreach (var pump in _pumpControls.Where(item => item.StateAvailable && item.IsRunning && item.FlowAddress.HasValue && item.FlowAvailable && item.FlowValue < 0.15d)) + { + alarms.Add(new AlarmMessage + { + Timestamp = DateTime.Now, + Level = "中", + Message = $"{pump.Name} 已启动但流量未建立,请检查回路、泵头和传感器。" + }); + } + + return alarms; + } + + private void ApplyUnavailableDeviceState() + { + foreach (var pump in _pumpControls) + { + pump.StateAvailable = false; + pump.FlowAvailable = false; + } + + foreach (var valve in _valveControls) + { + valve.StateAvailable = false; + } + + foreach (var channelName in FlowChannelNames.Values) + { + SetChannelAvailability(channelName, false); + } + + SetChannelAvailability("近端压力", false); + SetChannelAvailability("远端压力", false); + SetChannelAvailability("负压辅助引流", false); + SetChannelAvailability("模拟血液温度", false); + SetChannelAvailability("再循环率", false); + SetChannelAvailability("游离血红蛋白", false); + SetChannelAvailability("白细胞减少率", false); + } + + private void HandleConnectionFailure(string errorMessage) + { + ReleaseConnection(); + _nextConnectionAttemptUtc = DateTime.MinValue; + _lastErrorMessage = errorMessage; + ApplyUnavailableDeviceState(); + } + + private void SetChannelValue(string channelName, double nextValue, bool isAvailable) + { + var channel = Channel(channelName); + channel.Value = Math.Clamp(nextValue, channel.Min, channel.Max); + channel.IsAvailable = isAvailable; + } + + private void SetChannelAvailability(string channelName, bool isAvailable) + { + Channel(channelName).IsAvailable = isAvailable; + } + + private void ReleaseConnection() + { + _master?.Dispose(); + _tcpClient?.Dispose(); + _master = null; + _tcpClient = null; + } + + private static int ParseIntSetting(string key, int fallback) + { + var rawValue = Environment.GetEnvironmentVariable(key); + return int.TryParse(rawValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsed) + ? parsed + : fallback; + } + + private static double ConvertRegisterToFlow(ushort rawValue) => rawValue * FlowRegisterScale; + + private static double ConvertRegisterToPressure(ushort rawValue, DeviceChannel channel) + { + var signedValue = rawValue > short.MaxValue ? rawValue - 65536 : rawValue; + return Math.Clamp(signedValue, channel.Min, channel.Max); + } + + private DeviceChannel Channel(string name) => _channels.First(channel => channel.Name == name); +} diff --git a/Cardiopulmonarybypasssystems/Services/StandardRepository.cs b/Cardiopulmonarybypasssystems/Services/StandardRepository.cs index b4ea3c0..806dc0b 100644 --- a/Cardiopulmonarybypasssystems/Services/StandardRepository.cs +++ b/Cardiopulmonarybypasssystems/Services/StandardRepository.cs @@ -107,10 +107,5 @@ public sealed class StandardRepository : IStandardRepository new() { Clause = "4.7", Category = "清洁度", Item = "污染指数", AcceptanceCriteria = "污染指数不超过 90。", TestMethod = "收集污染物并计算污染指数;判定结果不超过 90。", RecordFocus = "填写污染指数" } ]; - public IReadOnlyList GetSeedTraceEvents() => - [ - new() { Timestamp = DateTime.Today.AddHours(8.2), Stage = "批次建档", Detail = "创建一次性使用动静脉插管检测任务", Operator = "张工" }, - new() { Timestamp = DateTime.Today.AddHours(8.6), Stage = "样品登记", Detail = "录入规格 24Fr/32Fr、双腔、EO 灭菌", Operator = "张工" }, - new() { Timestamp = DateTime.Today.AddHours(9.1), Stage = "回路预充", Detail = "实时通道仅做辅助显示,最终结果由试验员手动录入", Operator = "王工" } - ]; + public IReadOnlyList GetInitialTraceEvents() => []; } diff --git a/Cardiopulmonarybypasssystems/ViewModels/MainViewModel.cs b/Cardiopulmonarybypasssystems/ViewModels/MainViewModel.cs index 8d52698..c1d7383 100644 --- a/Cardiopulmonarybypasssystems/ViewModels/MainViewModel.cs +++ b/Cardiopulmonarybypasssystems/ViewModels/MainViewModel.cs @@ -40,19 +40,19 @@ public partial class MainViewModel : ObservableObject private string currentStage = "检测进行中"; [ObservableProperty] - private string operatorName = "张工"; + private string operatorName = Environment.UserName; [ObservableProperty] - private string reviewerName = "李工"; + private string reviewerName = ""; [ObservableProperty] - private string approverName = "周主任"; + private string approverName = ""; [ObservableProperty] - private string batchNumber = $"LOT-{DateTime.Now:yyyyMMdd}-01"; + private string batchNumber = ""; [ObservableProperty] - private string deviceStatus = "连接中"; + private string deviceStatus = "等待连接"; [ObservableProperty] private bool acquisitionRunning = true; @@ -106,7 +106,7 @@ public partial class MainViewModel : ObservableObject private double recirculationAllowedLimit = 8; [ObservableProperty] - private string latestAction = "系统已载入标准项目,等待填写检测结果。"; + private string latestAction = "系统已载入标准项目,等待 PLC 实时数据。"; [ObservableProperty] private InspectionItem? selectedItem; @@ -118,7 +118,7 @@ public partial class MainViewModel : ObservableObject private string resultNote = ""; [ObservableProperty] - private string resultOperator = "张工"; + private string resultOperator = Environment.UserName; [ObservableProperty] private string selectedResultStatusText = "合格"; @@ -140,7 +140,7 @@ public partial class MainViewModel : ObservableObject Channels = new ObservableCollection(telemetryService.GetChannels()); PumpControls = new ObservableCollection(telemetryService.GetPumpControls()); ValveControls = new ObservableCollection(telemetryService.GetValveControls()); - TraceEvents = new ObservableCollection(repository.GetSeedTraceEvents()); + TraceEvents = new ObservableCollection(repository.GetInitialTraceEvents()); AlarmMessages = new ObservableCollection(); ResultStatusOptions = new ObservableCollection(["待检", "合格", "预警", "不合格"]); PressureDropEntries = new ObservableCollection( @@ -211,6 +211,7 @@ public partial class MainViewModel : ObservableObject RefreshTelemetryPanel(); RefreshDeviceStatus(); RefreshComputedState(); + TraceEvents.Insert(0, NewTrace("任务初始化", $"已载入 {InspectionItems.Count} 项检测标准,实时端点 {_telemetryService.EndpointDescription}")); _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; _timer.Tick += (_, _) => RefreshTelemetry(); @@ -251,22 +252,29 @@ public partial class MainViewModel : ObservableObject public bool HasFilteredItems => !FilteredItemsView.IsEmpty; public IEnumerable FlowSensorChannels => Channels.Where(IsFlowSensorChannel); public IEnumerable OtherChannels => Channels.Where(channel => !IsFlowSensorChannel(channel)); + public bool IsTelemetryOnline => _telemetryService.IsLiveConnected; + public string PlcEndpointDisplay => _telemetryService.EndpointDescription; + public string TelemetryLastUpdatedDisplay => _telemetryService.LastSuccessfulReadAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? "未收到实时数据"; + public string TelemetryStatusDetail => _telemetryService.LastErrorMessage; + public string TelemetryAvailabilityDisplay => $"{Channels.Count(channel => channel.IsAvailable)}/{Channels.Count} 路已接入"; + public string AlarmSummaryDisplay => AlarmMessages.Count == 0 ? "无实时告警" : $"{AlarmMessages.Count} 条实时告警"; + public string TelemetryCoverageDisplay => "已映射:泵状态、阀状态、流量寄存器、近端/远端压力;未映射:负压、温度、游离 Hb、白细胞减少率。"; public string ComplianceDisplay => $"{ComplianceRate:F0}%"; - public string DeltaPressureDisplay => $"{DeltaPressure:F1} mmHg"; + public string DeltaPressureDisplay => HasChannelTelemetry("近端压力", "远端压力") ? $"{DeltaPressure:F1} mmHg" : "--"; public string ExportStateText => DetectionCompleted ? "检测已完成,可导出 PDF 正式报表" : "检测进行中,完成后导出 PDF 正式报表"; public string SelectedItemTitle => SelectedItem?.Item ?? "未选择项目"; public string SelectedItemStatusText => SelectedItem?.StatusText ?? "待检"; - public string RealtimeRecirculationDisplay => $"{RecirculationRate:F1}%"; - public string PumpFlowDisplay => $"{PumpFlow:F2} L/min"; - public string DrainageFlowDisplay => $"{DrainageFlow:F2} L/min"; - public string ReturnFlowDisplay => $"{ReturnFlow:F2} L/min"; - public string PressureDropPumpFlowDisplay => $"{PressureDropPumpFlow:F2} L/min"; - public string RecirculationPumpFlowDisplay => $"{RecirculationPumpFlow:F2} L/min"; - public string KinkResistancePumpFlowDisplay => $"{KinkResistancePumpFlow:F2} L/min"; - public string HemolysisDrainageSingleFlowDisplay => $"{HemolysisDrainageSingleFlow:F2} L/min"; - public string HemolysisReturnSingleFlowDisplay => $"{HemolysisReturnSingleFlow:F2} L/min"; - public string HemolysisDualLumenFlowDisplay => $"{HemolysisDualLumenFlow:F2} L/min"; + public string RealtimeRecirculationDisplay => ChannelDisplay("再循环率", "F1", "%"); + public string PumpFlowDisplay => ChannelDisplay("主泵流量", "F2", "L/min"); + public string DrainageFlowDisplay => ChannelDisplay("静脉引流流量", "F2", "L/min"); + public string ReturnFlowDisplay => ChannelDisplay("动脉回输流量", "F2", "L/min"); + public string PressureDropPumpFlowDisplay => ChannelDisplay("主泵流量", "F2", "L/min"); + public string RecirculationPumpFlowDisplay => ChannelDisplay("再循环主泵流量", "F2", "L/min"); + public string KinkResistancePumpFlowDisplay => ChannelDisplay("抗扭结主泵流量", "F2", "L/min"); + public string HemolysisDrainageSingleFlowDisplay => ChannelDisplay("血细胞破坏-单腔引流/回输流量", "F2", "L/min"); + public string HemolysisReturnSingleFlowDisplay => ChannelDisplay("双腔插管试验回路流量", "F2", "L/min"); + public string HemolysisDualLumenFlowDisplay => ChannelDisplay("双腔插管试验回路流量(两个管腔)", "F2", "L/min"); public string FlowTrendTitle => SelectedItem?.Clause switch { "4.3.3" => "再循环流量趋势", @@ -316,12 +324,12 @@ public partial class MainViewModel : ObservableObject }; public double PressureTrendMax => MaxTrendValue([ProximalPressureTrendValues, DistalPressureTrendValues, DeltaPressureTrendValues], 40d); public double FlowTrendMax => MaxTrendValue([ActiveFlowTrendPrimaryValues, ActiveFlowTrendSecondaryValues, ActiveFlowTrendTertiaryValues], Math.Max(RatedMaxFlow, 1d)); - public string ProximalPressureDisplay => $"{ChannelValue("近端压力"):F1} mmHg"; - public string DistalPressureDisplay => $"{ChannelValue("远端压力"):F1} mmHg"; - public string FlowImbalanceDisplay => $"{Math.Abs(PumpFlow - ReturnFlow):F2} L/min"; - public string PumpFlowLoadDisplay => $"{ChannelNormalizedValue("主泵流量"):P0} 量程"; - public string DrainageFlowLoadDisplay => $"{ChannelNormalizedValue("静脉引流流量"):P0} 量程"; - public string ReturnFlowLoadDisplay => $"{ChannelNormalizedValue("动脉回输流量"):P0} 量程"; + public string ProximalPressureDisplay => ChannelDisplay("近端压力", "F1", "mmHg"); + public string DistalPressureDisplay => ChannelDisplay("远端压力", "F1", "mmHg"); + public string FlowImbalanceDisplay => HasChannelTelemetry("主泵流量", "动脉回输流量") ? $"{Math.Abs(PumpFlow - ReturnFlow):F2} L/min" : "--"; + public string PumpFlowLoadDisplay => ChannelLoadDisplay("主泵流量"); + public string DrainageFlowLoadDisplay => ChannelLoadDisplay("静脉引流流量"); + public string ReturnFlowLoadDisplay => ChannelLoadDisplay("动脉回输流量"); public double PumpFlowNormalizedValue => ChannelNormalizedValue("主泵流量"); public double DrainageFlowNormalizedValue => ChannelNormalizedValue("静脉引流流量"); public double ReturnFlowNormalizedValue => ChannelNormalizedValue("动脉回输流量"); @@ -338,11 +346,11 @@ public partial class MainViewModel : ObservableObject : SelectedItem?.ManualEntryHint ?? "当前项目需要人工填写结果。"; public string SelectedItemLiveDisplay => BuildSelectedItemLiveDisplay(); public string SelectedItemLiveHint => SelectedItem?.LiveDisplayHint ?? "当前项目无实时映射。"; - public string NegativeAssistPressureDisplay => $"{ChannelValue("负压辅助引流"):F1} kPa"; - public string TemperatureDisplay => $"{ChannelValue("模拟血液温度"):F1} °C"; - public string FreeHemoglobinDisplay => $"{ChannelValue("游离血红蛋白"):F3} g/L"; - public string WhiteCellLossDisplay => $"{ChannelValue("白细胞减少率"):F1}%"; - public string PressureDropConditionDisplay => $"模拟血液 3.2±0.2 mPa·s / {TemperatureDisplay} / 最终灭菌成品"; + public string NegativeAssistPressureDisplay => ChannelDisplay("负压辅助引流", "F1", "kPa"); + public string TemperatureDisplay => ChannelDisplay("模拟血液温度", "F1", "°C"); + public string FreeHemoglobinDisplay => ChannelDisplay("游离血红蛋白", "F3", "g/L"); + public string WhiteCellLossDisplay => ChannelDisplay("白细胞减少率", "F1", "%"); + public string PressureDropConditionDisplay => $"模拟血液 3.2±0.2 mPa·s / 温度 {TemperatureDisplay} / 最终灭菌成品"; public string ConfigurationSummary => $"型号:{ProductModel} / 适用人群:{ApplicablePopulation} / 标称最大流量:{RatedMaxFlow:F2} L/min"; public string PressureDropFlowPointDisplay => $"50%={PressureDropFlowPoint(0.50):F2} L/min / 75%={PressureDropFlowPoint(0.75):F2} L/min / 100%={PressureDropFlowPoint(1.00):F2} L/min"; @@ -534,8 +542,9 @@ public partial class MainViewModel : ObservableObject var nextState = !pump.IsRunning; _telemetryService.SetPumpRunning(pump.Key, nextState); - pump.IsRunning = nextState; - LatestAction = $"{pump.Name} 已{(nextState ? "启动" : "停止")}。"; + LatestAction = _telemetryService.IsLiveConnected + ? $"{pump.Name} 已发送{(nextState ? "启动" : "停止")}指令。" + : $"{pump.Name} 指令未下发,PLC 当前离线。"; TraceEvents.Insert(0, NewTrace("泵控", $"{pump.Name} => {(nextState ? "启动" : "停止")}")); RefreshTelemetry(); } @@ -550,9 +559,11 @@ public partial class MainViewModel : ObservableObject var nextState = !valve.IsOpen; _telemetryService.SetValveOpen(valve.Key, nextState); - valve.IsOpen = nextState; - LatestAction = $"{valve.Name} 已{(nextState ? "开启" : "关闭")}。"; + LatestAction = _telemetryService.IsLiveConnected + ? $"{valve.Name} 已发送{(nextState ? "开启" : "关闭")}指令。" + : $"{valve.Name} 指令未下发,PLC 当前离线。"; TraceEvents.Insert(0, NewTrace("阀控", $"{valve.Name} => {(nextState ? "开启" : "关闭")}")); + RefreshTelemetry(); } [RelayCommand] @@ -606,6 +617,12 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + LatestAction = "抗塌陷基线采集失败:主泵或压力实时数据未接入。"; + return; + } + _antiCollapseBaselinePressureDrop = DeltaPressure; _antiCollapseBaselineFlow = PumpFlow; _antiCollapseBaselineCapturedAt = DateTime.Now; @@ -639,6 +656,12 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + LatestAction = "抗塌陷比较失败:主泵或压力实时数据未接入。"; + return; + } + var resultText = BuildAntiCollapseMeasuredText(); var noteText = BuildAntiCollapseRecordNote(); var comparison = GetAntiCollapseComparison(); @@ -796,6 +819,7 @@ public partial class MainViewModel : ObservableObject var count = AlarmMessages.Count; AlarmMessages.Clear(); + OnPropertyChanged(nameof(AlarmSummaryDisplay)); LatestAction = $"已确认并清空 {count} 条实时告警。"; TraceEvents.Insert(0, NewTrace("告警确认", $"确认 {count} 条实时告警")); } @@ -805,7 +829,8 @@ public partial class MainViewModel : ObservableObject { var outputDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); var timestamp = DateTime.Now.ToString("yyyyMMdd-HHmmss"); - var pdfPath = Path.Combine(outputDirectory, $"检测报表-{BatchNumber}-{timestamp}.pdf"); + var batchToken = string.IsNullOrWhiteSpace(BatchNumber) ? "未填写批号" : BatchNumber.Trim(); + var pdfPath = Path.Combine(outputDirectory, $"检测报表-{batchToken}-{timestamp}.pdf"); try { @@ -865,9 +890,9 @@ public partial class MainViewModel : ObservableObject private void RefreshTelemetryPanel() { - var distalPressure = Channels.First(c => c.Name == "远端压力").Value; - var proximalPressure = Channels.First(c => c.Name == "近端压力").Value; - DeltaPressure = proximalPressure - distalPressure; + DeltaPressure = HasChannelTelemetry("近端压力", "远端压力") + ? ChannelValue("近端压力") - ChannelValue("远端压力") + : 0d; OnPropertyChanged(nameof(PumpFlow)); OnPropertyChanged(nameof(DrainageFlow)); OnPropertyChanged(nameof(ReturnFlow)); @@ -908,6 +933,13 @@ public partial class MainViewModel : ObservableObject OnPropertyChanged(nameof(FlowSensorChannels)); OnPropertyChanged(nameof(OtherChannels)); OnPropertyChanged(nameof(PumpControls)); + OnPropertyChanged(nameof(IsTelemetryOnline)); + OnPropertyChanged(nameof(PlcEndpointDisplay)); + OnPropertyChanged(nameof(TelemetryLastUpdatedDisplay)); + OnPropertyChanged(nameof(TelemetryStatusDetail)); + OnPropertyChanged(nameof(TelemetryAvailabilityDisplay)); + OnPropertyChanged(nameof(AlarmSummaryDisplay)); + OnPropertyChanged(nameof(TelemetryCoverageDisplay)); OnPropertyChanged(nameof(SelectedItemLiveDisplay)); OnPropertyChanged(nameof(SelectedItemLiveHint)); OnPropertyChanged(nameof(PressureTrendCurrentSummary)); @@ -925,7 +957,11 @@ public partial class MainViewModel : ObservableObject return; } - DeviceStatus = _telemetryService.IsLiveConnected ? "PLC在线" : "PLC离线(模拟)"; + DeviceStatus = _telemetryService.IsLiveConnected + ? "PLC在线" + : _telemetryService.LastSuccessfulReadAt.HasValue + ? "PLC断连" + : "等待连接"; } private void RefreshComputedState() @@ -938,21 +974,33 @@ public partial class MainViewModel : ObservableObject private void CaptureTrendSamples() { - AppendTrendValue(ProximalPressureTrendValues, ChannelValue("近端压力")); - AppendTrendValue(DistalPressureTrendValues, ChannelValue("远端压力")); - AppendTrendValue(DeltaPressureTrendValues, DeltaPressure); - AppendTrendValue(PressureDropPumpTrendValues, PressureDropPumpFlow); - AppendTrendValue(RecirculationMainPumpTrendValues, RecirculationPumpFlow); - AppendTrendValue(RecirculationReturnPumpTrendValues, ReturnFlow); - AppendTrendValue(RecirculationDrainagePumpTrendValues, DrainageFlow); - AppendTrendValue(KinkResistancePumpTrendValues, KinkResistancePumpFlow); - AppendTrendValue(HemolysisDrainageSingleTrendValues, HemolysisDrainageSingleFlow); - AppendTrendValue(HemolysisReturnSingleTrendValues, HemolysisReturnSingleFlow); - AppendTrendValue(HemolysisDualLumenTrendValues, HemolysisDualLumenFlow); + AppendTrendValueIfAvailable(ProximalPressureTrendValues, "近端压力"); + AppendTrendValueIfAvailable(DistalPressureTrendValues, "远端压力"); + if (HasChannelTelemetry("近端压力", "远端压力")) + { + AppendTrendValue(DeltaPressureTrendValues, DeltaPressure); + } + + AppendTrendValueIfAvailable(PressureDropPumpTrendValues, "主泵流量"); + AppendTrendValueIfAvailable(RecirculationMainPumpTrendValues, "再循环主泵流量"); + AppendTrendValueIfAvailable(RecirculationReturnPumpTrendValues, "动脉回输流量"); + AppendTrendValueIfAvailable(RecirculationDrainagePumpTrendValues, "静脉引流流量"); + AppendTrendValueIfAvailable(KinkResistancePumpTrendValues, "抗扭结主泵流量"); + AppendTrendValueIfAvailable(HemolysisDrainageSingleTrendValues, "血细胞破坏-单腔引流/回输流量"); + AppendTrendValueIfAvailable(HemolysisReturnSingleTrendValues, "双腔插管试验回路流量"); + AppendTrendValueIfAvailable(HemolysisDualLumenTrendValues, "双腔插管试验回路流量(两个管腔)"); RaiseTrendPropertyChanges(); } + private void AppendTrendValueIfAvailable(ObservableCollection series, string channelName) + { + if (TryGetChannel(channelName, out var channel) && channel.IsAvailable) + { + AppendTrendValue(series, channel.Value); + } + } + private static void AppendTrendValue(ObservableCollection series, double value) { series.Add(value); @@ -1066,25 +1114,36 @@ public partial class MainViewModel : ObservableObject var pressureItem = InspectionItems.FirstOrDefault(item => item.Clause == "4.3.1"); if (pressureItem is not null) { - var pressureStatus = GetPressureDropOverallStatus(); - - pressureItem.Measured = BuildPressureDropMeasuredText(); - pressureItem.Notes = BuildPressureDropRecordNote(); - pressureItem.RecordedBy = "实时数据"; - pressureItem.RecordedAt = DateTime.Now; - pressureItem.Status = pressureStatus; - - if (SelectedItem == pressureItem) + if (HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) { - ResultValue = pressureItem.Measured; - ResultNote = pressureItem.Notes; - SelectedResultStatusText = pressureItem.Status switch + var pressureStatus = GetPressureDropOverallStatus(); + + pressureItem.Measured = BuildPressureDropMeasuredText(); + pressureItem.Notes = BuildPressureDropRecordNote(); + pressureItem.RecordedBy = "实时数据"; + pressureItem.RecordedAt = DateTime.Now; + pressureItem.Status = pressureStatus; + + if (SelectedItem == pressureItem) { - InspectionItemStatus.Pending => "待检", - InspectionItemStatus.Warning => "预警", - InspectionItemStatus.Critical => "不合格", - _ => "合格" - }; + ResultValue = pressureItem.Measured; + ResultNote = pressureItem.Notes; + SelectedResultStatusText = pressureItem.Status switch + { + InspectionItemStatus.Pending => "待检", + InspectionItemStatus.Warning => "预警", + InspectionItemStatus.Critical => "不合格", + _ => "合格" + }; + } + } + else + { + pressureItem.Measured = "等待 PLC 实时压力与流量数据"; + pressureItem.Notes = $"当前实时链路不可用:{TelemetryStatusDetail}"; + pressureItem.RecordedBy = string.Empty; + pressureItem.RecordedAt = null; + pressureItem.Status = InspectionItemStatus.Pending; } } @@ -1108,7 +1167,10 @@ public partial class MainViewModel : ObservableObject var antiCollapseItem = InspectionItems.FirstOrDefault(item => item.Clause == "4.3.2"); if (antiCollapseItem is not null) { - UpdateAntiCollapseBaseline(); + if (HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + UpdateAntiCollapseBaseline(); + } if (SelectedItem == antiCollapseItem) { @@ -1131,7 +1193,7 @@ public partial class MainViewModel : ObservableObject } var recirculationItem = InspectionItems.FirstOrDefault(item => item.Clause == "4.3.3"); - if (recirculationItem is not null && SelectedItem == recirculationItem) + if (recirculationItem is not null && SelectedItem == recirculationItem && HasChannelTelemetry("再循环主泵流量", "静脉引流流量", "动脉回输流量", "再循环率")) { var suggestedResult = BuildRecirculationMeasuredText(); var suggestedNote = BuildRecirculationRecordNote(); @@ -1314,8 +1376,38 @@ public partial class MainViewModel : ObservableObject private static string FormatHemolysisValue(double? value, string format) => value.HasValue ? value.Value.ToString(format) : string.Empty; - private double ChannelValue(string name) => Channels.FirstOrDefault(channel => channel.Name == name)?.Value ?? 0d; + private double ChannelValue(string name) => Channels.First(channel => channel.Name == name).Value; private double ChannelNormalizedValue(string name) => Channels.FirstOrDefault(channel => channel.Name == name)?.NormalizedValue ?? 0d; + private double ChannelValueOrDefault(string name) => TryGetChannel(name, out var channel) && channel.IsAvailable ? channel.Value : 0d; + private bool HasChannelTelemetry(params string[] names) => names.All(name => TryGetChannel(name, out var channel) && channel.IsAvailable); + + private bool TryGetChannel(string name, out DeviceChannel channel) + { + channel = Channels.FirstOrDefault(item => item.Name == name)!; + return channel is not null; + } + + private string ChannelDisplay(string name, string format, string unit) + { + if (!TryGetChannel(name, out var channel) || !channel.IsAvailable) + { + return "--"; + } + + return string.IsNullOrWhiteSpace(unit) + ? channel.Value.ToString(format) + : $"{channel.Value.ToString(format)} {unit}"; + } + + private string ChannelLoadDisplay(string name) + { + if (!TryGetChannel(name, out var channel) || !channel.IsAvailable) + { + return "--"; + } + + return $"{channel.NormalizedValue:P0} 量程"; + } private IEnumerable PumpControlsFor(params string[] pumpKeys) { var orderLookup = pumpKeys @@ -1404,6 +1496,11 @@ public partial class MainViewModel : ObservableObject private string BuildKinkResistanceLiveDisplay() { + if (!HasChannelTelemetry("抗扭结主泵流量")) + { + return "抗扭结主泵实时流量未接入,当前仅可查看已保存采样记录。"; + } + return $"条件:血液/模拟血液 2.0~3.5 mPa·s / 当前温度 {TemperatureDisplay} / 40±1 °C\n" + $"流量点:{KinkResistanceFlowPointDisplay}\n" + @@ -1462,9 +1559,15 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("抗扭结主泵流量")) + { + LatestAction = "抗扭结基线采集失败:抗扭结主泵实时流量未接入。"; + return; + } + var entry = KinkResistanceEntries.First(item => item.Label == label); entry.BaselineFlow = KinkResistancePumpFlow; - entry.Temperature = ChannelValue("模拟血液温度"); + entry.Temperature = ChannelValueOrDefault("模拟血液温度"); entry.BaselineCapturedAt = DateTime.Now; ResultValue = BuildKinkResistanceMeasuredText(); @@ -1484,6 +1587,12 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("抗扭结主泵流量")) + { + LatestAction = "抗扭结比较失败:抗扭结主泵实时流量未接入。"; + return; + } + var entry = KinkResistanceEntries.First(item => item.Label == label); if (!entry.HasBaseline) { @@ -1492,7 +1601,7 @@ public partial class MainViewModel : ObservableObject } entry.KinkedFlow = KinkResistancePumpFlow; - entry.Temperature = ChannelValue("模拟血液温度"); + entry.Temperature = ChannelValueOrDefault("模拟血液温度"); entry.KinkedCapturedAt = DateTime.Now; var resultText = BuildKinkResistanceMeasuredText(); @@ -1541,6 +1650,11 @@ public partial class MainViewModel : ObservableObject private string BuildPressureDropMeasuredText() { + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + return $"实时压力降数据未接入,无法自动生成记录。当前状态:{TelemetryStatusDetail}"; + } + var lines = new List { $"试验条件:{PressureDropConditionDisplay}", @@ -1554,7 +1668,7 @@ public partial class MainViewModel : ObservableObject : $"{entry.Label}:尚未采样"); } - lines.Add($"当前实时:近端 {ChannelValue("近端压力"):F1} mmHg;远端 {ChannelValue("远端压力"):F1} mmHg;ΔP {DeltaPressure:F1} mmHg"); + lines.Add($"当前实时:近端 {ProximalPressureDisplay};远端 {DistalPressureDisplay};ΔP {DeltaPressureDisplay}"); return string.Join("\n", lines); } @@ -1571,17 +1685,22 @@ public partial class MainViewModel : ObservableObject $"标准记录建议:在 50% / 75% / 100% 最大标称流量点分别保存压力数据。\n" + $"制造商声明限值:{PressureDropLimitDisplay}。\n" + $"已采样流量点:{BuildPressureDropSamplingSummary()}。\n" + - $"当前记录:主泵流量 {PumpFlow:F2} L/min,温度 {ChannelValue("模拟血液温度"):F1} °C,{pressureStatusText}。\n" + + $"当前记录:主泵流量 {PumpFlowDisplay},温度 {TemperatureDisplay},{pressureStatusText}。\n" + $"制造商声明范围需在正式报告中复核;若压降-流量关系呈非线性,应补充更多流量点。"; } private string BuildPressureDropLiveDisplay() { + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + return $"压力降实时信号未接入。当前链路状态:{TelemetryStatusDetail}"; + } + return $"条件:{PressureDropConditionDisplay}\n" + $"流量点:{PressureDropFlowPointDisplay}\n" + $"限值:{PressureDropLimitDisplay}\n" + - $"当前:主泵 {PumpFlow:F2} L/min / 近端 {ChannelValue("近端压力"):F1} mmHg / 远端 {ChannelValue("远端压力"):F1} mmHg / ΔP {DeltaPressure:F1} mmHg\n" + + $"当前:主泵 {PumpFlowDisplay} / 近端 {ProximalPressureDisplay} / 远端 {DistalPressureDisplay} / ΔP {DeltaPressureDisplay}\n" + $"{BuildPressureDropSamplingSummary()}"; } @@ -1606,11 +1725,17 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + LatestAction = "压力降采样失败:主泵或压力实时数据未接入。"; + return; + } + var entry = PressureDropEntries.First(item => item.Label == label); entry.ActualPumpFlow = PumpFlow; entry.ProximalPressure = ChannelValue("近端压力"); entry.DistalPressure = ChannelValue("远端压力"); - entry.Temperature = ChannelValue("模拟血液温度"); + entry.Temperature = ChannelValueOrDefault("模拟血液温度"); entry.SampledAt = DateTime.Now; LatestAction = $"已采集压力降 {entry.Label} 流量点:ΔP {entry.DeltaPressure:F1} mmHg。"; @@ -1621,7 +1746,12 @@ public partial class MainViewModel : ObservableObject private void UpdateAntiCollapseBaseline() { - var negativePressure = ChannelValue("负压辅助引流"); + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + return; + } + + var negativePressure = ChannelValueOrDefault("负压辅助引流"); if (_antiCollapseBaselinePressureDrop is null || negativePressure >= -1.0) { @@ -1636,6 +1766,11 @@ public partial class MainViewModel : ObservableObject private string BuildAntiCollapseLiveDisplay() { + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + return $"抗塌陷比较所需的主泵/压力实时信号未接入。当前链路状态:{TelemetryStatusDetail}"; + } + var comparison = GetAntiCollapseComparison(); var baselineText = comparison.HasBaseline ? $"基线 ΔP {comparison.BaselinePressureDrop:F1} mmHg @ {comparison.BaselineFlow:F2} L/min" @@ -1655,6 +1790,11 @@ public partial class MainViewModel : ObservableObject private string BuildAntiCollapseMeasuredText() { + if (!HasChannelTelemetry("主泵流量", "近端压力", "远端压力")) + { + return $"抗塌陷实时数据未接入,无法自动生成比较结果。当前状态:{TelemetryStatusDetail}"; + } + var comparison = GetAntiCollapseComparison(); var baselineText = comparison.HasBaseline ? $"{comparison.BaselinePressureDrop:F1} mmHg" @@ -1848,6 +1988,11 @@ public partial class MainViewModel : ObservableObject private string BuildRecirculationLiveDisplay() { + if (!HasChannelTelemetry("再循环主泵流量", "静脉引流流量", "动脉回输流量", "再循环率")) + { + return $"再循环所需的主泵/引流/回输实时信号未接入。当前链路状态:{TelemetryStatusDetail}"; + } + return $"条件:试验液体为水 + 示踪粒子 / 当前温度 {TemperatureDisplay}\n" + $"目标流量点:{RecirculationFlowPointDisplay}\n" + @@ -1928,12 +2073,18 @@ public partial class MainViewModel : ObservableObject return; } + if (!HasChannelTelemetry("再循环主泵流量", "静脉引流流量", "动脉回输流量", "再循环率")) + { + LatestAction = "再循环采样失败:主泵/引流/回输实时数据未接入。"; + return; + } + var entry = RecirculationEntries.First(item => item.Label == label); entry.ActualPumpFlow = RecirculationPumpFlow; entry.DrainageFlow = DrainageFlow; entry.ReturnFlow = ReturnFlow; entry.OnlineEstimate = RecirculationRate; - entry.Temperature = ChannelValue("模拟血液温度"); + entry.Temperature = ChannelValueOrDefault("模拟血液温度"); entry.SampledAt = DateTime.Now; var resultText = BuildRecirculationMeasuredText();