2018-01月

上月 下月

2018-01月上月 下月 2018-01-06一、mockcpp-2.6.tar.gz 的安装,以及问题解决二、shttpd 研究1、拿来主义,选择自己的端口号2、研究 example.c 里面的内容4、基于这个方法实现登录界面的想法2018-01-13一、继续 shttpd 的研究二、git commit 默认模板设置1、git commit 时,处于 vim 编辑界面时, ctrl + z可以让 vim 中断退出,从而放弃本次提交。普通的 vim 编辑时,也可以用 ctrl + z 快速退出2、设置 git commit默认模板2018-01-14[16:05]发现一个人家写好的工程dos2unix[22:12]发现有好多的 linux 发行版本[22:13] 安装 CentOS7 网络版CentOS-7-x86_64-NetInstall-1708.iso2018-01-16[6:02]一大清早,弄好个 cppunitlite,及时上传github2018-01-17[21:13]终于将 cppunitlite弄好,达到我心中的目标[21:41] linux 下 ./bash_profile的一些配置[21:50]自己整理一条命令工具,用于将C代码的 tab转化成四个空格[21:53]查看 git每次的入库详情[21:57]Makefile 覆盖默认值[22:35]本该研究一下 linux下的串口通信。无奈时间太晚,只得准备睡觉2018-01-19[4:45]_libmodbus-0.0.1.tar.gz 来自http://pes.free.fr,调试成功[6:11]尝试了一下libmodbus-3.0.6.tar.gz,效果更好,功能更强大。但是也更复杂2018-01-19[20:18]在公司尝试使用 libmodbus-0.0.1,结果失败,异常退出,由于使用 -fpic 编译的 so 文件,不知如何跟代码,被迫中止[20:21]注册一个新的 svn 代码托管平台[21:34] 试用成功[21:36] linux 自带抓包工具 tcpdump研究2018-01-20[7:20]一大早把 win7 网页版本串口调试工具弄好[9:01] win7 开启 administrator 的方法,以管理员权限运行[10:30] svn 安装2017-08笔记整理2017-08-07lcov 的使用方法2017-08-08linux下如何远程 win7 桌面linux 下切换目录(递归)的所有者linux 下用户 astyle 对代码进行格式化。删除中间文件研究 linux 下 vim 如何达到 source insight 一样的效果2017-08-09一条简单的 linux find 命令2018-01-23[5:12]MinGW图形界面编译工具,编译时报错[5:15] Makefile风格再学习[6:14] 项目编译中遇到奇怪问题,gdb 无法跟踪代码,问题解决2018-01-24[5:56] svn-server 安装配置,及使用方法2018-01-27[8:03]准备将日记改为以主题目的方式记录[11:03]得到数据分析工具KST2018-01-30[5:48]将串口抓包工具整理完毕[5:49]将之前做的secureCRT抓包工具做个整理上月 下月

2018-01-06

一、mockcpp-2.6.tar.gz 的安装,以及问题解决

 

 

二、shttpd 研究

1、拿来主义,选择自己的端口号

 

 

2、研究 example.c 里面的内容

 

这两行表示注册自己的处理函数,即输入http://192.168.1.34:8888/abc.html 或者http://192.168.1.34:8888 都会执行 show_index 函数

 

表示 static void show_index(struct shttpd_arg *arg) 的入参 shttpd_arg 的数据区 user_data 传的是一个整数。这里应该仅仅是一个说明作用,方便以后数据转化

 

show_index中,接收用户数据的方法

shttpd_modify_int.png

 

同样道理,如果要处理的内容为字符串,则更加简单,只需要注册一个足够大的 buffer,然后就可以随便搞了

如前面传过来的字符串为 function para1,则用法为sscanf(value,"funcion %d", &my_para),成功将 para1 转化为 int 型,并保存在 my_data 里面

 

4、基于这个方法实现登录界面的想法

1、首先用户界面是一个登录框,登录框界面为 C 代码实现
2、用户输入密码后,如果不正确,多追回一个错误提示,继续输入
3、用户如果输入正确,可以给出一个自动跳转链接,3秒后自动登录,可在这段时间打印一个正在登录
5、多个终端,可以通过它的IP来判断登录
6、涉及到加密问题
5、可用命令行访问: curl http://192.168.1.34:8888/page1.html?name1=9907

 

 

2018-01-13

一、继续 shttpd 的研究

