软件开发过程记录

工业打标软件

2020年重点工作是掌握激光打标开源软件,开发现场应用的工业打标软件。项目开发任务包括3部分:

  1. 驻留主机的业务软件。通过企业局域网可以接收企业化验室的产品化学成分数据,通过主机串口接受生产流水线上游衡器称出的产品质量数据,在此业务软件上设置生产班组信息,这些数据是打标基本信息。图形数据+pen激光参数一起发送到控制卡。
  2. 驱动程序。它接收业务软件产生的数据发,并送到控制板。
  3. 选择合适的控制板。控制板上的固件接收数据,并处理数据,然后根据数据和指令控制振镜和激光发生器协同工作,完成打标。

基于机器智能的教辅系统开发

教辅系统主要工作大纲(暂定)

  1. 机器智能原理
  2. 教育理论
  3. 方案
  4. 实现方法与技术

经验总结

  1. VS2017社区版导入开源软件总结

  2. 动态链接库DLL与静态链接库LIB
    库是资源集合,它能够用于开发应用程序。一个库通常由例程、函数、类、值和类型构成。在链接过程(通常由链接器完成),库(libraries)和执行表(executables)彼此引用。根据例程何时被加载到目标应用程序,库文件分为静态库和动态库。相应地,LIB文件是静态链接的库,而DLL文件是动态链接的库。
    什么是DLL?
    动态链接库DLL是一个由微软公司开发的共享库实现。它使用后缀名.dll、.ocx、或者.drv,并且它们被应用在微软视窗和OS/2操作系统中。常规的DLL文件采用后缀.dll。包含ActiveX控件的库采用后缀名.ocx。遗留系统驱动文件采用后缀名.drv。DLL文件格式与视窗可执行文件EXE(Portable Executable files on 32-bit/64-bit Windows, and New Executable on 16-bit Windows)一样。因此,代码、数据和资源的任何组合都能够包含在DLL文件中(就象可执行文件一样)。实事上,具有DLL文件格式的数据文件被称为资源DLLs。图标(icon)库(后缀名.icl)和字体文件(font)库(后缀名.fon和fot)都是资源DLLs的例子。
    被称为节(section)的组件构成了一个DLL,并且每个节都有自己的属性,例如只读/可写和可执行和不可执行。代码节是可执行的,而数据节是不可执行的。代码节是共享的,而数据节是私有的。那就意味着所有的进程使用该DLL是使用相同的代码拷贝,而每个进程都拥有自己的数据拷贝。视窗的主要动态库是 kernel32.dll,它包含有关视窗的基函数(与文件和内存相关的功能)。 组件对象模型COM (Component Object Model)是DLL扩展到面向对象编程OOP(Object Oriented Programming)。传统的DLLs比COM文件更加容易使用。
    什么是LIB?
    LIB文件是静态库(也就是静态链接库)。LIB文件包含了一个有关例程、外部函数和变量的集合。LIB文件在编译时(与运行时对应)被解析生成。代码实际上被拷贝到目标应用程序中。一个编译器,链接器或者绑定器执行这个解析任务并生成一个对象文件和一个可执行文件。这个过程被称为静态构造过程。
    DLL与LIB之间的差异?
    LIB库在编译时被调用,而DLL库仅能够在运行时被调用。LIB文件明显比DLL文件大许多。DLL文件一个常见的问题是版本问题。当DLL代码被改变时,版本问题就了出现:应用程序使用一个DLL错误的版本。对LIB文件来说,版本不是一个问题。根据可重用性原则,当编写一个新版本系统或者全新的应用程序时,DLLs比LIBs好。

  3. MAVEN学习心得
    软件项目管理软件maven于2020年元月15日开始只支持https安全链接共享库了,以前低版本的maven3.0.3修改setting.xml,修改项目pom.xml的http协议为https,但是没有任何响应,返回错误代码501,不能链接到共享库了。后来,在maven官方网站上看到了这样的解释:super pom是任何项目的pom的父文件,它的配置可以被这些项目的pom继承。定位了netbeans内置的maven安装位位置:netbeans/java/maven/lib/maven-model-builder-3.0.5,用7zip打开这个jar包,里面有这样一目录结构:org/apache/maven/model,在这里终于找到这个super pom-4.0.0.xml文件了,打开它后,把相应的http协议改为https。如下所示:


  central
  Central Repository
  https://repo.maven.apache.org/maven2
  default
  
    false
  



  central
  Central Repository
  https://repo.maven.apache.org/maven2
  default
  
    false
  
  
    never
  

最后,成功构建了项目。检查apache-maven-3.6.3的super pom后发现它已经是https协议了。

  1. Visual Studio 2017 community版编译wxWidgets
    从官方网店获取wxWidgets,下载7z或zip文件。文件“wxWidgets根目录/docs/msw/install.txt”是作为参考的编译说明文档。
    添加环境变量WXWIN,值是wxWidgets根目录的路径。虽然不添加变量也可以编译,但很多wxWidgets插件的编译都依赖这个环境变量,因此最好加上。wxWidgets根目录的路径不要含有空格

