├── Docs ├── source │ ├── _static │ │ └── .gitxxx │ ├── _images │ │ ├── osda.png │ │ └── framework.png │ ├── license.rst │ ├── guides.rst │ ├── index.rst │ ├── getting_started.rst │ ├── contribute.rst │ ├── api.rst │ └── conf.py ├── README.md ├── Makefile └── make.bat ├── msvc ├── VS2017.Framework │ ├── Models │ │ └── .gitxxx │ ├── Views │ │ └── .gitxxx │ ├── Interface │ │ └── .gitxxx │ ├── Properties │ │ └── .gitxxx │ ├── ViewModels │ │ └── .gitxxx │ ├── icon │ │ ├── Max.png │ │ ├── Min.png │ │ ├── Red.png │ │ ├── Close.png │ │ ├── favicon.ico │ │ ├── favicon.png │ │ └── README.md │ ├── App.config │ └── ODSA.csproj ├── VS2019.Framework │ ├── Models │ │ └── .gitxxx │ ├── Views │ │ └── .gitxxx │ ├── Interface │ │ └── .gitxxx │ ├── Properties │ │ └── .gitxxx │ ├── ViewModels │ │ └── .gitxxx │ ├── icon │ │ ├── Max.png │ │ ├── Min.png │ │ ├── Red.png │ │ ├── Close.png │ │ ├── favicon.ico │ │ ├── favicon.png │ │ └── README.md │ ├── App.config │ ├── packages.config │ └── OSDA.csproj ├── VS2019.Core │ ├── icon │ │ ├── Max.png │ │ ├── Min.png │ │ ├── Red.png │ │ ├── Close.png │ │ ├── favicon.ico │ │ └── favicon.png │ └── OSDA.csproj ├── OSDA2017.Framework.sln ├── OSDA2019.Core.sln └── OSDA2019.Framework.sln ├── icon ├── Max.png ├── Min.png ├── Red.png ├── Close.png ├── favicon.ico ├── favicon.png └── README.md ├── .gitee ├── PULL_REQUEST_TEMPLATE.zh-CN.md ├── ISSUE_GUIDELINES.md └── ISSUE_TEMPLATE.zh-CN.md ├── .github ├── pull_request_template.md └── ISSUE_TEMPLATE │ ├── Feature_request.md │ └── Bug_report.md ├── Properties ├── Settings.settings ├── Settings.Designer.cs ├── AssemblyInfo.cs ├── Resources.Designer.cs └── Resources.resx ├── Setup ├── README.md └── OSDA_Inno_Setup.iss ├── App.xaml.cs ├── ViewModels ├── WPFUpdateVM.cs ├── MainWindowBase.cs └── MainWindowVM.cs ├── Views ├── WPFUpdate.xaml.cs ├── WPFUpdate.xaml ├── MainWindow.xaml.cs └── MainWindow.xaml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Models ├── TimerM.cs ├── RecvM.cs ├── SendM.cs ├── HelpM.cs └── SerialPortM.cs ├── CODE_OF_CONDUCT.md ├── Interface └── ITextBoxAppend.cs ├── .gitignore └── App.xaml /Docs/source/_static/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/Models/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/Views/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/Models/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/Views/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/Interface/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/Properties/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/ViewModels/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/Interface/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/Properties/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/ViewModels/.gitxxx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icon/Max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/Max.png -------------------------------------------------------------------------------- /icon/Min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/Min.png -------------------------------------------------------------------------------- /icon/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/Red.png -------------------------------------------------------------------------------- /icon/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/Close.png -------------------------------------------------------------------------------- /icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/favicon.ico -------------------------------------------------------------------------------- /icon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/icon/favicon.png -------------------------------------------------------------------------------- /.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md: -------------------------------------------------------------------------------- 1 | ### 引用 Issue 2 | 3 | ### Request 描述 4 | 5 | ### 测试效果 6 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ### 引用 Issue 2 | 3 | ### Request 描述 4 | 5 | ### 测试效果 6 | -------------------------------------------------------------------------------- /Docs/source/_images/osda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/Docs/source/_images/osda.png -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/Max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/Max.png -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/Min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/Min.png -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/Red.png -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/Close.png -------------------------------------------------------------------------------- /Docs/source/_images/framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/Docs/source/_images/framework.png -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/Max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/Max.png -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/Min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/Min.png -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/Red.png -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/favicon.ico -------------------------------------------------------------------------------- /msvc/VS2019.Core/icon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Core/icon/favicon.png -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/Max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/Max.png -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/Min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/Min.png -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/Red.png -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/Close.png -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/Close.png -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/favicon.ico -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2017.Framework/icon/favicon.png -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/favicon.ico -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leven99/OSDA/HEAD/msvc/VS2019.Framework/icon/favicon.png -------------------------------------------------------------------------------- /.gitee/ISSUE_GUIDELINES.md: -------------------------------------------------------------------------------- 1 | ## 在你开始之前...... 2 | 3 | 对于 **Bug** 的 Issue,可参考 **# Bug report** 模板书写; 4 | 5 | 对于 **Feature** 的 Issue,可参考 **# Feature request** 模板书写; 6 | -------------------------------------------------------------------------------- /.gitee/ISSUE_TEMPLATE.zh-CN.md: -------------------------------------------------------------------------------- 1 | # Bug report 2 | ### 问题描述 3 | 4 | ### 重现步骤 5 | 6 | ### 期望效果 7 | 8 | # Feature request 9 | ### 功能描述 10 | 11 | ### 功能目的 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: 'feature' 6 | assignees: '' 7 | --- 8 | 9 | ## 功能描述 10 | 11 | ## 功能目的 12 | -------------------------------------------------------------------------------- /icon/README.md: -------------------------------------------------------------------------------- 1 | ## Favicon 2 | 3 | ### 图标作者 4 | BlackVariant (Patrick) 5 | 6 | ### 图标作者网站 7 | http://blackvariant.deviantart.com/art/Button-UI-Requests-12-520378397 8 | 9 | ### 图标使用说明 10 | Free for non-commercial use -------------------------------------------------------------------------------- /msvc/VS2017.Framework/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /msvc/VS2019.Framework/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: 'bug' 6 | assignees: '' 7 | --- 8 | 9 | ## 问题描述 10 | 11 | ## 重现步骤 12 | 13 | ## 期望效果 14 | 15 | ## 实际效果 16 | -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /msvc/VS2017.Framework/icon/README.md: -------------------------------------------------------------------------------- 1 | ## Favicon 2 | 3 | ### 图标作者 4 | BlackVariant (Patrick) 5 | 6 | ### 图标作者网站 7 | http://blackvariant.deviantart.com/art/Button-UI-Requests-12-520378397 8 | 9 | ### 图标使用说明 10 | Free for non-commercial use -------------------------------------------------------------------------------- /msvc/VS2019.Framework/icon/README.md: -------------------------------------------------------------------------------- 1 | ## Favicon 2 | 3 | ### 图标作者 4 | BlackVariant (Patrick) 5 | 6 | ### 图标作者网站 7 | http://blackvariant.deviantart.com/art/Button-UI-Requests-12-520378397 8 | 9 | ### 图标使用说明 10 | Free for non-commercial use -------------------------------------------------------------------------------- /Docs/source/license.rst: -------------------------------------------------------------------------------- 1 | 许可 2 | #### 3 | 4 | OSDA 是一个以 MIT 协议授权许可的串行端口调试助手(许可证可以在 `Gitee`_ 或者 `Github`_ 仓库中找到。)。 5 | 6 | .. _Gitee : 7 | https://gitee.com/leven9/OSDA/blob/master/LICENSE 8 | 9 | .. _Github : 10 | https://github.com/leven99/OSDA/blob/master/LICENSE -------------------------------------------------------------------------------- /Docs/source/guides.rst: -------------------------------------------------------------------------------- 1 | 设计 2 | #### 3 | 4 | 架构 5 | **** 6 | 7 | .. figure:: _images/framework.png 8 | :width: 750px 9 | :align: center 10 | 11 | UI设计 12 | ****** 13 | 14 | OSDA 的 UI 设计分为 7 部分: 15 | 16 | - 菜单栏 17 | - 状态栏 18 | - 接收区 19 | - 发送区 20 | - 串口配置区 21 | - 信号状态区 22 | - 辅助区 -------------------------------------------------------------------------------- /Setup/README.md: -------------------------------------------------------------------------------- 1 | ## 软件打包 2 | 3 | 软件打包使用 Inno 工具,点击 [此处](http://www.jrsoftware.org/isinfo.php) 下载安装(Inno 官方网站)。 4 | 5 | ### 支持语言 6 | 7 | * 英文 8 | * 中文 9 | 10 | 中文语言包点击 [此处](http://www.jrsoftware.org/files/istrans/) (Inno 官方网站),选择 `Chinese (Simplified)` 文件下载,移动到 `$INNO_PATH/Languages/` 目录下即可。 11 | -------------------------------------------------------------------------------- /App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace OSDA 10 | { 11 | /// 12 | /// App.xaml 的交互逻辑 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ViewModels/WPFUpdateVM.cs: -------------------------------------------------------------------------------- 1 | using OSDA.Models; 2 | 3 | namespace OSDA.ViewModels 4 | { 5 | internal class WPFUpdateViewModel : MainWindowBase 6 | { 7 | public HelpModel HelpModel { get; set; } 8 | 9 | public WPFUpdateViewModel() 10 | { 11 | HelpModel = new HelpModel(); 12 | HelpModel.HelpDataContext(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Docs/README.md: -------------------------------------------------------------------------------- 1 | ## 主题 2 | 3 | 默认主题为 `sphinx_ustack_theme` ,如果计算机没有安装,请执行以下命令安装主题: 4 | 5 | ``` 6 | pip install sphinx_ustack_theme 7 | ``` 8 | 9 | ## 文档生成 10 | 11 | 项目文档采用 `Sphinx` 生成,`reStructuredText` 书写。 12 | 13 | * For Windows. PowerShell 14 | 15 | ```bash 16 | PS> cd OSDA/Docs 17 | PS> .\make.bat html 18 | ``` 19 | 20 | * For Linux 21 | 22 | ```bash 23 | $ makefile html 24 | ``` 25 | 26 | ## 在线浏览 27 | OSDA 项目文档已生成在线版本,请 [点击此处](https://leven9.gitee.io/osdadoc/) 浏览。 -------------------------------------------------------------------------------- /msvc/VS2019.Framework/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /Docs/source/index.rst: -------------------------------------------------------------------------------- 1 | OSDA Project Documentation 2 | ########################## 3 | 4 | 这个文档是由 OSDA(Git 存储库位于 `Gitee`_ 或者 `Github`_ 中) 项目的 Docs 目录,使用 `Sphinx`_ 自动生成的(主题为 `sphinx_ustack_theme`_ )。 5 | 6 | .. _Gitee : 7 | https://gitee.com/leven9/OSDA/ 8 | 9 | .. _Github : 10 | https://github.com/leven99/OSDA/ 11 | 12 | .. _Sphinx : 13 | http://www.sphinx-doc.org/en/master/ 14 | 15 | .. _sphinx_ustack_theme : 16 | https://github.com/unitedstack/sphinx_rtd_theme 17 | 18 | .. figure:: _images/osda.png 19 | :width: 750px 20 | :align: center 21 | 22 | .. toctree:: 23 | :maxdepth: 1 24 | 25 | getting_started.rst 26 | license.rst 27 | contribute.rst 28 | guides.rst 29 | api.rst -------------------------------------------------------------------------------- /Docs/source/getting_started.rst: -------------------------------------------------------------------------------- 1 | 入门 2 | #### 3 | 4 | OSDA 仅支持 Windows7 Service Pack 1(SP1) 及以上版本(不支持 Windows XP)。Windows7 未安装 SP1 请 `点击这里`_ 据网站页面描述下载安装(Microsoft官方网站)。 5 | 6 | .. _点击这里 : 7 | https://support.microsoft.com/zh-cn/help/15090/windows-7-install-service-pack-1-sp1 8 | 9 | 开发环境 10 | ******** 11 | 12 | 需要 Microsoft .NET Framework 4.6.1。未安装请 `点击此处`_ 根据网站描述下载安装(Microsoft官方网站)。 13 | 14 | .. _点击此处 : 15 | https://dotnet.microsoft.com/download/dotnet-framework/net461 16 | 17 | 开发工具 18 | ********* 19 | 20 | 支持 Visual Studio 2017 和 Visual Studio 2019。 21 | 22 | 打包工具 23 | ********* 24 | 25 | 打包工具使用 `Inno`_。关于 Inno 的详细介绍和使用方法参阅 `Inno官方网站`_。 26 | 27 | .. _Inno : 28 | http://www.jrsoftware.org/isinfo.php 29 | 30 | .. _Inno官方网站 : 31 | http://www.jrsoftware.org/isinfo.php -------------------------------------------------------------------------------- /Docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /ViewModels/MainWindowBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Globalization; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace OSDA.ViewModels 6 | { 7 | internal class MainWindowBase : INotifyPropertyChanged 8 | { 9 | public event PropertyChangedEventHandler PropertyChanged; 10 | 11 | /// 12 | /// 提供区域性信息 13 | /// 14 | internal CultureInfo CultureInfos = new CultureInfo(CultureInfo.CurrentUICulture.Name); 15 | 16 | /// 17 | /// 提供属性更改事件的方法 18 | /// 19 | /// 20 | internal void RaisePropertyChanged([CallerMemberName] string propertyName = null) 21 | { 22 | var handler = PropertyChanged; 23 | 24 | if (handler != null) 25 | { 26 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Views/WPFUpdate.xaml.cs: -------------------------------------------------------------------------------- 1 | using OSDA.ViewModels; 2 | using System.Diagnostics; 3 | using System.Windows; 4 | 5 | namespace OSDA.Views 6 | { 7 | /// 8 | /// WPFUpdate.xaml 的交互逻辑 9 | /// 10 | public partial class WPFUpdate : Window 11 | { 12 | internal WPFUpdateViewModel wPFUpdateViewModel = null; 13 | 14 | public WPFUpdate() 15 | { 16 | InitializeComponent(); 17 | 18 | Height = 180; 19 | Width = Height / 0.625; 20 | 21 | wPFUpdateViewModel = new WPFUpdateViewModel(); 22 | DataContext = wPFUpdateViewModel; 23 | } 24 | 25 | private void UpdateYesButton_Click(object sender, RoutedEventArgs e) 26 | { 27 | Process.Start("https://leven9.gitee.io/osdaweb/download.html"); 28 | 29 | Close(); 30 | } 31 | 32 | private void UpdateNoButton_Click(object sender, RoutedEventArgs e) 33 | { 34 | Close(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## 如何贡献 2 | 3 | 非常感谢您阅读这篇文章,这个项目需要多的志愿开发者帮助,使这个项目(软件)更加运行稳定、流畅和功能完善。 4 | 5 | ### 创建议题 6 | 7 | 在向项目创建一个 `Issue` 时,请确保包含**标题和清晰的描述**。如果有需要,请提供尽可能多的相关信息,以及代码示例或可执行测试用例,以展示未发生的预期行为。 8 | 9 | ### 提交更改 10 | 11 | 在向项目发起一个 `Pull Request` 时,请您清楚的列出您完成的具体内容(关于 `Pull Request`的更多信息请 [点击此处](https://help.github.com/cn/articles/proposing-changes-to-your-work-with-pull-requests))。 12 | 13 | 请始终为您的 `Commit` 写一条清晰的日志信息。单行的日志信息适用于小的更改。但更大的更改应如下所示: 14 | 15 | ```bash 16 | $ git commit -a -s -m "A brief summary of the commit 17 | > 18 | > A paragraph describing what changed and its impact." 19 | ``` 20 | 21 | 或(建议使用 `-S` 对您的 `commit` 进行 `GPG` 签名) 22 | 23 | ```bash 24 | $ git commit -a -S -m "A brief summary of the commit 25 | > 26 | > A paragraph describing what changed and its impact." 27 | ``` 28 | 29 | 对于 `A brief summary of the commit` 请遵守针对互联网公民的简单提交约定(参考:[commitizen](https://github.com/commitizen/cz-cli))。 30 | 31 | ### 编码惯例 32 | 33 | * 所有的条件代码都需要 `{}`,且 `{` 是另起一行,而不是跟随在语句后面 34 | * 所有的视图(View)使用 `xaml` 35 | * 尽可能的避免在视图(View)中包含逻辑代码 36 | 37 | ♥♥♥ 非常感谢您对 OSDA 的贡献 ♥♥♥ -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace OSDA.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Docs/source/contribute.rst: -------------------------------------------------------------------------------- 1 | 贡献 2 | #### 3 | 4 | 创建议题 5 | ******** 6 | 7 | 在向项目创建一个 Issue 时,请确保包含标题和清晰的描述。如果有需要,请提供尽可能多的相关信息,以及代码示例或可执行测试用例,以展示未发生的预期行为。 8 | 9 | 提交更改 10 | ******** 11 | 12 | 在向项目发起一个 Pull Request 时,请您清楚的列出您完成的具体内容(关于 Pull Request的更多信息请 `点击此处`_)。 13 | 14 | .. _点击此处 : 15 | https://help.github.com/cn/articles/proposing-changes-to-your-work-with-pull-requests 16 | 17 | 请始终为您的 Commit 写一条清晰的日志信息。单行的日志信息适用于小的更改。但更大的更改应如下所示: 18 | 19 | .. code-block:: Bash 20 | 21 | $ git commit -a -s -m "A brief summary of the commit 22 | > 23 | > A paragraph describing what changed and its impact." 24 | 25 | 或(建议使用 -S 选项对您的 commit 进行 GPG 签名) 26 | 27 | .. code-block:: Bash 28 | 29 | $ git commit -a -S -m "A brief summary of the commit 30 | > 31 | > A paragraph describing what changed and its impact." 32 | 33 | 对于 A brief summary of the commit 请遵守针对互联网公民的简单提交约定(参考:`commitizen`_)。 34 | 35 | .. _commitizen : 36 | https://github.com/commitizen/cz-cli 37 | 38 | 编码管理 39 | ******** 40 | 41 | - 所有的条件代码都需要 {},且 { 是另起一行,而不是跟随在语句后面 42 | - 所有的视图(View)使用 xaml 43 | - 尽可能的避免在视图(View)中包含逻辑代码 -------------------------------------------------------------------------------- /Docs/source/api.rst: -------------------------------------------------------------------------------- 1 | API参考 2 | ######## 3 | 4 | ITextBoxAppend 5 | *************** 6 | 7 | .. attribute:: void Delete() 8 | 9 | 移除所有字符 10 | 11 | .. attribute:: void Delete(int startIndex, int length) 12 | 13 | 从 startIndex 开始移除 length 个字符 14 | 15 | .. attribute:: void Append(string value) 16 | 17 | 追加字符串 value 18 | 19 | .. attribute:: void Append(string value, int index) 20 | 21 | 将字符串 value 插入到 index 位置 22 | 23 | .. attribute:: string GetCurrentValue() 24 | 25 | 获取当前值 26 | 27 | INotifyPropertyChanged 28 | *********************** 29 | 30 | .. attribute:: public void RaisePropertyChanged([CallerMemberName] string propertyName = "") 31 | 32 | 提示属性已经更改 33 | 34 | .. code-block:: C# 35 | 36 | public ITextBoxAppend _RecvData; 37 | public ITextBoxAppend RecvData 38 | { 39 | get 40 | { 41 | return _RecvData; 42 | } 43 | set 44 | { 45 | if (_RecvData != value) 46 | { 47 | _RecvData = value; 48 | RaisePropertyChanged(nameof(RecvData)); 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Cao Liwen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // 有关程序集的一般信息由以下 8 | // 控制。更改这些特性值可修改 9 | // 与程序集关联的信息。 10 | [assembly: AssemblyTitle("OSDA")] 11 | [assembly: AssemblyDescription("The Open Source Serial Port Debug Assistant")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("OSDA")] 15 | [assembly: AssemblyCopyright("Copyright (C) 2019 Cao Liwen")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // 将 ComVisible 设置为 false 会使此程序集中的类型 20 | // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 21 | // 请将此类型的 ComVisible 特性设置为 true。 22 | [assembly: ComVisible(false)] 23 | 24 | // 若要开始生成可本地化的应用程序,请设置 25 | // .csproj 文件中的 CultureYouAreCodingWith 26 | // 例如,如果您在源文件中使用的是美国英语, 27 | // 使用的是美国英语,请将 设置为 en-US。 然后取消 28 | // 对以下 NeutralResourceLanguage 特性的注释。 更新 29 | // 以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | [assembly: ThemeInfo( 34 | // 主题特定资源词典所处位置(未在页面中找到资源时使用,或应用程序资源字典中找到时使用) 35 | ResourceDictionaryLocation.None, 36 | // 常规资源词典所处位置(未在页面中找到资源时使用,或应用程序或任何主题专用资源字典中找到时使用) 37 | ResourceDictionaryLocation.SourceAssembly 38 | )] 39 | 40 | 41 | // 程序集的版本信息由下列四个值组成: 42 | // 主版本 43 | // 次版本 44 | // 生成号 45 | // 修订号 46 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号方法是按如下所示使用“*”: : 47 | // [assembly: AssemblyVersion("1.0.*")] 48 | [assembly: AssemblyVersion("3.5.0.29")] 49 | [assembly: AssemblyFileVersion("3.5.0.29")] 50 | [assembly: NeutralResourcesLanguage("zh-Hans")] 51 | -------------------------------------------------------------------------------- /msvc/OSDA2017.Framework.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.572 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ODSA", "VS2017.Framework\ODSA.csproj", "{71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|x64.ActiveCfg = Debug|x64 21 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|x64.Build.0 = Debug|x64 22 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|x86.ActiveCfg = Debug|x86 23 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Debug|x86.Build.0 = Debug|x86 24 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|x64.ActiveCfg = Release|x64 27 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|x64.Build.0 = Release|x64 28 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|x86.ActiveCfg = Release|x86 29 | {71C6AC13-4E18-44E7-AFBC-97BED2BDAB7E}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {BD1BD510-5EED-4292-9402-2FD84F6B951D} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /msvc/OSDA2019.Core.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29403.142 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSDA", "VS2019.Core\OSDA.csproj", "{4626E3E4-8C98-4840-8656-F445C87168BD}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x64.ActiveCfg = Debug|x64 21 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x64.Build.0 = Debug|x64 22 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x86.ActiveCfg = Debug|x86 23 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x86.Build.0 = Debug|x86 24 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x64.ActiveCfg = Release|x64 27 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x64.Build.0 = Release|x64 28 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x86.ActiveCfg = Release|x86 29 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {F95CD414-EC14-4BF2-9C29-8765A6B1424A} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /msvc/OSDA2019.Framework.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29215.179 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSDA", "VS2019.Framework\OSDA.csproj", "{4626E3E4-8C98-4840-8656-F445C87168BD}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x64.ActiveCfg = Debug|x64 21 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x64.Build.0 = Debug|x64 22 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x86.ActiveCfg = Debug|x86 23 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Debug|x86.Build.0 = Debug|x86 24 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x64.ActiveCfg = Release|x64 27 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x64.Build.0 = Release|x64 28 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x86.ActiveCfg = Release|x86 29 | {4626E3E4-8C98-4840-8656-F445C87168BD}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {47B04B72-685D-44E0-9C03-677ED03900FA} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## OSDA - The Open Serial Debug Assistant 2 | 3 |