将诸小模块都放到 github 上面,日后方便使用,需要时随便拿一个就用

https://user:passwd@github.com/HateIron/IndependentModules.git

 

二、git commit 默认模板设置

1、git commit 时,处于 vim 编辑界面时, ctrl + z可以让 vim 中断退出,从而放弃本次提交。普通的 vim 编辑时,也可以用 ctrl + z 快速退出

2、设置 git commit默认模板

1)、在根目录建立模板文件 xxx_template ,内容如下:

 

2)、设置模板

A、只能设置当前分支提交模板的命令:

 

配置之后,查看 .git/config,发现最后一行,就是刚刚配置的模板名称:

 

 

B、设置全局提交模板的命令

 

3)、设置文本编辑器,命令如下:

 

4)、提交代码

 

5)、最后将代码提交到远程分支

 

 

 

2018-01-14

[16:05]发现一个人家写好的工程dos2unix

1、它支持多种操作系统,支持dos2unix/unix2dos,在 CentOS7上成功编译安装。

 

2、然后在 debian 8 上编译,问题不断

A、编译失败
 
B、解决gettext-0.18.1.1.tar.gz的问题,它的编译同样也不顺利

报错,说找不到 msgfmt,百度之,人家说是因为缺少gettext-0.18.1.1.tar.gz,于是下载一份,14M之多,

configure成功,但是 make 失败:

 

然后找到 stdio.h,并将相应行注释掉

 

将报错的456行注释掉,并注释掉有同样问题的490行:

 

编译一段时间,就会再次报同样的问题,因为生成了新的 stdio.h 文件

改完三个文件,终于编译完成,然后 make install顺利完成、

C、解决掉 gettext之后,继续前进,还是报错:
 

百度之,说执行命令ldconfig就行,于是试了一下

 

然后再次 make就成功了,然后make install,圆满完成:

 

3、在 Cygwin 上安装 dos2unix,很浪费时间

A、首先,它说找不到 -liconv

于是下载了一份iconv,然后编译之,很顺利

configure ; make ; make install

B、然后回到 dos2unix,继续编译,还说找不到 -liconv
 

于是索性把 Makefile 中,相关的-liconv都删除掉

 

然后编译,终于不说 liconv的事了

C、报错说 Cygwin 下没有找到 msgfmt命令
 

百度之,说是要安装gettext,于是在 cygwin 下进入gettext-0.18.1.1目录,光./configure命令,至少执行了40分钟,然后一运行make,就报错了

 
D、最张放弃 Cygwin 下的安装

 

 

[22:12]发现有好多的 linux 发行版本

获取任意 linux 操作系统安装镜像:

 

 

顺手下载了 Debian9、CentOS7网络版、Deepin、linuxmint等等

[22:13] 安装 CentOS7 网络版CentOS-7-x86_64-NetInstall-1708.iso

一、选择安装源

centos7-netinstall_1.png

二、首先要配置好网络

centos7-netinstall_2.png

三、配置好新安装环境的 IP

centos7-netinstall_3.png

四、已经全部填写完毕。但是最下方仍然提示,有两项没有填写完毕。

​ 经验证,http://mirror.centos.org/centos/7/os/x86_64/这个网址是有效的。

​ 据自己猜测,应该是网络连不通外网,虽然局域网能拼通新加的 192.168.1.36.

​ 但是它不一定能上得了外网。于是只能就此打住。

五、网上有人说与时区有关,于是把时区设置正确,然后再把 SECURITY POLICY 随便选上几项,

​ 然后竟然都可选了,于是选择了一个最复杂的开发服务器类型,安装包极多,极大

centos7-netinstall_44.png

六、进入正常安装流程

centos7-netinstall_5.png

七、至此,已经和光盘安装完全一致。可以安心睡觉去了[22:50]

 

2018-01-16

[6:02]一大清早,弄好个 cppunitlite,及时上传github

2018-01-17

[21:13]终于将 cppunitlite弄好,达到我心中的目标

漂亮的 Makefile 如下:

 

用户使用说明书:

 

编译全部独立模块的脚本

 

 

[21:41] linux 下 ./bash_profile的一些配置

 

svn add命令,递归增加目录下所有文件

 

但是仍然报错,原因是这里的部分子目录里面也有.svn目录,冲突了。所以必须先将原来的 .svn先删除干净,然后再添加

 

 

 

