文章目录
一、我是谁,从事什么职业
- 李天录,四川眉山人,中共党员,现居成都郫都区。
- 从事航电产品研发、报警视频设备及服务器研发。
- 2008年毕业于
成都工业学院
的前身成都电子机械高等专科学校。 - 我的技术相关内容详见我的CSDN博客:https://blog.csdn.net/sbddbfm
二、我的技术能力
2.1 有开源软件深入阅读经验
阅读并使用过uboot,busybox,live555,ffmpeg,skynet,lua,udt等开源项目,例如:
- 参考busybox里的telnet部分,将telnet部分离出来,移植到嵌入式应用程序。在通过私有协议验证后开启自己的telnet功能,用于查看设备状态、故障分析等网络调试。(为了系统安全,自带的telnet是关了的)
- 参考busybox里的devmem命令源码,编写应用程序直接操作ARM寄存器,实现IO口控制、配置usb、wifi的参数等。
- 阅读了lua开源库的table源码,了解它内部实现机制,对它的table部分的hash和数组有非常深入的了解。
- 阅读了skynet的源码,深入了解原理以及使用方法,将它移植到windows下,并加入iocp模型的libuv开源库替代原linux下的epoll。用这个升级后的框架搭建了理想科技和随安保公司的服务器框架,实现公司全国定位报警设备和用户的入接。
2.2 深入研究开源软件中使用到的特性
为了充分发挥出开源软件的性能,在系统架框选型阶段,要对性能指标做评估。我采用的方法是,先阅读预备选型的软件的那部分功能说明,了解它的实现原理,查看博客文章对这部分的评价,以及写测试程序进行验证,必要时阅读关注部分的源码,评估后期系统升级难度。最后综合各方面的因素,才做出最后的系统架构选型。下面简单例举几个我曾经关注过的特性:
- 数据库mysql,数据大了(上亿条记录)查询会慢多少?如何优化,研究索引实现的原理,怎么样才能命中索引,InnoDB和MyISAM区别,是否支持事务,数据库异常关闭数据恢复等方面进行深入了解。
- 选型要考虑是用mysql还是mongodb,还是redis等,比如是否支持持久化,内存占用情况,数据备份,数据库与业务逻辑的实现难度等。
- 数据库的选择还要考虑版权,生态,维护,安装方便性等特性。比如:
SQL server
与mysql
对比,前者有版权而且安装包非常大,并且安装步骤也复杂,而后者开源,可以用于商业用途,并且安装包小巧(200MB左右),安装方便,配置直接写到ini文件中,发布时直接用事先准备好的配置文件。
2.3 丰富的ARM单片机程序开发经验
- 会用arm单片机,设计了基于裸机的简单任务切换及调度框架,应用干光纤自愈环网交换机,现场监视仪的M7(信号处理模块)等设备。
- 移动植ucosii操作系统,了解清楚移植相关的每一行代码,充分了解它的原理,并在测试没问题后,成功应用于ADS-B设备里的ARM处理器。
- 编写了一些常用的支持跨平台库,比如:Base64,AES、MD5、SHA1、CRC32、CRC16等, 这些库已大部分直接用在了ARM-单片机、ARM-linux、PC、IOS、MAC平台。部分源文件的截图如下:
2.4 丰富的FPGA开发经验
- 根据串口时序,编写串口模块库,支持通过参数配置缓冲区大小、波特率,支持全双工收发数据。应用场景举例:FPGA与单片机之间通过并口线(地址线、数据线、读写控制线)对接,所有的串口设备接到FPGA的IO口,单片机像读写外部RAM一样高速的与FPGA的串口模块通信。串口模块具有:读地址、写地址、接收缓冲已接收个数和发送缓存区空闲个数的寄存器。 这样做的好处有:
- 1.信号线无需连接特定引脚 ,只需接任意IO口即可,电路板布线方便,不怕接错线,还可适应后期功能变更,板子还可以做得更小巧。
- 2.串口收发缓存在FPGA里可以按需配置(单片机自带的串口缓冲区一般固定为16字节,如果是51单片机的话只有1字节的缓冲区),这样对音片机实时处理能力的要求就不用太高。
- 3.在FPGA里可以很方便的做到,当缓冲区满了后单片机未读走的状态指示,方便查找问题。
- 编写SMI时序模块、RMII接口,控制以太网PHY芯片(或光纤接口芯片),用于以太网数据的收发。还编写了以太网数据的收发模块的FPGA程序,用于光纤自愈环网网管型交换机,应用于哈大线等高铁通信领域。
- 独创了支持固定长度报文的单时钟CRC算法,又对ADS-B解码算法进行改进,大大提高了解析灵敏度。同样的硬件使用我改时后的算法,作用距离提高1/3,接收报文流量增加一倍,原来的轨迹经常断续,改进后明显连续很多。为此四川信能科技专门给予了5000元的奖励。据悉本ADS-B改进后,与十所、九州等厂家的在一起对比时有明显优势。
2.5 丰富的C/C++程序开发经验
- 会MFC框架编写上位机程序,2008-2011年期间四川信能的所有上位机软件都由我开发,主要有:现场监视仪(用在了全国30多个机场),自动机关监视ADS-B,雷达S模式模拟源等产品的上位机软件。
- 会Linux嵌入式系统设计,在成都理想科技,发开全套视频设备。从ubl到uboot, kernel,文件系统裁剪,busybox,arm芯片程序加密,视频h264处理,声音aac处理,对接报警器,连接视频服务器,视频转rtsp,对接阿里云oss存储等都使用C/C++,在这期间积累了很多宝贵的经验。
- 编写服务器程序,凡是需要性能优化的,都采用编写基于C/C++的底层模块,供应用层调用。比如:电子围栏进出判断,数据加密解密AES,网络通信、局域网搜索,ONVIF搜索,数据组播等。
- 编写基于C/C++多网络通信库、异步域名解析库,支持跨平台,成功用于windows、arm-linux、ios、android平台,用在随安保手机软件、视频设备软件、电脑后台管理软件。
2.6 丰富视频设备开发经验
- 本人主导开发设计了联调报警专用视频摄像头,使用华为海思Hi3518E芯片,在视频设备里将H264、AAC编码成hls所需的ts报文,减少服务器转码的运算量。
- 作为视频项目的负责人,设计基于低时延的hls视频直播方案,采用http 1.1 chunked的流式传输,大大降低视频延时,普通的hls延时10~30秒,我们实现hls延时在普通浏览器上3秒左右。
- 非常熟悉hls协议、ts协议,改进nginx+rtmp模块,编写了hls服务器,深入对接设备的hls转码程序,大大降低服务器的CPU消耗,同时也极大的降低了视频延时,实现了低时延的跨平台的网页视频直播。
- 对接雄迈视频板,在已有的视频板里添加我们的程序,实现对们我们的报警器,实现报警视频联动。视频中转服务器对接,解决部分网络直接用雄迈自带p2p穿网不通的问题。
2.7 丰富的项目开发经验
- 作为随安保定位、报警、视频服务器的负责人,设计开发出随安保服务器,对接全国各地的理想科技和随安保公司的报警设备、定位设备。
- 随安保服务器也给客户定制,给客户搭建了带定制功能的平台主要有:
西科姆定位
,中安维车辆管理平台
,山东烟台汇众一键帮帮我
等平台。
三、我的为人处事观
3.1 以德服人,以才做事
要想受人尊重,重在品德,要想人佩服,需要有才。
3.2 管事理人,制度约束
安排工作或任务,要让人觉得是分工合作,团结共事。而不能让人觉得是谁要管谁。因为不管是谁被管,都会觉得心理不舒服,积极性会受影响。不管人,但也不能放任,因此要用制度约束。
3.3 不可损人,尽力助人
不要在这个人面前,说另外一个人的负面。别人需要帮忙,要主动一点,有可能别人不好意思说。
3.4 少说多做,配合管理
上层领导的决择,不要负面评论,因为自已没在那位置,看到的不全面,很可能理解得片面,要配合管理,但不要盲从。
四、我的成果展示
4.1 专利展示
4.2 产品展示
4.3 服务器客户端展示
- 本人设计服务器的程序框架,编写与框架相关的程序,解决运行时遇到的技术问题。
- 以下是对接服务器的手机端软件、微信、WEB管理平台的部分截图。