增加vs2017支持
vs2017影响编译的改动,主要是定义了snprintf,以及编译器版本升级到14。需要对wxWidgets作如下修改,才能使用vs2017进行编译。
在文件%WXWIN%\include\msvc\wx\setup.h,增加版本支持如下:

    #elif _MSC_VER == 1916
        #define wxCOMPILER_PREFIX vc140

在文件%WXWIN%\include\wx\compiler.h,增加版本支持如下:

#elif __VISUALC__ < 2000
    #define __VISUALC14__

在下面三个文件中,找到snprintf的宏定义,注释掉

%WXWIN%\src\tiff\libtiff\tif_config.h
  %WXWIN%\src\tiff\libtiff\tif_config.vc.h
  %WXWIN%\src\zlib\gzguts.h

编译库文件
运行“开始|所有程序|visual studio 2017|VS2017 开发人员命令提示”,切换到%WXWIN%\build\msw。

生成32位静态库DEBUG版
nmake /f makefile.vc
库文件生成在%WXWIN%\lib\vc_lib,文件名含d表示debug版

生成32位静态库RELEASE版
nmake /f makefile.vc BUILD=release
库文件生成在%WXWIN%\lib\vc_lib,文件名不含d与debug版区分

生成32位动态库DEBUG版
nmake /f makefile.vc SHARED=1
库文件生成在%WXWIN%\lib\vc_dll,文件名含d表示debug版

生成32位动态库RELEASE版
nmake /f makefile.vc BUILD=release SHARED=1
库文件生成在%WXWIN%\lib\vc_dll,文件名不含d与debug版区分

运行“开始|所有程序|visual studio 2017|适用于VS2017的x64本机工具命令提示”,切换到%WXWIN%\build\msw。

生成64位静态库DEBUG版
nmake /f makefile.vc TARGET_CPU=X64
库文件生成在%WXWIN%\lib\vc_x64_lib,文件名含d表示debug版

生成64位静态库RELEASE版
nmake /f makefile.vc BUILD=release TARGET_CPU=X64
库文件生成在%WXWIN%\lib\vc_x64_lib,文件名不含d与debug版区分

生成64位动态库DEBUG版
nmake /f makefile.vc SHARED=1 TARGET_CPU=X64
库文件生成在%WXWIN%\lib\vc_x64_dll,文件名含d表示debug版

生成64位动态库RELEASE版
nmake /f makefile.vc BUILD=release SHARED=1 TARGET_CPU=X64
库文件生成在%WXWIN%\lib\vc_x64_dll,文件名不含d与debug版区分

以上vs2017生成wxWidget库文件,参考网文:Visual Studio 2015编译wxWidgets

技术网文链接

  1. 遗传算法、神经网络、模糊控制PID参数
    使用遗传算法整定PID参数
    matlab贝叶斯工具箱安装使用
    BP神经网络+PID控制simulink仿真
    模糊PID算法及其MATLAB仿真1
    模糊PID算法及其MATLAB仿真2
  2. 源代码分析技术与方法
    构建 开源二维码zxing-cpp
    VS2017添加Lib库文件正确的方法
    Visual Studio 2017 第三方依赖设置,附加依赖项和附加库目录
    windows平台下stdio.h的位置
    VS2017添加lib库及其头文件
    VS2017动态链接库(.dll)的生成与使用
    VS2017下的wxWidgets建立一个简单的窗口
    _MSC_VER值对应的Visual Studio版本
    WINAPI是什么?
    ActiveX控件实现
    WinMain
    头文件unistd
    VS2017的C++开发心得(三)VS的常用项目属性介绍
    VS2017的C++开发心得(四)VS的文件夹路径以及项目生成步骤
    VS2017的C++开发心得(六)头文件的路径问题与属性管理器
    VS2017的C++开发心得(七)DLL动态链接——查看依赖的外部模块
    VS2015中无法查找或打开 PDB 文件
    VS2017的一些调试方法技巧
    Windows GetMessage
    Windows PeekMessage
    解决方案:VS2017 无法打开源文件 stdio.h main.h 等头文件
    ModBus-RTU详解
    MySQL
    知识图谱(Knowledge Graph)之综述理解
    SSM框架原理、作用及使用方法
    尚硅谷SSM框架实战,ssm整合教程
    《Relational inductive biases, deep learning, and graph networks》图网络 论文解读
    斑马打印机指令简介
    斑马打印机指令集
    MySQL 输入任何语句都提示
    MySQL命令执行sql文件的两种方法
    Win10 64位 MySQL 5.7.30安装教程
    MySQL 5.7 安装后默认登录密码在哪?

你可能感兴趣的:(maven)