[21:50]自己整理一条命令工具,用于将C代码的 tab转化成四个空格

 

 

[21:53]查看 git每次的入库详情

 

 

[21:57]Makefile 覆盖默认值

 

这个 Makefile 中,AGE默认值为 12,执行 make 输出 age=44,但是执行make AGE=35则输出 age=35

 

 

[22:35]本该研究一下 linux下的串口通信。无奈时间太晚,只得准备睡觉

有心人列出的学习资料,抄之;

http://blog.csdn.net/alais/article/details/632567

 

2018-01-19

[4:45]_libmodbus-0.0.1.tar.gz 来自http://pes.free.fr,调试成功

具体的安装过程还挺复杂:

1、解压代码包,将其中的libmodbus.so/master-exemple/slave-exemple先删除,但是却发现master-exemple/slave-exemple根本删除不掉。暂且不管

2、解决编译报错

 

很快解决这是代码级错误,在 mbs.c:329后面加上一句 break;

 

再次编译,仍然报错

 

要求增加-fpic编译选项,以生成位置无关代码,那是真正的共享库,但是实际操作中,发现添加-fpic-fPIC都是可以的,具体细节已经忘记,需要再看《程序员的自我修养》

 

然后继续编译

 

发现编译成功

3、安装程序

 

可以看到已经生成共享库 libmodbus.so,然后安装

 

说无法生成/usr/doc/libmodbus,于是查看 Makefile并修改之,需要先建立/usr/doc/

 

再次安装,终于成功

 

4、弯路

libmodbus库编译安装成功之后,由于看到目录下有之前未删除成功的master-exemple/slave-exemple两个可执行程序,遂将它们当作自己编译出来的可执行文件,运行之

 

两个都报错:wrong ELF class: ELFCLASS64,百度有人这样说:是因为64位机器安装了32位的程序,需要安装一些32位机相关的动态链接库,人家提示安装glibc.i686

 

很快安装好,再次执行

 

问题依旧。于是认真查看 Makefile 中与平台相关的代码,却没有找到,再查看C代码中相关配置,也没有。

于是意识到 master-exemple/slave-exemple 都是以前人家编译好的,我不能使用。

5、成功编译/运行测试用例

打开master-example.c,前两行就提示如何编译

 

于是编译之

 

运行报错,说找不到动态链接库,更新一下动态链接库:

[root@localhost libmodbus-0.0.1]# ldconfig 

再次执行,终于成功,因为虚拟机,无法操作实际串口,总之,程序跑了起来

[root@localhost libmodbus-0.0.1]# ./master-example 
Can't get terminal parameters : Input/output error
send packet length 25
send packet[0] = 1
send packet[1] = 10
send packet[2] = b0
send packet[3] = 0
send packet[4] = 0
send packet[5] = 8
send packet[6] = 10
send packet[7] = 0
send packet[8] = 1
send packet[9] = 0
send packet[10] = 2
send packet[11] = 0
send packet[12] = 3
send packet[13] = 0
send packet[14] = 4
send packet[15] = 0
send packet[16] = 5
send packet[17] = 0
send packet[18] = 5
send packet[19] = 0
send packet[20] = 5
send packet[21] = 0
send packet[22] = 5
send packet[23] = 1
send packet[24] = 32
sleeping 1000 ms
start writing 
write ok
starting receiving data, total length : 8 
receiving byte :0x0 0 (0)
receiving byte :0x0 0 (0)
receiving byte :0x0 0 (0)

最后,./slave-example也是同样操作

[root@localhost libmodbus-0.0.1]# gcc slave-example.c -o slave-example -lmodbus
[root@localhost libmodbus-0.0.1]# ./slave-example 
Can't get terminal parameters : Input/output error

调试好的代码被放在 git 库中:

https://github.com/HateIron/IndependentModules.git

[6:11]尝试了一下libmodbus-3.0.6.tar.gz,效果更好,功能更强大。但是也更复杂

 

2018-01-19

[20:18]在公司尝试使用 libmodbus-0.0.1,结果失败,异常退出,由于使用 -fpic 编译的 so 文件,不知如何跟代码,被迫中止

 

[20:21]注册一个新的 svn 代码托管平台

http://www.52svn.com/index.php/Home/User/index.html

免费用户有20M空间,应该不够。1.5G空间2年才 192 元,不贵。先试用一下,后面有必要得买个服务

