嵌入式应用开发实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9.2 实例2——在线地图显示器
使用技术
本应用主要使用的技术是GeoClue,基础模块也包括 Dbus。GeoClue提供位置相关的图形界面API (location-related GUI API),它可以通过多种途径获 得机器当前经纬度格式表示的位置信息,如当机器配 有GPS时,则直接从GPS获得位置信息;还可通过机 器的IP地址获得其(大致)位置。本应用是采用通过机 器IP地址获得位置的方式。GeoClue建筑于Dbus上, 也是后者的应用模块之一。在得到机器位置后,本应 用调用google API来得到地图信息,然后在应用窗口中 显示出来。
9.1 实例1——图片浏览器
程序代码
本应用只有一个源文件,其代码如下:
/* clutter_picviewer version 1.0 */ #include <gtk/gtk.h> #include <clutter/clutter.h> #include <clutter-gtk/clutter-gtk.h> #include <dbus/dbus.h> /* 定义图片窗口尺寸 */e #define STAGE_WIDTH 640 #define STAGE_HEIG动的界面。 点击<open>按钮可以 选择欲浏览的图片文 件。
9.1 实例1——图片浏览器
运行界面(续)
选择文件后应用的界面 点击下面略缩图列表中 的图片,应用窗口的中 间将以大图显示该图片, 点击工具栏的<Zoom-> 和<Zoom+>可以缩小/放 大显示图片,略缩图列 表的左右两端的“<<”和 “>>”可以向左、右移动 略缩图列表的内容。本 例子的图片切换使用了 淡入/淡出的动画效果。 本应用的点击均为鼠标 左击,因此十分适合于 MID等拥有触摸屏的设备。
9.2 实例2——在线地图显示器
编译-生成说明
由于本应用也只有一个源文件,其makefile比 较简单,内容如下:
all: gcc -o gtkmoz gtkmoz.c `pkg-config --libs --cflags xulrunnergtkmozembed gtk+-2.0 geoclue`
9.1 实例1——图片浏览器
编译-生成说明
由于本应用只有一个源文件,其makefile比较 简单,内容如下:
all: gcc -g -rdynamic picture.c -o pic ` pkg-config gtk+-2.0 clutter-gtk-0.10 dbus-glib-1 dbus-1 --libs --cflags`
9.3 实例3——Camrecorder
使用技术
本应用使用的主要技术是Gstreamer
源代码
本应用只有一个源文件,其代码如下:
/* camrecorder version 1.0 */ #include <stdlib.h> #include <string.h> #include <gtk/gtk.h> #include <gst/gst.h> #include <gst/interfaces/xoverlay.h> #include <gdk/gdkx.h> #include <gdk/gdkkeysyms.h> /* 定义图片文件名及其保存文件夹 */ #define SAVE_FOLDER_DEFAULT "/home/semper/Desktop" #define PHOTO_NAME_DEFAULT "Picture" #define PHOTO_NAME_SUFFIX_DEFAULT ".jpg" …………
9.2 实例2——在线地图显示器
源代码
应用也只有一个源文件,其代码如下:
#include <gtk/gtk.h> #include <gtkmozembed.h> #include <geoclue/geoclue-position.h> #include <stdio.h> typedef struct callback_data{ GtkWidget *label; GtkWidget *mozembed; } callback_data; static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } static void on_button1_clicked(GtkWidget *widget, callback_data *userdata) …………
第9章 嵌入式应用开发实例 Chapter 9 Development Examples of Embedded Applications
内容
实例1——图片浏览器 实例2——在线地图显示器 实例3——Camrecorder
9.1 实例1——图片浏览器
例子简介
本应用程序是一个图片浏览器,主要使用的技术是 Clutter,并应用了一些功耗控制措施,本应用的基础模 块包括Dbus。
9.3 实例3——Camrecorder
例子简介
本应用程序,取名为Camrecorder,是一个摄 像头显示和记录器,应用窗口实时地显示摄像 头所拍摄的视频,同时具有照相和摄像的功能, 即可以将当前图象保存为图片——照相功能, 将指定时间段的视频保存为视频文件——摄像 功能。换句话说,安装本应用的MID将具有一 般手机都具有的照相和摄像的功能。
9.3 实例3——Camrecorder
程序界面
9.3 实例3——Camrecorder
程序界面
当启动本应用后,应用窗口将实时地显示摄像 头拍摄的视频。点击<Take photo>按钮将把当 前视频图像保存为图像文件,缺省的文件为 pictureX.jpg,其中X是逐次递增的数字。当即 <start Recording>按钮时开始记录视频,将视 频保存为avi文件。
谢谢
9.2 实例2——在线地图显示器
例子简介
本应用程序是一个在线地图显示器,它能根据机器所 在的位置显示其周围的地图。
运行界面
(a)初始界面
9.2 实例2——在线地图显示器
运行界面
(b)机器当前 所在位置的地 图
9.2 实例2——在线地图显示器
运行界面
(c)机器当前 所在位置的卫 星图
9.2 实例2——在线地图显示器
运行界面
图(a)是应用刚启动时的界面。点击<start>按钮 进入工作状态,如图(b)所示,窗口显示机器当 前所在位置的地图。如同Google地图一样,本 应用可以在窗口中通过点击拖动操作移动地图, 点击窗口左边的放大/缩小滑杆可以放大/缩小 地图,还可以点击窗口右上角的Map、Satellite、 Hybrid按钮选择地图显示形式。图(c)是选择 Satellite后的卫星图。运行本例时机器必须连 接上Internet。本应用的操作均为鼠标左击或拖 动,因此十分适合于MID等能方便连接Internet 以及拥有触摸屏的设备。
相关文档
最新文档