onvif学习笔记9:OSD命令学习

几个月前写了篇介绍OSD坐标系统的文章:《onvif学习笔记6:onvif的OSD坐标小记》,但没有涉及接口,因为当时并不懂。后面发现网络上除了ONVIF官网外,基本没有什么资料介绍ONVIF的OSD功能。于是抽空去了解一下,形成此文。本文只对OSD部分字段做解释,详细具体的参考文后给出的官网地址。与OSD有关的命令有:CreateOSD、DeleteOSD、GetOSDs、GetOSD、SetOSD、GetOSDOptions。下面根据实际编程经验使用的顺序逐一介绍。

阅读全文>>

使用STL去除std::vector自定义结构体重复项

最近搞了一个小东西要去除一个vector中重复的项。是这样的:我用组播搜索设备,得到设备IP信息、版本号信息,等,但有时会接收到多个相同IP设备的信息,因此要过滤掉重复的IP。我使用vector存储每台设备信息,包括IP、版本号,因此需要使用结构体。另外,要对这些设备IP进行排序,让其IP顺序排列。

阅读全文>>

ubuntu 14.04系统DHCP服务器搭建

前段时间老大安排我解决网络问题,老大说,硬件部门老大的结论是平台软件有问题,叫我排查。经过几天的换交换机、换网线、换设备的测试,最后硬件部门同事说板子上有个静电阻抗器质量有问题。

阅读全文>>

Linux下coredump调试3:补录

本篇文章记录在coredump调试过程中记录的其它事项。 一般地,调试的方式多种多样,不可能将其一网打尽。就笔者而言,一般喜欢用print大法,分段注解法,版本回退法,等等。实在无招,则用coredump文件调试了。在笔者“众多”经验中,程序挂掉原因多种多样,像内存泄漏造成无内存可用,文件/socket打开未关闭被耗尽。所以编程的规范还是很关键的,这不单单是说编码命名风格,还有整体编程的设计和细心程度,比如指针的判断,数组范围不要越界,自己申请的内存要记得释放,等等。

阅读全文>>

Linux下coredump调试2:实例

前面文章只是给出简单演示,实际的程序运行中会遇到这样或那样的问题。所以,本文结合笔者实际编程经历,给出一些曾经遇到过的实际例子。笔者遇到的大多数程序崩溃原因,基本上都是段错误:非法内存使用,越界。这就要在程序编码中注意代码的质量了。比如使用指针前必须先判断其合法性,释放指针后及时将指针置为NULL,使用数组注意不能超出其范围,等等。

阅读全文>>

Linux下coredump调试1:使用

李迟按:调试是程序员的一项基本能力,经历过大大小小的实战,随着见识的增长,只要用心留意并做总结,相信调试的能力会越来越好。写程序不可能没有bug,只是bug容易不容易被发现,bug的危害大不大。笔者使用coredump调试很多年了,也有部分的工作笔记,无奈事多人懒,一直没有好好总结。直到最近帮同学排查bug时,才真正下定决心写几篇文章。本文为开篇,主要描述coredump作用及配置的一些注意事项,并给出简单示例。

阅读全文>>

onvif学习笔记7:一个C++封装的onvif代码的阅读笔记

在前面的文章《onvif学习笔记4:Windows环境使用gsoap生成onvif框架代码》、《onvif学习笔记5:onvif框架代码初步了解》中,我们了解了如何生成不同的版本的onvif框架代码,同时也看到gSOAP生成的C++版本的代码无论在代码结构还是可扩展性,都比C版本的好很多。笔者无意中接触到一个比较好的onvif工程,本文就使用这个工程代码进行一番粗略的分析,着重介绍其中的服务类的运行。

阅读全文>>