首个项目地址:svn://www.52svn.com/HateIron.modules,可以把学习到的小模块都放在这里,以后随时取用

虽然svn每个目录下都有.svn比较讨厌,但是它不用每次都拖家带口把所有项目拉下来。

 

[21:34] 试用成功

只是 svn commit 时,默认的入库模板不知如何配置

通过export SVN_EDITOR=vim命令,配置默认的入库编辑器为 vim.

 

[21:36] linux 自带抓包工具 tcpdump研究

这个网站的内容全盘吸收,感谢!

http://www.itshouce.com.cn/linux/linux-tcpdump.html

这个网站的也全要:

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

将它们都合并到一起放在我的 wiki 上,每日工作日记上:

http://share.wishcell.cn

http://hateiron.coding.me

 

2018-01-20

[7:20]一大早把 win7 网页版本串口调试工具弄好

先上效果图

win7_IE_Javascript_com.png

具体安装过程

1、找到 win7 下的MSComm32.OCX注册教程以及工具文件

​ 首先将系统必要的控件注册到 win7,采用注册工具。 regsvr32 有问题

​ 打开 MSComm32.OCX注册教程以及工具文件\kjplzc\activeX\控件批量注册工具v1.0.exe,然后

active_win7_ocx.png

 

先注册MSComm32.OCX注册教程以及工具文件\kjplzc\activeX 目录,然后注册MSComm32.OCX注册教程以及工具文件\Comm_dll\mscomm32.ocx\mscomm32.ocx目录。

2、注册完毕后

创建一个操作串口的 web 页面 javascript_comm.html

代码如下:

 

[9:01] win7 开启 administrator 的方法,以管理员权限运行

抄自 https://jingyan.baidu.com/article/64d05a0250b265de55f73b0a.html

1、右击命令行图标==》以管理员运行=》然后在命令行输入以下命令:

 

win7_net_user_administrator.png

2、计算机右击==》管理

win7_net_user_administrator2.png

 

[10:30] svn 安装

http://www.yiibai.com/html/svn/2013/0912280.html

 

 

2017-08笔记整理

2017-08-07

lcov 的使用方法

 

 

2017-08-08

linux下如何远程 win7 桌面

1、采用 web-server 操作

2、在 win7 上安装 ssh 工具软件,在 linux 上可以远程到 windows ,运行正常的 bat 命令

linux 下切换目录(递归)的所有者

chown usr:usr ./dir dest_user

 

linux 下用户 astyle 对代码进行格式化。删除中间文件

 

 

研究 linux 下 vim 如何达到 source insight 一样的效果

依赖包:taglist_46.zip,终于达到了预想的效果

https://github.com/HateIron/HateIron/wiki/vim

 

2017-08-09

一条简单的 linux find 命令

find ./ -name *.c | xargs astyle
find ./ -name *.h | xargs asytle
find ./ -name '*.[c|h]' | grep -v './dir'

find 文档https://github.com/HateIron/HateIron/wiki/find

 

2018-01-23

[5:12]MinGW图形界面编译工具,编译时报错

 

解决办法是,进入 project -> Settings ...->Link,然后在Extra linking iptions一栏中加上-lwsock32

[5:15] Makefile风格再学习

文档https://github.com/HateIron/HateIron/wiki/makefile

 

[6:14] 项目编译中遇到奇怪问题,gdb 无法跟踪代码,问题解决

 

查看出问题所在,在gdb下面输入l命令时,报错Line number 2 outof range ./path/code/serial.c has 1 lines,但是输入l 1或者l 2时,有杂乱的输出。

显然是代码换行出了问题

于是用vim 打开,set ff=unix,然后把^M替换成\r

 

只是不知为什么 dos2unix工具为什么在这时候失灵

 

2018-01-24

[5:56] svn-server 安装配置,及使用方法

文档https://github.com/HateIron/HateIron/wiki/svn

svn安装及配置手册

 

2018-01-27

[8:03]准备将日记改为以主题目的方式记录

[11:03]得到数据分析工具KST

 
 

windwos Cygwin 下安装 QT

 

 

2018-01-30

[5:48]将串口抓包工具整理完毕

文档https://github.com/HateIron/HateIron/wiki/serial

[5:49]将之前做的secureCRT抓包工具做个整理

文档https://github.com/HateIron/HateIron/wiki/securtCRT

 

 

上月 下月