程序编程
李迟
李迟,男,已婚,字子徐,一字仲文,别号水田居士,木草山人。有一儿一女,李大锤和李大妞。来自广西岑山溪水之地,家在一垌之尾。毕业于桂林电子科技大学三院1专业。摄影师,金融学者,历史家,科学哲学爱好者,社会问题研究者,持证上岗者(架构师、项目管理师),爱好广泛而无精通者。古文、诗词、文学、小说、武侠、经济、社会等无所不涉。目前主要混迹于显示器、鼠标、键盘之间。于代码及兴趣之事中有所得,与好友谈之一二,足矣。
展开
-
遇到一个gcc编译器版本导致的运行结果有差异的问题
正在进行的项目中有个网络模块,需要在上位机将数据包加密,然后在设备端将数据包解密。两者使用的加密方法是可逆的(大概是异或之类的)。在我测试时,发现设备上解出来的数据不正常,得不到上位机未加密前的数据。因为这个模块在其它项目一直使用,一直OK,现在出问题了,很郁闷。而且该模块嵌入到其它大的功能模块,后来将加密、解密模块独立出来测试。当定位到解密这个点上,都已经过了大半天了。原创 2015-01-17 14:38:31 · 5836 阅读 · 0 评论 -
使用nodejs发送电子邮件
电子邮件在日常工作中有很大用途,凡项目或任务,有邮件来往可避免扯皮背锅。 而在一些自动化的应用场合,也使用得广泛,特别是系统监控方面,如果在资源使用达到警戒线之前自动发邮件通知运维人员,能消除隐藏于前期,而不至于临时临急去做善后方案。 对于多人协合(不管是不是异地)场合,邮件也有用武之地,当有代码或文档更新时,自动发邮件通知项目成员或领导,让各方人员知晓并及时更新(是否更新,取决于人,而非工具)。 说到发邮件,不得不提用程序的方式实现。笔者之前已经开通了腾讯免费企业邮箱,并关联自己的域名,原创 2019-01-15 13:18:44 · 13230 阅读 · 2 评论 -
使用golang发送电子邮件
电子邮件在日常工作中有很大用途,凡项目或任务,有邮件来往可避免扯皮背锅。 而在一些自动化的应用场合,也使用得广泛,特别是系统监控方面,如果在资源使用达到警戒线之前自动发邮件通知运维人员,能消除隐藏于前期,而不至于临时临急去做善后方案。 对于多人协合(不管是不是异地)场合,邮件也有用武之地,当有代码或文档更新时,自动发邮件通知项目成员或领导,让各方人员知晓并及时更新(是否更新,取决于人,而非工具)。原创 2019-01-15 13:16:47 · 18828 阅读 · 4 评论 -
使用python发送电子邮件
电子邮件在日常工作中有很大用途,凡项目或任务,有邮件来往可避免扯皮背锅。 而在一些自动化的应用场合,也使用得广泛,特别是系统监控方面,如果在资源使用达到警戒线之前自动发邮件通知运维人员,能消除隐藏于前期,而不至于临时临急去做善后方案。原创 2019-01-15 13:14:59 · 7159 阅读 · 0 评论 -
GCC编译警告选项的学习
GCC有很多的编译选项,警告选项;指定头文件、库路径;优化选项。本文针整理一下GCC的警告选项,主要依据http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html文档,并加上自己的一点小小经验。原创 2015-12-11 21:59:03 · 12297 阅读 · 0 评论 -
pelco协议及其实现的简单认识
在搞visca的同时顺便也搞了pelco。这里再做个笔记。pelco,中文翻译为“”原创 2014-07-03 13:50:49 · 9450 阅读 · 1 评论 -
再记一下sscanf的一个小问题
正在进行的项目中有个网络传输模块,需要在设备端将上位机发送的XML命令解析出来并转发到其它模块。在我测试一个获取数据的命令时,发现上位机读取到的数据是错误,看XML命令格式,明明是对的,但读到的数据就是不正确,肯定有问题。因为网络传输模块在其它项目一直使用,一直OK,现在出问题了,很郁闷。于是使出printf大法跟踪、终于找到问题原因。原创 2015-01-18 16:23:47 · 1371 阅读 · 0 评论 -
初识PCI
话说,小弟接触计算机(不是“电脑”)也有很多个年头了,很多名词也能朗朗上口,但仅仅限于名词,对其中的原理却没有深入的了解。像MS DOS,其实也是前段时间才真正“安装”了一个用来更新设备的BIOS。而如USB、ISA、PCI这些简称,同样地不了解,以至于不敢与人谈自己是嵌入式工程师。大学时没有计算接口这一类的课程,自己找书看了,但发现里面讲的和平时所学的差别太大,又感觉自己后面不会用到,所以也就囫...原创 2015-02-09 13:01:38 · 2943 阅读 · 0 评论 -
寄存器位域、位操作等示例
#include /*测试结果:struct testregister_value: 0x0000feadenable: 1 type: 6 id: a value: feunion testregister_value: 0x0000feadenable: 0 type: 6 id: a value: fe*//**虚拟的寄存器,各字段:0: enable1~3:原创 2014-06-07 11:02:31 · 3726 阅读 · 0 评论 -
遇到一个日志文件变化带来的文件句柄问题
正在进行的项目中有个系统调试日志存储的功能,需要存储打印信息。测试部反馈了一个bug:调试日志文件有时候不更新。对照代码,项目用的代码和之前项目的代码是一样的。感觉没什么问题,我自己测试没发现有不更新的情况,但测试部已经反馈过几次了,肯定有问题。项目deadline很快到了(按计划,应该是本文发表前4天已经是deadline了),——也正因为如此,开始了本年第一次周末加班。项目经理不放过这个问题,经分析代码,最终算是解决了问题。原创 2015-01-25 17:47:12 · 2083 阅读 · 0 评论 -
参考ethtool写了个Linux设置、获取网卡模式的接口
差不多一个月没写文章了,这期间,主要是搞一些比较复杂的问题,一直被搞,没有搞其它的东西,也就没写出什么东西来。在找问题过程中,上网了解到ethtool这个工具十分强大,以为这个代码很复杂,而恰好领导要求我提供设置网卡信息的接口,于是下了代码,研究了一下,参考了一下,整理了一下。当然文中写的是第一个版本,要是这样的接口提供出去,其它部门的人肯定会有意见的。Linux内核很早就已经加入原创 2015-03-30 19:27:02 · 10505 阅读 · 3 评论 -
gcc较高版本的一些编译警告收集
最近整理了下代码警告问题。这里记录一下。原创 2015-05-06 13:00:29 · 12147 阅读 · 0 评论 -
visca协议及其实现的简单认识
最近在搞visca协议,在这里写写,算是个记录。从题原创 2014-06-30 14:09:01 · 11788 阅读 · 8 评论 -
pelco-d协议数据解析示例
前段时间写了有关pelco协议的一些笔记,后来,有个小模块是接收pelco格式的数据,然后解析出是什么命令,于是又写了个简单的解析函数。这个函数没什么技术含量。主要思路:1、逐字节解析,保证每一字节都处理到;2、找到0xff,此为命令头;3、找到命令结束字符,方法是根据pelco命令组装的算法,——其实就是当某一字节的值是前面几个的校验和就结束,有一点要校验和正确但长度不符合p原创 2014-08-14 21:57:41 · 5908 阅读 · 0 评论 -
一个可变参数类型检查的示例
最近在修正代码警告,发现封装的打印语句不会进行参数的类型检查,而用printf却是可以的。于是上网找了下资料,学习了一下。对于函数参数类型的检查,在gcc环境中可以使用__attribute__((format(printf,N,M)))的形式。原创 2015-05-06 13:00:09 · 1807 阅读 · 0 评论 -
用户交互输入--mtd-utils代码一例
用户交互输入示例,来自 typedef int bool;#define true 1#define false 0/** * prompt the user for confirmation */static inline int prompt(const char *msg, int def){ char *line = NULL; size_t l原创 2014-06-03 08:34:22 · 1202 阅读 · 0 评论