4 | 5 | 6 | 7 |

8 | 9 | ![OSDA](Docs/source/_images/osda.png) 10 | 11 | ## 架构 12 | 13 | 软件支持 WPF [Microsoft .NET Framework 4.6.1](https://dotnet.microsoft.com/download/dotnet-framework/net461) 和 WPF [Microsoft .NET Core 3.1]( https://dotnet.microsoft.com/download/dotnet-core/3.1 ) 两种框架,使用 MVVM 模型开发。 14 | 15 | ![Framework](Docs/source/_images/framework.png) 16 | 17 | ## 功能 18 | 19 | - [x] 基础功能(打开、关闭、接收、发送、清接收区、清发送区和清空计数) 20 | - [x] 十六进制(HEX)接收,十六进制(HEX)发送 21 | - [x] 自动发送 22 | - [x] 保存接收数据(可自定义保存位置) 23 | - [x] 发送文件 24 | - [x] 编码方式(ASCII,UTF-8,UTF-16,UTF-32) 25 | - [x] 流控制(握手协议、控制协议) 26 | - [x] 暂停接收 27 | - [x] 发送新行(三种换行符) 28 | - [x] 信号控制(RTS,STR) 29 | - [x] 信号检测(DCD,CTS,DSR) 30 | - [x] 在线更新 31 | - [x] 精简视图(只保留接收区和发送区) 32 | - [ ] 全球化和本地化 33 | 34 | #### 串口属性 35 | 36 | * 串行端口传输前后的默认编码方式为 UTF-8 37 | * 串行端口输入缓冲区大小配置为 2MB 38 | * 串行端口输出缓冲区大小配置为 1MB 39 | * 串行端口默认流控制为 None(无控制流) 40 | * 串行端口信号控制 Rts 和 Dtr 默认均未启用 41 | 42 | ## 安装 43 | 44 | #### 先决条件 45 | 46 | 1. 仅支持 `Windows7 Service Pack 1(SP1)` 及以上版本(不支持 `Windows XP`)。`Windows7` 未安装 `SP1` 请 [点击此处](https://support.microsoft.com/zh-cn/help/15090/windows-7-install-service-pack-1-sp1) 根据网站页面描述下载安装(Microsoft官方网站)。 47 | 48 | 2. 已安装 `Microsoft .NET Framework 4.6.1` 。未安装请 [点击此处](https://dotnet.microsoft.com/download/dotnet-framework/net461) 根据网站描述下载安装(Microsoft官方网站)。 49 | 50 | #### For Windows 51 | 52 | 下载最新的 [OSDA 安装程序](https://leven9.gitee.io/osdaweb/download.html)。可以选择从 `Gitee` 或 `Github` 站点下载。 53 | 54 | ## 编译 55 | 56 | #### For Windows 57 | 58 | - [x] VS2017(仅支持 .Framework 框架) 59 | - [x] VS2019(支持 .Framework 和 .Core 两种框架) 60 | 61 | ```bash 62 | $ git clone https://gitee.com/leven9/OSDA.git 63 | $ cd OSDA/msvc 64 | ``` 65 | * 对于 VS2017 ,双击 `OSDA2017.Framework.sln` 66 | * 对于 VS2019 ` .Framework` 框架,双击 `OSDA2019.Framework.sln` 67 | * 对于 VS2019 `.Core` 框架,双击 `OSDA2019.Core.sln` 68 | 69 | ## 贡献 70 | 71 | 请参阅项目的贡献者指南(贡献者指南可以在 [GitHub](https://github.com/leven99/OSDA/blob/master/CONTRIBUTING.md) 或 [Gitee](https://gitee.com/leven9/OSDA/blob/master/CONTRIBUTING.md) 中找到)。 72 | 73 | ## License 74 | 75 | 软件采用 MIT License 授权(授权许可证可以在 [Github](https://github.com/leven99/OSDA) 或 [Gitee](https://gitee.com/leven9/OSDA) 中找到)。 -------------------------------------------------------------------------------- /Views/WPFUpdate.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 41 | 114 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 134 | 135 | 141 | 142 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 168 | 173 | 174 | 175 | 176 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 193 |