Linux IVI软件简介
说明
Linux IVI软件由个人开发,拥有自主知识产权。即可作为量产IVI产品用也可用于linux嵌入式开发项目学习用。
后续会对各个模块进行技术说明,开放部分资料和代码下载,寻求合作、培训和转让,欢迎私信,微信号:tang_yingcai沟通。
简介
- 软件基于Linux系统实现车载中控娱乐系统IVI的基本功能,包括Home、Radio、Media、Bt、Setting、Wifi、Camera和Upgrade等功能。
- 软件应用于车载娱乐系统IVI,软件已经实现IVI基本功能,后续添加手机互联模块后能满足量产IVI大部分功能。
- 软件已经既能在X86 Linux下模拟运行调试,也能在基于Linux的Arm车机中运行全部功能。
- 以此软件为基础可以衍生出QNX IVI或Android IVI等产品。
软件架构
Linux IVI软件层
分层软件架构。四层紧密联系在一起,但又互相独立,每一层内部的变化不影响其他层。每一层都对外提供接口供上面一层调用。软件实现层次化模块化,方便维护和升级,耦合性低重用性高。
- HMI层:用户操作界面
- Control层:负责管理HMI和Service的交互控制
- Service层:实现数据和业务处理,提供Control接口
- HAL层:提供给Service通用的硬件接口
Linux IVI软件层 - HAL
- HAL实现对硬件抽象化。硬件抽象化可以隐藏特定平台的硬件接口细节,为上面一层提供固定统一的接口,使其具有硬件无关性。
- HAL层模块以库的形式提供,对Service提供通用固定接口。使其硬件变更只需改写相应HAL模块,不影响其他代码变更。
Linux IVI软件层 - Service
- Service层实现具体的业务功能,每个业务模块都作为一个进程运行,进程间通过GDBus通信
- Service每个模块的通信接口以库形式提供,便于其他程序使用
- 只依赖少量必要的开源库,便于在Linux、QNX和Android平台移植
- 模块内部结构和对外接口清晰简洁,运行资源占用少
Linux IVI软件层 - Control
- Control层模块以库的形式提供,对上给HMI提供接口,对下调用service接口
- Conrol层只需修改HMI接口部分代码即可适用不同HMI,便于切换不同HMI
Linux IVI软件层 - HMI
- HMI使用Qt(qml)显示和逻辑处理
- 使用最基本的Qt组件(QtCore、Qt5Qml、Qt5Widgets和Qt5Quick),不使用多余的Qt插件和控件
- 使用自定义基本控件库(Button、Label、ListView等),方便和简化HMI开发
- 所有HMI页面管理通过windowsManager来管理
软件特点
- 跨平台性
使用CMake构建软件,使用开源软件具有平台无关性,无需修改代码可编译出Linux X86、Linux ARM、Android和QNX平台软件。
- 可复用性
系统架构采用分层架构设计,每个业务模块都在service中实现,每个service都可以复用。HMI层只负责显示,因此工作量只是在根据客户需求修改HMI。
- 可扩展性
如果需要扩展模块功能只需在原有接口中添加扩展即可,不修改其他模块。如果需要添加模块,只需增加对应的service和HMI即可,对其他模块无任何影响系统支持其他工具进行HMI开发,只需修改相应的HMI层代码,其他代码不变。
Linux IVI软件简介相关推荐
- 资料收集新一代 Linux 文件系统 btrfs 简介
来自: http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ Btrfs 简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext ...
- 面向dba的linux shell 脚本简介,面向 DBA 的 Linux Shell 脚本简介
DBA:Linux 面向 DBA 的 Linux Shell 脚本简介 作者:CasimirSaternos 学习一些在 Linux 上安装.运行和维护 Oracle 数据库所需的基本 bash sh ...
- 【转】Linux下软件安装的几种方式
转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...
- Debussy软件简介及仿真教程
** Debussy软件简介及仿真教程 ** 一.Debussy 软件简介 Debussy 是 NOVAS Software, Inc(思源科技)开发的 HDL Debug & Analysi ...
- Linux安全原理简介
Linux安全原理简介 介绍 在设置Linux计算机的所有阶段,安全性应是首要考虑之一.要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解. Linu ...
- Linux查看软件安装和系统信息操作
Linux中查看程序安装位置 如果是rpm的安装,用rpm -ql 如果是一般安装 用 whereis 或者 find find /usr -name catalina.out ======== 如何 ...
- Linux防火墙入门:简介(转)
Linux防火墙入门:简介(转) 前言 一旦连上网络,就充满各种危机. 许多人基于各式各样的理由,想侵入你的系统,这种人俗称为 cracker.尤有甚者,近年来,cracker 圈里流行一种结合病毒行 ...
- Linux常用命令简介
su su命令是最基本的命令之一,常用于不同用户间切换.例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后 ...
- Linux下软件逆向工程的介绍(一)
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章在网上无意中发现的,翻译一下,留作纪念. 文章原网址为:http://www.ouah.org/RevEng/t1.h ...
最新文章
- 【树莓派】更新系统镜像下载地址,可能是最简单粗暴的树莓派搭建个人网站教程...
- Ello讲述Haar人脸检测:易懂、很详细、值得 ...
- 分布式系统以及CAP原理
- React 第十章 状态提升
- LINUX 循环fork()
- Spring MVC学习笔记——SiteMesh的使用(转)
- python go rpc_Python RPC 之 gRPC
- 教你以一秒钟10万+个密码的速度破解WiFi
- java中国象棋棋子走法,《中国象棋对弈》象棋规则 棋子的走法
- 计算机科技兴趣小组活动总结,科技兴趣小组的活动总结
- Python多进程读图提取特征存npy
- python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取
- python模拟股票查询
- 未接响铃1秒是什么意思_90后秒选族是什么意思?90后秒选青年正追求梦想,并立即行动【图】...
- 春节程序员六大伤不起
- 华为OD机试Golang解题 - 机器人走迷宫
- Win10 为共享文件夹设置单独的用户访问权限(简单的局域网网盘)
- SpringColud Eureka的服务注册与发现
- 拥抱 Java 8 并行流:执行速度飞起 !
- 2022四川最新水利水电安全员模拟考试试题及答案