个人介绍
我是程序员客栈的【一席山水梦】,一名【嵌入式软件工程师】; 我毕业于【青岛科技大学】,担任过【某电力科技公司】的【嵌入式软件工程师】和相关电力产品的产品经理; 负责过【电力集中器】,【电力载波通信】,【电力融合终端】的开发; 熟练使用【C++】,【Linux多线程编程】,【MQTT通信】,【电力中低压协议】; 如果我能帮上您的忙,请点击“立即预约”或“发布需求”!
工作经历
2011-09-01 -至今电力公司嵌入式软件工程师
具备在Linux环境下进行软件开发的能力,拥有扎实的C/C++编程基础,尤其擅长C++11,并熟练运用CMake、GCC、Makefile等工具。在软件APP化和模块化开发方面拥有多年的技术积累。熟练掌握Linux下的多线程编程技术,包括线程同步、进程间通信等,同时了解select、epoll、线程池、Socket通信等知识。 能够承接各类软件产品开发,涵盖数据库(如sqlite3/mysql)、多串口管理、蓝牙通信、CAN口通信、2.4G无线通信、MQTT通信、Tcp/IP、UDP、GIPO控制、spdlog/zlog日志封装、交流采样、以及104/376.2/698.45通信等领域。
教育经历
2002-09-01 - 2006-06-01青岛科技大学测控技术与仪器本科
技能
产品可以微服务的形式运行于容器中,作为连接应用层和数据库层的桥梁。它通过外部接口协议与应用层实现交互,提供数据存取、数据压缩、数据深度维护、负载均衡、透明化数据库操作、操作日志保存等功能。 产品可分为数据库通信模块、连接池、协议栈、负载均衡模块、日志模块、数据库处理模块、配置权限模块、监控模块等。 通信模块:实现tcp\ip、udp、MQTT等通信方式,便于应用层使用。 连接池:负责管理数据库的连接,实现数据库的服用和释放,降低创建和关闭连接的开销。 协议栈:负责实现应用层协议的解析,适配各种所需要的协议。 负载均衡模块:负责接口负载的均衡,保持高可用性和可靠性。 日志模块:负责各种运行数据和错误的记录,提供事后的分析数据及数据库恢复。 数据库处理模块:提供底层数据库的处理接口,目前可支持sqlite3。 配置权限模块:可灵活配置数据读写的权限,保证数据的安全性;支持根据需要设置数据库深度等参数。 监控模块:监控运行状态信息,如连接数、读写次数、执行效率、数据库文件大小等,同时可提供超越阈值的报警信息,可提供不同的接口供外部使用。
多串口管理单元实现了系统串口、CAN口的资源共享,为物联网终端内其它微应用提供串口、CAN口资源共享使用的解决方案,避免了多个微应用应用同时访问同一个设备节点导致的资源冲突问题。 多串口管理单元作为微应用与物理串口、CAN口设备交互的桥梁,通过OS HAL调用实际 物理设备,负责将设备与微应用交互的消息进行处理,为微应用数据通信提供管理服务。 产品分为通信模块、端口管理模块、配置文件管理模块、日志管理模块。 通信模块:与微应用之间通过MQTT通信方式实现数据交互。 端口管理模块:对串口、CAN口等硬件进行集中管理,设定不同工作模式。 日志管理模块: 负责各种运行数据和错误的记录,提供事后的分析数据及数据库恢复。 配置管理模块:实现程序运行相关数据的读取、更新、回写。
本产品分为远程控制单元和任务调度单元,在物联网化终端内以微服务的形式运行于容器中,可由云平台远程操作来控制接入物联网终端的端设备,同时采集传感器各种状态量上报给云平台。 远程控制单元是命令和任务的下发者,任务调度单元是执行者,命令下发直接透传给任务调度单元,任务调度单元负责处理执行并应答,任务调度单元根据任务进行传感器数据采集,并将采集到的数据存入数据管理单元,远程控制单元定期从数据管理单元进行数据召测并上传至云平台。 产品可分为通信模块、协议栈、日志模块、配置权限模块、自动控制、数据采集模块等。 通信模块:实现tcp\ip、udp、MQTT等通信方式,进行任务、命令下发和采集数据存储和召测。 协议栈:负责实现应用层协议的解析,适配传感器的相关协议。 日志模块:负责各种运行数据和错误的记录,提供事后的分析数据及数据库恢复。 配置权限模块:可灵活配置各端设备的控制权限,保证安全性;支持根据需要配置各种报警阈值及传感器设备信息上报云平台。 自动控制模块:可根据预先设定的规则,按照规则来处理预设值,包括报警处理等。 数据采集模块:任务调度单元按照采集任务采集各传感器等端设备的状态信息,存入数据管理单元。远程控制单元定期召测传感器数据。