project joee 插件开发文档
# 概述
为了增加程序的可扩展性,在主程序中添加了插件框架,以保证能在避免最大限度修改主体模块的基础上,添加新的功能和代码。
实现插件模块需要定义一个公共接口 PluginInterface,主程序通过这个接口来实现对插件具体功能的调用。插件模块需要在自行实现接口,并且传入所需要的常量值。
插件会在窗体初始化过程中被加载到进程空间中,并调用 Init (),在主窗体控件完成初始化和加载后调用 OnLoad (),之后框架会判断该插件是否具为周期执行,如果是则为其创建一个时钟并绑定周期事件为 RunLoop ()。主程序执行过程中会根据当前执行位置调用插件中满足当前 flag 的函数,此部分待后续补充。
具体实现流程如图:
# 插件接口的实现方式
接口定义如下:
12345678910111213141516171819202122232425262728293031323334//以下为接口定义//功能需要在插件中进行实现public interface IPlugin{ //插件名 string Name { get; } //插件执 ...
project joee 开发日志 10.12
4d8f51835c8fbe51487a5ea4612bfd9d43da46106b6a7e43f4bb8a28590d85c484930d8a1cc513ece647554dc994c06bf9c153d37bbd4c199d813f17a3deefd31b646b2a591b466b6ad149ff8e5923b863f198d985d1c3ec126fb2205e294d12eeeedf1a74824a5a4bf1f3ff69bbce7eb445c056e02dcd06d6a489bb02e212f51305a596573bd33538178c9c31920988361044fb011b7d76c469f2e9ab9c597eaca42c1db04a2c63535ea93b34d1299ea60ed3376d80c31881cf1276ba6dd750522f95b9b7284cc48c45c138d6b225454000a15f9697e61c60784050ac794b6feb00b32bae29cbaa0efd8f8acf402cafff9d0608b41215046 ...
高级软件体系结构知识点
# 第一章
# 构件
一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和实现代码的复合体。
有的可以独立工作,有的需要与其他配合工作;使用和开发生产无关,只要按照标准来生产;
# 软件重用
是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。
可以分为三个层次:
代码重用、设计结果重用、分析结果重用
可重用构件
可重用构件表示在软件重用过程中,可重用的软件构件元素。
相对于普通的软件产品,对可重用构件的特殊要求:
可重用构件应该具有功能上的独立性与完整性;有较高的通用性;较高的灵活;严格的质量保证;较高的标准化程;
基于构件的软件开发
优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用。
困难和挑战:
在同一系统中采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻问题。
采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场的竞争力;
第 ...
设计模式
# 概述
设计模式,即 Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
设计模式这个术语是上个世纪 90 年代由 Erich Gamma、Richard Helm、Raplh Johnson 和 Jonhn Vlissides 四个人总结提炼出来的,并且写了一本 Design Patterns 的书。
他们所提出的设计模式主要是基于以下的面向对象设计原则:
对接口编程而不是对实现编程。
优先使用对象组合而不是继承。
...
project joee 开发日志 10.07 (及项目工程目录解释)
4d8f51835c8fbe51487a5ea4612bfd9dc8a2e51d9da2e0d9c473c89cf2689108d0e296f09250cd83b2bacf8780416afd608bc4b3c7d0e427d5e8f414ebc20f354a7d481b765bd5ec7e07abf5e4e2cbbc2b62e7223c857ad8c123b86466e41541d247aa08e76ec1c1c08b3bee58c09da4687d06c32b079ce5f61b0a69b5ed9e2beb9fe37bca14a47636703fd5e092fc0f7160d6eec88e2a436e1b10525996355af84c2070b3b1513d7a41b69e442b931882a7f6cbbfe1644b246fb1ddb2245e5f44c16e6dbf4c4c2dabe5d343ddc98eb5c8ffba2289ee324e879d634edaab3cfd85710480b13b3b828a81f0c777adb73e3dcb735ef3c3be2b1 ...
0. Dropout: A Simple Way to Prevent Neural Networks from Overfitting
Abstract 摘要部分
提出问题
Deep neural nets with a large number of parameters are very powerful machine learning systems. However, overfitting is a serious problem in such networks. Large networks are also slow to use, making it difficult to deal with overfitting by combining the predictions of many different large neural nets at test time.
拥有大量参数的深度神经网络是很强大机器学习系统。然而,神经网络的过拟合是一个严峻的问题。大型网络的使用速度也很慢,这使得在测试时结合许多不同的大型神经网络的预测来处理过拟合问题变得困难。
引出解决方法
Dropout is a technique for addressing this problem.
Dr ...
Shoka主题的markdown相关语法
# 标题语法
使用# (#加空格)来标识标题,多个# 标识次级标题
12# 一级标题
# 一级标题
12## 二级标题
# 二级标题
12###### 多级标题
# 多级标题
# 段落语法
markdown 使用空白行将一行或多行文本进行分隔
123I really like using Markdown.I think I'll use it to format all of my documents from now on.
I really like using Markdown.
I think I'll use it to format all of my documents from now on.
# 换行语法
markdown 支持使用 HTML 的 <br> 标签进行换行
1This is the first line.<br>And this is the second line.
This is the first line.And this is the second line.
# 强调语法
# 粗体
1**这是粗体**
...
Git远程仓库的使用
# 远程仓库的账号绑定
1234567891011#进入.ssh目录cd ~/.ssh#创建密钥对ssh-keygen -t ras -C "[email protected]"#example#创建github的ras公钥ssh-keygen -t rsa -C "[email protected]" -f "github_id_rsa"#创建gitee的ras公钥ssh-keygen -t rsa -C "[email protected]" -f "gitee_id_rsa"
将在~/.ssh 里生成对应的.pub 文件里的内容复制到个人 ssh 公钥中即可
测试是否成功
12ssh -T [email protected]#ssh -T [email protected]
首次连接会询问你是否要信任该主机,同意即可
1234567The authenticity of host 'gitee.com (212.64.63.215)' can't ...
project joee 开发日志 09.25
# project joee 开发日志 09.25
# 需求
将原本采集卡连接单个摄像头的方案修改为:采集卡连接两个摄像头,并且将两个摄像头采集到的图像信息合并成一张图像。
# -part1 - 需求分析
# 1. 驱动调用
首先要修改采集卡调用部分的代码,使得采集卡 Devices::Grabber 部分能够接收和区分不同摄像头的句柄,并且调用相关 API 时加以区分这部分应该不难实现。
# 2. 回调处理
其次当采集卡产生回调时,应根据不同摄像头相同序号的帧进行帧同步,标识出两个相同时刻的帧,问题在于,两个摄像头产生的缓冲区图像能否保证是在同一时刻产生的,以及采集卡缓冲区应该设置为多大。
查阅开发手册:
# 2.1. 图像缓冲区的三种状态:
Empty 空状态,意味着当前缓冲区没有相机采集到的图像数据
Full 满状态,意味着当前缓冲区已经被相机采集到的图像数据填满
Transfer 传输状态,意味着相机正在向该缓冲区内传输数据
用户可以通过 IKapGetBufferStatus 来获取指定传输缓冲区的 ...
加密测试
bd25ed9264b080267271e137e33d0ce128daa71effe10c2bafe1eca5ff5e40d0394c795ac8db195bdaab2af1d03999de59bf4b55ee5ec3e92ea2f4f24e17a67f
您好, 这里需要密码.