如何判断 gdal 驱动已经注册
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断 gdal 驱动已经注册相关的知识,希望对你有一定的参考价值。
参考技术A 从OGR 读取数据 为了描述如何通过OGR读取数据,我们编写一个小的示例,从OGR文件里读出数据,并按照一定格式输出。 首先我们需要注册我们渴望读取的所有格式。这个通过调用OGRRegisterAll()就能很容易完成,这个函数注册了GDAL/OGR支持的所有格式。#i nclude "ogrsf_frmts.h"int main() OGRRegisterAll(); 下一步我们将打开输入的OGR数据文件。数据文件可以是文件,关系型数据库,文件路径,甚至可能是远程的网络服务,这点取决于我们使用的驱动。但是,数据源的名字通常只是一个简单的字符串。既然这样拿我们就编写一个打开shapefile的程序。第二个参数(FLALSE)告诉OGRSFDriverRegistrar::Open() 函数我们不需要update access。如果失败返回NULL,并报错。 OGRDataSource *poDS; poDS = OGRSFDriverRegistrar::Open( "point.shp", FALSE ); if( poDS == NULL ) printf( "Open failed.\n" ); exit( 1 ); 一个OGRDataSource可能包含很多的层。所包含层的数量我们可以用过调OGRDataSource::GetLayerCount()得到,并且其中每一个曾我们利用索引调用OGRDataSource::GetLayer()得到。不过,我们现在利用层的名字。 OGRLayer *poLayer; poLayer = poDS->GetLayerByName( "point" );如何使用 android/linux 电源驱动程序注册设备驱动程序?
【中文标题】如何使用 android/linux 电源驱动程序注册设备驱动程序?【英文标题】:how to register a device driver with android/linux power driver? 【发布时间】:2013-03-11 09:05:19 【问题描述】:我正在为 android 设备开发与 lcd 相关的内核级设备驱动程序。有人可以帮助我在 Android 中使用与电源管理相关的 API,通过它我可以注册我的驱动程序以接收设备状态的任何更改。
更准确地说,我希望我的驱动程序在系统状态发生变化时(例如从运行状态变为睡眠状态或挂起状态)接收来自电源驱动程序的任何事件(或其他事件)。我希望我的司机也能睡觉,这在当前情况下会耗尽所有电池..
我的链接很少http://www.kandroid.org/online-pdk/guide/power_management.html 和http://developer.android.com/reference/android/os/PowerManager.html
其中谈到了 android_register_early_suspend 和 android_register_early_resume 等函数,但我在整个内核源代码(基于 linux 3.0)中找不到对这些函数的任何调用
我听说过“Linux 电源管理”,并且可以在我当前的基准代码中找到诸如 drivers/base/power 和 drivers/power 之类的文件夹。如何在我的代码中使用此驱动程序。
如果我缺少任何详细信息,请告诉我。 任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您的驱动程序应该实现运行时挂起/恢复回调。检查此doc。
在“struct dev_pm_ops”(定义在 linux/pm.h)中实现设备 PM 回调的示例代码
static int lcdxxx_suspend(struct device *dev)
//Your Code to suspend your device
static int lcdxxx_resume(struct device *dev)
//Your code to resume your device
static const struct dev_pm_ops lcd_pm_ops =
.suspend = lcdxxx_suspend,
.resume = lcdxxx_resume,
;
struct device_driver lcd_driver =
....
.pm = &lcd_pm_ops,
....
这只是示例 impl。实际实施取决于您的要求。
【讨论】:
以上是关于如何判断 gdal 驱动已经注册的主要内容,如果未能解决你的问题,请参考以下文章