基于QT和ARM的嵌入式点菜系统
- 格式:doc
- 大小:91.00 KB
- 文档页数:10
基于QT和ARM的手持无线点餐系统设计[摘要]本文提出一种基于嵌入式系统和无线通信技术的点餐终端设计方法。
以ARM 920t核的S3C2410开发板和无线网卡WI-FI作为硬件载体,综合应用WLAN、嵌入式Linux、JSP技术和QT开发等技术,以程序软件的通用性和易用性为方向,实现无线点餐系统。
[关键词]Linux;QT;点餐系统;WI-FI;JSP1引言无线点餐系统能够提供快速、便捷、透明、卫生的餐饮条件,国内市场现有的各种点餐系统有基于单片机的,但其是按键操作,且反应速度慢、界面呆板;也有速度快、界面友好基于PDA的,其技术成熟,但操作复杂、价格昂贵,使中小餐饮企业望而却步。
通过综合分析市场现有的各种点餐系统的优缺点,本文认为开发一款灵活、便捷、成本低廉、界面友好、易操作维护的点餐系统关键在于点餐终端和通讯方式的选择,在此基础上提出了一种无线点餐终端解决方案:运用嵌入式系统,以Linux系统开发平台为基础,利用WI-FI搭建服务器与计算机管理系统进行无线数椐交换,实现手持式点餐终端。
2系统组成系统整体由6个部分组成,分别为:柜台使用的前台点餐系统、管理员使用的后台管理系统、厨房使用的点餐终端、服务员使用的服务端无线点餐系统、消费者使用的客户端无线点餐系统和餐桌专用点餐系统(如图1所示)。
顾客手持端和服务员手持端均由ARM9开发,利用WI-FI借助无线路由将信息传送到Web服务器内,餐桌专用端由ARM9开发,通过有线方式将信息传送到Web服务器内,这些顾客点餐信息通过无线方式传送到后台厨房(厨房情况复杂,不便于布线,采用无线方式更实用),通过有线方式传送到前台收银员处和后台管理员处。
3点餐系统设计方案3.1电子点餐系统无线解决方案参考己有的点餐系统的无线通讯方案,以当前广泛应用的IEEE802.llbWLAN技术为基础,利用现有ARM9为核心的S3C2410开发板,配合购置的TP-WN321G+USB无线网卡组成系统的点餐终端机,通过TL-WR340与无线路由器连接到后台服务器,构成无线局域网(WLAN),并融入基于S3C2410的餐桌专用点餐系统;另一方面,在后台服务器上构建服务网站处理和管理餐厅信息数据,终端机通过该WLAN以Browser/Server的模式与服务器交互,进行点餐相关操作,构成整个电子点餐系统。
Qt4在Linux﹢ARM9嵌入式系统中的移植与应用Qt4是一款跨平台的GUI开发框架,可以用来开发图形用户界面和嵌入式应用程序。
在Linux+ARM9嵌入式系统上,Qt4的移植和应用也变得越来越广泛。
本文将介绍Qt4在Linux+ARM9嵌入式系统中的移植与应用。
一、Qt4在Linux+ARM9嵌入式系统中的移植Qt4在嵌入式系统上的移植需要进行配置和编译。
首先,需要下载并安装Qt4的交叉编译工具链,如arm-linux-gcc,然后配置Qt4。
在配置过程中,需要指定编译器、链接器和库的路径等信息。
接着,在编译时,需要使用configure命令进行编译选项设置,并使用make命令进行编译。
最后,生成的Qt4库和头文件将被使用到嵌入式应用程序中。
二、Qt4在Linux+ARM9嵌入式系统中的应用1. 开发嵌入式应用程序Qt4可以用于开发嵌入式应用程序,如触摸屏应用程序、物联网应用程序、智能家居控制系统等。
通过Qt4,可以更加方便地实现图形化交互,并且可以支持多种输入输出设备,如键盘、鼠标、触摸屏等。
2. 开发Web应用程序Qt4中提供了Webkit模块,可以用于开发Web应用程序。
如,基于Qt4的Web服务器,可以用来进行图像处理、视频流传输等。
Qt4的Webkit支持JavaScript、CSS、HTML等Web技术,能够很好地支持Web应用程序的开发。
3. 使用Qt4开发游戏Qt4可以用于开发游戏,如智力游戏、休闲游戏、卡牌游戏等。
Qt4中的GUI系统和绘图系统都支持2D和3D图形,非常适合游戏开发。
此外,Qt4中的动画框架和输入框架也使游戏开发更加方便。
总之,Qt4在Linux+ARM9嵌入式系统中的移植和应用潜力巨大。
通过Qt4,开发人员可以更加方便地开发嵌入式应用程序、Web应用程序和游戏。
因此,Qt4在嵌入式系统领域的应用也将越来越广泛。
基于Qt和ARM的无线点菜系统软件设计的开题报告一、选题背景和意义随着互联网和智能化科技的不断发展,越来越多的餐厅开始采用无线点菜系统,以提高服务质量和效率,改善顾客用餐体验。
然而,由于系统底层硬件设备复杂,软件开发难度大,当前市场上的无线点菜系统通常存在价格过高、功能不全、操作繁琐等问题。
因此,深入研究开发基于Qt和ARM的无线点菜系统软件,不仅可以提高餐厅的经营效益和商业竞争力,同时也可以为用户提供更加优质的用餐体验。
二、设计目标和内容本项目的设计目标是:1.研究和开发基于Qt和ARM的无线点菜系统软件,实现顾客无线点餐、厨房制作及服务员管理等功能。
2.优化系统的性能和用户体验,提高用户使用满意度和系统的时效性。
3.实现数据信息的采集、存储、分析和管理,为餐厅提供全面、准确的数据分析服务,为餐厅食品管理提供有效的支持。
本项目的设计内容包括以下几个方面:1.系统框架设计:设计系统的整体基本结构和模块,包括客户端模块、服务器模块、后台数据管理模块等。
2.系统功能设计:根据用户需求,设计实现顾客无线点餐、厨房制作、服务员管理等各项功能。
3.界面设计:设计直观、简洁、美观的用户界面,提高用户体验。
4.数据存储和管理设计:设计实现数据信息的采集、存储、分析和管理功能,为餐厅提供全面、准确的数据分析服务。
5.系统测试和优化:对系统进行测试和优化,提高系统的稳定性、性能和用户使用体验。
三、技术路线和工具选择1.技术路线:本项目基于Qt和ARM的技术路线。
Qt作为一款跨平台、功能强大的GUI框架,具有良好的可移植性和开发效率,可以方便地实现用户界面的设计和功能开发。
而ARM作为一款低功耗高性能嵌入式处理器,可以满足系统性能的要求,实现物联网应用。
2.工具选择:Qt Creator:作为一款轻量级的集成开发环境,可以方便开发者进行界面设计、代码编写和调试。
ARM开发板:作为系统硬件设备,可以实现系统的底层控制和数据处理运算。
用QT4打造智能餐厅:嵌入式点菜系统的设计与实现随着科技迅速发展,大型餐厅和酒店开始使用智能化的点菜系统,以提高效率并提供更好的服务体验。
在这篇文章中,我们将介绍如何使用QT4开发一个嵌入式点菜系统,以满足餐厅和酒店的需求。
第一部分:需求分析在设计任何软件系统之前,我们必须先了解用户的需求。
所以,在开发嵌入式点菜系统之前,我们需要调查餐厅和酒店的需求,以确保我们的设计符合他们的要求。
在此基础上,我们可以定义所需的功能,并在系统设计时考虑这些需求。
第二部分:系统设计在设计嵌入式点菜系统时,我们需要考虑以下几个方面:1. 界面设计:我们需要针对点菜系统设计一个简洁且易于使用的界面。
QT4框架提供了许多工具,可以使我们创建精美的用户界面。
2. 数据存储:我们需要考虑如何存储酒店或餐厅的菜单。
数据存储可以采用本地数据库或远程服务器。
在这里,我们建议使用SQLite作为本地数据库存储。
3. 系统逻辑:在系统逻辑方面,我们需要考虑一些重要的问题,例如计算账单、处理订单、更新库存等。
这部分需要细致的计划和讨论。
4. 设备兼容性:由于是一个嵌入式系统,我们需要确保软件能够在设备上正常运行。
系统应该能够兼容不同的硬件设备,并保持稳定性。
第三部分:系统实现在系统设计完成后,我们需要开始实现。
在这里我们将使用QT4框架,为点菜系统创建一个图形用户界面,设计主要功能和完成相关的编码工作。
开发完成后,我们应该进行充分的测试,确保系统运行稳定且符合您的需求。
总结通过本文的介绍,我们了解了如何使用QT4框架开发嵌入式点菜系统。
这将有助于提高就餐体验、提高服务效率以及减少人工成本。
不过,我们必须始终记得用户需求是我们设计的核心,我们需要让系统的使用者对其感到满意,并通过不断的改进确保系统的正常运行。
基于ARM的自助点菜终端设计班级:2011002学号:2011084102姓名:杜达凯一、需求分析1.问题的提出:随着数字时代的到来,越来越多的电子工具在市场上涌现,他们正默默地改变着人们的日常生活。
人们在数字时代,对便利性、简洁性和快速性的追求超过了以往的任何时刻。
而传统的点菜方式,即由客人阅读菜单,服务员记录,报知厨房,上菜记录,加餐结账等多个步骤,耗费人力和时间。
这款自助点菜终端是顺着这股潮流应运而生。
2.可行性分析:本自助点菜终端系统采用局域网传输技术,可应用于酒店、旅馆、学校、医院、大型商场、大型办公场所等地方,具有方便快捷,快速反应,及时更新等特点。
本系统以SEP4020开发板和320×320液晶显示屏为硬件,采用Linux为设计平台并使用miniGUI图形界面为用户交互。
具有一定的扩展性和稳定性。
二、产品设计1.系统方案:硬件部分:SEP4020开发板,320×320液晶显示屏软件部分:LINUX内核、miniGUI图形界面及相关功能程序自助点菜终端功能程序包含客户端(开发板)和服务器端(PC)两部分。
客户端主要负责与用户的交互,对用户要求的传输和对服务器端的响应。
服务端主要负责与客户端的交互,数据的存储和管理员对系统的操作。
2.功能与指标:该自助点菜系统客户端功能:(1)显示菜名及价格;(2)显示已选择的菜肴、菜肴简介、总价等信息;(3)向服务器发送点菜信息;(4)显示服务端发送的即时信息;(5)向前台发送结账消息;(6)刷新菜单列表。
终端服务器功能:(1)对菜名存储、修改;(2)编辑与发送即时信息;(3)控制与客户端的链接。
3.实现原理:客户端:(1)显示菜名及价格:客户端连上主机后,获得主机发来的标准规的数据(菜肴类品、菜名、报价、描述等信息),通过解析函数,去的给雷数据并存放在相应数组、字符串中,并依次绘制窗口控件,显示出菜名和价格。
客户端上图形界面的形成依据服务器的信息,菜单可以根据菜的数目自动增加新的项目发现新的分类页增加新的项目。
基于ARM + Linux的嵌入式网络订餐系统目录前言 (1)1 系统概述 (2)1.1 项目背景 (2)1.2 目标系统 (2)1.3 可行性 (3)2 系统设计 (4)2.1 运行环境 (4)2.2 开发工具 (7)2.3 总体设计 (7)2.4 重点细节 (16)3 实现 (18)3.1 Linux平台的建立 (18)3.2 Boa程序的移植 (19)3.3 Boa的配置 (20)3.4 Boa的执行 (20)3.5 CGI脚本测试 (20)4 总结 (20)参考文献 (22)附录A (23)[注释1]ARM简介 (23)[注释2]FS2410DEV V6.0开发板的配置 (23)[注释3]交叉编译环境的建立和bootloader相关操作 (24)基于Arm + Linux的嵌入式网络订餐系统摘要传统手段实现的网络订餐系统复杂而庞大,用户使用时有诸多不便。
嵌入式系统与Internet的结合为嵌入式设备的网络互连提供了一条有效的途径。
把嵌入式设备连接到网络中,并且实现Web Server功能,提供一些独具特色的服务,是一项很有前景的应用。
本文介绍了一个嵌入式网络订餐系统。
客户可以通过此系统获得菜单,提交订单,商户通过此系统发布菜单,接受订单。
系统运行的平台为ARM9+Linux,由于嵌入式设备的低成本且本系统集成了服务器端和商户浏览器端,本系统可以使用户节省大量花费。
本设计涉及到的技术有嵌入式系统开发环境的搭建、应用程序的移植、网页设计、CGI程序的开发等。
【关键词】ARM Linux BOA 订餐系统CGIAn Embedded Online Food Order System Basing On Arm &LinuxAbstractThe traditional implement of Online Food Order System is complex and hulking for the application of take-away service. The combination of embedded system and Internet provides an effective way to the internet interconnection of the embedded devices. It’s a promising application that the embedded devices are connected to the internet with the Web Server function realized so that some distinctive services are provided. The paper introduces an embedded system of online food order. The customer is able to get a menu and submit an order by this system while the businessman posts the menu and receives the order by this system. The running platform of the system is ARM9+Linux. The technologies involved include the construction of the embedded development environment, the transplantation of the application program, the webpage design, the development of CGI program, etc.【Key words】ARM Linux BOA Online Food Order System CGI前言我即将呈现的,是一个基于ARM + Linux的嵌入式终端,可以这样简单地对其功能做一个描述:它是一个嵌入式的web服务器,服务器上实现了一个很小的网上“商城”,目前这个商城的经营范围为餐饮,客户通过访问这个网站获得商品信息,并且下订单,服务器在接收到新订单后通知商户。
基于QT和ARM的嵌入式点菜系统摘要:餐饮企业的传统点菜方式既费时又增加开销,而且经常会出现丢单,漏单的情况的发生。
最近流行的点菜宝等系统一方面采用Wince操作系统,增加额外开销,令一方面它们都是服务员手持,顾客面对的还是纸质菜单,虽然说是电子点菜,但是它为我们解决的无非是客人点完菜后服务员不用往厨房跑。
从某种意义上说,这些不能称之为真正的电子点菜。
在总结以往电子电子点菜的基础上,我们利用S3C2440芯片开发了基于Linux 操作系统和Arm9处理器的电子点菜系统。
该系统利用QT进行图形界面设计,利用Sqlite 数据库进行数据存储,依赖TCP/IP网络进行数据传输。
关键词:嵌入式ARM 点菜系统Linux Qt嵌入式点菜系统是利用计算机技术、网络通信技术、Sqlite数据库,QtGui图形界面设计等,根据当今餐饮企业的需求而设计的餐饮企业智能控制和管理的一种嵌入式系统。
一、嵌入式系统目前,在嵌入式系统应用领域中,不少人对什么是嵌入式系统不甚了解。
有些人搞了十多年的单片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,而是列举了嵌入式系统的一些特点,往往不知所云。
因此,有必要从现代计算的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。
嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。
由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。
通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。
而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
嵌入式计算机系统则走上了一条完全不同的道路,这条独立发展的道路就是单芯片化道路。
它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。
在中国嵌入式系统领域,比较认同的嵌入式系统概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处器、处围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
如果我们了解了嵌入式(计算机)系统的由来与发展,对嵌入式系统就不会产生过多的误解,而能历史地、本质地、普遍适用地定义嵌入式系统。
1.1嵌入式系统的定义按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。
“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。
对象系统则是指嵌入式系统所嵌入的宿主系统。
1.2嵌入式系统的特点嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。
不同的嵌入式系统其特点会有所差异。
与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。
与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。
与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。
嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
1.3嵌入式系统的种类与发展按照上述嵌入式系统的定义,只要满足定义中三要素的计算机系统,都可称为嵌入式系统。
嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此,只有将嵌入式处理器构成一个计算机系统,并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。
嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。
因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。
因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。
1.4嵌入式系统的实时性响应时间:是实时系统从识别出一个外部事件到做出响应的时间;生存时间:是数据的有效等待时间,数据只有在这段时间内才是有效的;吞吐量:是在给定的时间内系统能够处理的事件总数,吞吐量通常比平均响应时间的倒数要小一点。
实时系统根据响应时间可以分为弱实时系统、一般实时系统和强实时系统三种。
弱实时系统在设计时的宗旨是使各个任务运行得越快越好,但没有严格限定某一任务必须在多长时间内完成,弱实时系统更多关注的是程序运行结果的正确与否,以及系统安全性能等其他方面,对任务执行时间的要求相对来讲较为宽松,一般响应时间可以是数十秒或者更长。
一般实时系统是弱实时系统和强实时系统的一种折衷,它的响应时间可以在秒的数量级上,广泛应用于消费电子设备中。
强实时系统则要求各个任务不仅要保证执行过程和结果的正确性,同时还要保证在限定的时间内完成任务,响应时间通常要求在毫秒甚至微秒的数量级上,这对涉及到医疗、安全、军事的软硬件系统来说是至关重要的。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微上控制电机和多种传感器,从而可以执行各种复杂的动作和感受种状态信息。
1.5嵌入式系统的组成1.5.1硬件层硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O 接口(A/D、D/A、I/O等)。
在一嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM中。
1.5.2中间层硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或者板级支持包(Board Support Package,BSP),它半系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。
设计一个完整的BSP需要完成两部分工作:嵌入工系统的硬件初始化的BSP功能,设计硬件相关的设备驱动。
1.5.3系统软件层系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
二、LinuxLinux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,它们都使用Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统。
严格来讲,Linux这个词只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
Linux是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。
Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。
然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。
三、Arm体系结构3.1Arm简介ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。
公司的特点是只设计芯片,而不生产。
它将技术授权给世界上许多著名的半导体、软件和OEM(代工生产)厂商,并提供服务。
ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。
它具有经典RISC的特点:1)大的、统一的寄存器文件;2)装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;3)简单的寻址模式;4)统一和固定长度的指令域,简化了指令的译码。
3.2Arm处理器模式ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如表一所示。
这样的好处是可以更好的支持操作系统并提高工作效率。
ARM完全支持这七种模式。
表一 Arm处理器模式3.3Arm寄存器在ARM处理器内部有37个用户可见的寄存器。
在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。
如表二所示:表二 Arm寄存器四、Qt4.1Qt介绍Qt是一个跨平台的C++图形用户界面应用程序框架。
它给应用程序开发者提供建立艺术级图形用户界面所需的所有功能。
它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
Qt支持的平台有:MS/Windows - 95、98、NT 4.0、ME、2000、XP 和 VistaUnix/X11 - Linux、Sun Solaris、 HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX 和其他很多X11平台Macintosh——Mac OS XEmbedded——有帧缓冲(framebuffer)支持的Linux平台、Windows CESymbian/S60——目前已经可以提供技术预览版本4.2Qt EmbeddedQt Embedded是NOKIA公司的图形化界面开发工具Qt的嵌入式版本,它通过QtAPI与Linux I/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,Qt/embedded和 Qt一样,在4.5版本之后提供了三种不同的授权协议GPL, LGPL和Commercial。