175210课设个人报告

一、我的贡献

  • Ruby 实现 ASN.1 编解码
  • 使用 QT5 编写软件界面
  • 编译,打包,测试

二、列出设计中遇到的问题及解决方法

2.1 树形结构 QTreeWidget 如何存储数据

查阅资料,使用 setData(col, row, data) 函数存储数据,使用 data(col, row) 读取数据

2.2 渲染树形结构,需要将子节点插入到父节点下,如何找到父节点?

asn1_dump_parse 函数解析结果有 d: 一项,表示此节点在树中的深度。使用一个哈希表 HashMap<int, QTreeWigetItem*>,产生一个新节点就将其 深度指向其的指针 插入哈希表中,同时读取其 深度减一 所对应的值,这就是指向其父节点的指针

三、列出调试过程中遇到的主要问题

3.1 数据类型中存在空格( 如 BIT STRING )时,解析出的结果不对

查看代码,发现正则表达式(数据类型部分)未匹配空格,添加 "//s"

3.2 软件 linux 下打包出现困难

  • 使用 linuxdeployqt 打包程序( github 搜索 )

  • 在启动脚本中添加

    export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
    export QT_PLUGIN_PATH=/app/plugins:$QT_PLUGIN_PATH
    export QML2_IMPORT_PATH=/app/qml:$QML2_IMPORT_PATH
    

    把软件的依赖库添加到系统路径中,成功启动

四、设计体会及收获

  • 学会了如何在 linux 环境下打包 QT,以前只会 windows 打包
  • 学习了 ASN.1 标准,对证书结构有了进一步了解

五、参考资料

posted @ 2020-05-04 19:03  175210闵天  阅读(113)  评论(0编辑  收藏  举报