mirror of
https://github.com/Estom/notes.git
synced 2026-04-14 02:10:47 +08:00
无人机界面修改要求
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
# 桌面应用程序开发
|
||||
|
||||
## 技术范式
|
||||
|
||||
> 1. 选择合适的技术范式。√====>electron
|
||||
> 2. 对技术细节进行学习了解√====>javascript,nodejs,electron
|
||||
> 3. 寻找开源的模板代码搭建框架
|
||||
> 4. 根据任务需求进行快速开发
|
||||
|
||||
### C++ QT开发
|
||||
|
||||
### Python PyQT开发
|
||||
卡掉,因为是C项目,用python的qt反而多此一举。
|
||||
### JAVA SWING开发
|
||||
理由同上。可以用C++,与原生的代码结合较好。
|
||||
### nodeJS Electron桌面开发
|
||||
|
||||
easy-window小程序。
|
||||
> 显然我觉得HTML桌面应用程序开发是最简单的,能够实现极其好看的界面。
|
||||
|
||||
## 2 开发步骤
|
||||
### 熟悉工程代码√
|
||||
* 源代码使用代码库:qt,openssl √
|
||||
* 使用qtCreator对代码进行编译调试
|
||||
* 源代码暴露的接口√
|
||||
* cmake编译工具+gcc√
|
||||
### 使用nodejs封装C/C++接口√
|
||||
* 使用napi封装借口√
|
||||
* node-gyp编译测试接口√
|
||||
* cmake-js编译测试√
|
||||
|
||||
### 使用electron呈现界面
|
||||
* 数据渲染模板应用√(template_js,arttemplate,jsrender,juicer选择了第一个数据渲染方式)
|
||||
* 前端页面布局设计√ (选定了库,上传到了gitee,非常好用以后可以借鉴)
|
||||
* 对页面布局进行调整和优化√(主要包括添加图标,修改颜色,添加标题)
|
||||
* electron开发和调试(菜单栏和应用进程)√(使用vscode和webtool工具对electron应用进行了调试)
|
||||
|
||||
### 根据需求规范工程
|
||||
|
||||
* 将工程上传到gitee√
|
||||
* 根据新的需求,修改函数借口。增加返回的message√
|
||||
* 对sm2函数的明明进行规范,test->encrypt√
|
||||
|
||||
|
||||
### 工程部署,使用nodejs封装工具发布。
|
||||
|
||||
* 使用electron-package对工程进行打包√
|
||||
* 使用electron-build或者electron-asar对工程进行发布。创建安装程序。√
|
||||
|
||||
|
||||
## 3 解决的bug问题
|
||||
|
||||
### append之后页面刷新元素消失的问题
|
||||
|
||||
* 因为在button周围由form标签,导致提交后页面刷新,之前的数据消失。
|
||||
|
||||
* [参考文献](https://blog.csdn.net/muyi_amen/article/details/79086281?utm_source=blogxgwz4&utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase)
|
||||
|
||||
### template_js无法加载模板渲染数据的问题
|
||||
|
||||
* 相似的库太多了,导致下载成了template.js和template-js
|
||||
|
||||
### Message传递参数的问题
|
||||
|
||||
* 因为长度并不能自适应,同一个接口函数需要调用两次,第一次获取缓冲区长度,第二次将值复制到缓冲区。
|
||||
* github的issue真的是个解决问题的好地方。segmentfault和stackoverflow也非常好用。
|
||||
169
工作日志/2020年9月9日-无人机+sm2界面.md
Normal file
169
工作日志/2020年9月9日-无人机+sm2界面.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# 桌面应用程序开发
|
||||
|
||||
-----------------------------------------
|
||||
第一阶段技术栈选择
|
||||
|
||||
## 技术范式
|
||||
|
||||
> 1. 选择合适的技术范式。√====>electron
|
||||
> 2. 对技术细节进行学习了解√====>javascript,nodejs,electron
|
||||
> 3. 寻找开源的模板代码搭建框架
|
||||
> 4. 根据任务需求进行快速开发
|
||||
|
||||
### C++ QT开发
|
||||
|
||||
### Python PyQT开发
|
||||
卡掉,因为是C项目,用python的qt反而多此一举。
|
||||
### JAVA SWING开发
|
||||
理由同上。可以用C++,与原生的代码结合较好。
|
||||
### nodeJS Electron桌面开发
|
||||
|
||||
easy-window小程序。
|
||||
> 显然我觉得HTML桌面应用程序开发是最简单的,能够实现极其好看的界面。
|
||||
|
||||
## 2 开发步骤
|
||||
### 熟悉工程代码√
|
||||
* 源代码使用代码库:qt,openssl √
|
||||
* 使用qtCreator对代码进行编译调试
|
||||
* 源代码暴露的接口√
|
||||
* cmake编译工具+gcc√
|
||||
### 使用nodejs封装C/C++接口√
|
||||
* 使用napi封装借口√
|
||||
* node-gyp编译测试接口√
|
||||
* cmake-js编译测试√
|
||||
|
||||
### 使用electron呈现界面
|
||||
* 数据渲染模板应用√(template_js,arttemplate,jsrender,juicer选择了第一个数据渲染方式)
|
||||
* 前端页面布局设计√ (选定了库,上传到了gitee,非常好用以后可以借鉴)
|
||||
* 对页面布局进行调整和优化√(主要包括添加图标,修改颜色,添加标题)
|
||||
* electron开发和调试(菜单栏和应用进程)√(使用vscode和webtool工具对electron应用进行了调试)
|
||||
|
||||
### 根据需求规范工程
|
||||
|
||||
* 将工程上传到gitee√
|
||||
* 根据新的需求,修改函数借口。增加返回的message√
|
||||
* 对sm2函数的明明进行规范,test->encrypt√
|
||||
|
||||
|
||||
### 工程部署,使用nodejs封装工具发布。
|
||||
|
||||
* 使用electron-package对工程进行打包√
|
||||
* 使用electron-build或者electron-asar对工程进行发布。创建安装程序。√
|
||||
|
||||
|
||||
## 3 解决的bug问题
|
||||
|
||||
### append之后页面刷新元素消失的问题
|
||||
|
||||
* 因为在button周围由form标签,导致提交后页面刷新,之前的数据消失。
|
||||
|
||||
* [参考文献](https://blog.csdn.net/muyi_amen/article/details/79086281?utm_source=blogxgwz4&utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase)
|
||||
|
||||
### template_js无法加载模板渲染数据的问题
|
||||
|
||||
* 相似的库太多了,导致下载成了template.js和template-js
|
||||
|
||||
### Message传递参数的问题
|
||||
|
||||
* 因为长度并不能自适应,同一个接口函数需要调用两次,第一次获取缓冲区长度,第二次将值复制到缓冲区。
|
||||
* github的issue真的是个解决问题的好地方。segmentfault和stackoverflow也非常好用。
|
||||
|
||||
|
||||
-----------------------------------------------------
|
||||
第二阶段 接口封装
|
||||
|
||||
## 1 接口封装
|
||||
```c++
|
||||
|
||||
//函数声明
|
||||
//签密函数
|
||||
void signcryption(string plaintext, bool *flag_signcrytion, string *ciphertext,
|
||||
double *time_signcrytion);
|
||||
//解签密函数
|
||||
void unsigncryption(string ciphertext, bool *flag_unsigncrytion, string *plaintext,
|
||||
double *time_unsigncrytion, bool *flag_replay_attack, bool *flag_tamper_attack, string *timestamp);
|
||||
//密文截获函数
|
||||
void intercept_cipher(string ciphertext, bool *flag_intercept, string *intercepted_ciphertext);
|
||||
//密文篡改攻击函数
|
||||
void tamper_attack(string intercepted_ciphertext, bool *flag_do_tamper, string *ciphertext_new);
|
||||
//消息重放攻击函数
|
||||
void replay_attack(string intercepted_ciphertext, bool *flag_do_replay, string *ciphertext);
|
||||
```
|
||||
|
||||
## 2 接口测试
|
||||
* 使用nodejs封装了C++的接口,并使用addon_test对接口进行了测试。
|
||||
|
||||
|
||||
------------------------------------------------------
|
||||
第三阶段 界面优化和文档
|
||||
|
||||
## 1 主要内容
|
||||
|
||||
1. 添加题目√
|
||||
2. 修改成表格显示数据√
|
||||
3. 修改按钮的相对文职√
|
||||
4. 字体的大小和对其√
|
||||
5. 字体、字号√
|
||||
6. 表格的分布与自动换行√
|
||||
7. cmake编译调试√
|
||||
8. 公钥私钥的生成页面√
|
||||
9. 复习bootstrap√
|
||||
10. 修改配色方案√
|
||||
11. 修改背景√
|
||||
12. 色块转换与动态效果,添加动画√
|
||||
13. 图形标注,loading和其他图标√
|
||||
14. 功能实现,逻辑测试√
|
||||
15. 设置透明度√
|
||||
16. 设置美化界面显示的内容(表格和文字)√
|
||||
17. 模态框、警示框,用来显示异常信息√
|
||||
18. 使用collaspe动态显示图标内容×
|
||||
19. 尝试使用jQuery简化js代码√
|
||||
|
||||
## 2 bug调试
|
||||
|
||||
段错误
|
||||
### 可能的原因
|
||||
|
||||
* 未初始化的指针和空指针
|
||||
* 堆栈内存溢出
|
||||
|
||||
### 解决办法
|
||||
* 联调
|
||||
* 堆栈扩充
|
||||
* 其他办法(代码空间释放)
|
||||
|
||||
### 错误分析
|
||||
|
||||
* 结论1:
|
||||
* unsigned调用比出错
|
||||
* 随着调用内容的减少,出错后裔
|
||||
* 由于堆栈溢出内容减少,出错后裔
|
||||
* 结论2:
|
||||
* sign与unsign 具有相似性
|
||||
* sign无论调用多少次都不会出问题
|
||||
* unsgin只要调用1次就一定会报错
|
||||
* 问题一定处在代码内,而不是由于执行次数过多导致内存溢出。unsigned本身存在不贵的可能性
|
||||
* 在unsgin中,存在,在某种特殊条件下,会触发的段错误
|
||||
* 方法:
|
||||
* nodejs的napi接口中出现问题
|
||||
* cmakejs编译选项调整出现问题
|
||||
* unsign函数本身出现问题
|
||||
|
||||
### 最终结果
|
||||
* 使用为自己在nodejs调用接口中,使用了较小的数组,导致数组长度溢出,引发了段错误。
|
||||
* 段错误很难定位,因为它报错的地方和犯错的地方,往往不在同一个地方。
|
||||
* 记住段错误,一定是引用了错误地址的数据造成的
|
||||
* 如在静态数据区写数据
|
||||
* 在不属于自己的内存段写数据。随机指针写数据,空指针写数据,溢出的数组写数据。
|
||||
|
||||
|
||||
-------------------------------------------------------
|
||||
第四阶段 无人机元素和花里胡哨
|
||||
|
||||
## 1 要求
|
||||
|
||||
* 添加无人机元素。背景就改成动态的模拟空间的无人机飞行的网络图
|
||||
* 各个card改成半透明黑色背景,数据使用白色内容进行显示。
|
||||
* 可以动态修改card,collaspe的应用到位。
|
||||
* 添加一个card表示执行过程中的状态转换图。使用js代码修改使其能够动态地添加到状态转换图当中。执行过的步骤,执行中的步骤,未执行的步骤,使用不同的状态标注,像是打卡系统当前的执行流程,或者地铁站的线路点亮过程。
|
||||
* 添加一个card表示无人机当前的飞行状态。胡乱显示就好。主要包括无人机飞行的各个参数,无人机飞行的速度仪表盘,无人机的横向视角和纵向视角。参考下载的地图。
|
||||
Reference in New Issue
Block a user