一种嵌入式系统使用多媒体设备的方法与流程

文档序号:11216011阅读:538来源:国知局
一种嵌入式系统使用多媒体设备的方法与流程

本发明涉及计算机技术领域,尤具体地说是一种实用性强、嵌入式系统使用多媒体设备的方法。



背景技术:

智能嵌入式系统(一般指安装嵌入式操作系统的嵌入式设备)在工业控制和日常生活领域应用的越来越广泛,但智能嵌入式系统与多媒体设备的数据交互问题一直都没有很好的得到解决:由于多媒体设备厂商很少针对嵌入式系统开发设备驱动程序,而用户自己开发针对嵌入式系统的驱动程序难度和成本又太高,所以人们往往由于找不到合适的驱动程序而放弃将多媒体设备连接到嵌入式系统中使用,对数据共享造成极大的不便。

由于大多数嵌入式系统和多媒体设备都具有usb接口,因此,一种便捷的智能嵌入式系统通过usb接口使用多媒体设备的方法具有广泛的市场应用价值。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实用性强、嵌入式系统使用多媒体设备的方法。

一种嵌入式系统使用多媒体设备的方法,其实现过程为:通过配置多媒体设备的系统配置文件以及创建后台监视线程,为用户提供读取多媒体设备存储数据的操作接口,从而实现对多媒体设备的使用。

所述系统配置文件是指在包括windowsce的嵌入式系统下,多媒体设备的包括系统注册表的特定格式文件,该特定格式文件存储多媒体设备的配置参数。

在配置多媒体设备的系统配置文件时,通过对多媒体设备的注册表参数进行配置,将具有内部存储的多媒体设备配置为一个块存储设备。

配置多媒体设备参数通过在嵌入式系统中,系统自带的设备管理器实现,该设备管理器通过查询系统注册表中的设备配置参数来加载驱动程序。

所述多媒体设备是指带有usb接口的设备,相对应的,配置设备参数的过程为:配置参数在注册表项[hkey_local_machine\drivers\usb\loadclients…\]下面,每个配置的子键格式为group1_id\group2_id\group3_id\drivername,如果注册表信息与多媒体设备信息符合,设备管理器就会加载注册表中设置的对应驱动程序;

group1_id代表devicevendorid和deviceproductid,这里的devicevendorid和deviceproductid分别指带usb接口的多媒体设备的厂家标识id和产品标识id,group3_id代表类代码interfaceclasscode,通过多媒体设备分析工具获取多媒体设备的devicevendorid和deviceproductid,然后将group3_id设置为0x08_xx_xx,将drivername设置为mass_storage_class,最后将对应驱动设置为usbmsc.dll,至此系统将可以使用块设备驱动对多媒体设备内部的存储单元进行操作。

建立后台监视线程后,采用轮询方式对多媒体设备的存储情况进行实时监测和控制,利用文件系统api函数以及i/o接口函数读取多媒体设备的存储数据,避免频繁使用中断造成系统资源消耗。

本发明的一种嵌入式系统使用多媒体设备的方法,具有以下优点:

本发明的一种嵌入式系统使用多媒体设备的方法,采用此种数据交互方法,不需要安装专门的驱动程序,只要对设备配置参数进行适当配置,以及编写一个后台监控程序,即可实现嵌入式系统与多媒体设备的数据交互,大大方便了多媒体数据共享,降低了在资源紧缺的嵌入式设备上使用多媒体设备的门槛,实用性强,适用范围广泛,易于推广。

附图说明

附图1为本发明的实现示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

如附图1所示,一种嵌入式系统使用多媒体设备的方法,其实现过程为:通过配置多媒体设备的系统配置文件以及创建后台监视线程,为用户提供读取多媒体设备存储数据的操作接口,从而实现对多媒体设备的使用。

所述系统配置文件是指在包括windowsce的嵌入式系统下,多媒体设备的包括系统注册表的特定格式文件,该特定格式文件存储多媒体设备的配置参数。

在配置多媒体设备的系统配置文件时,通过对多媒体设备的注册表参数进行配置,将具有内部存储的多媒体设备配置为一个块存储设备。

配置多媒体设备参数通过在嵌入式系统中,系统自带的设备管理器实现,该设备管理器通过查询系统注册表中的设备配置参数来加载驱动程序。

所述多媒体设备是指带有usb接口的设备,相对应的,配置设备参数的过程为:配置参数在注册表项[hkey_local_machine\drivers\usb\loadclients…\]下面,每个配置的子键格式为group1_id\group2_id\group3_id\drivername,如果注册表信息与多媒体设备信息符合,设备管理器就会加载注册表中设置的对应驱动程序;

group1_id代表devicevendorid和deviceproductid,这里的devicevendorid和deviceproductid分别指带usb接口的多媒体设备的厂家标识id和产品标识id,group3_id代表类代码interfaceclasscode,通过多媒体设备分析工具获取多媒体设备的devicevendorid和deviceproductid,然后将group3_id设置为0x08_xx_xx,将drivername设置为mass_storage_class,最后将对应驱动设置为usbmsc.dll,至此系统将可以使用块设备驱动对多媒体设备内部的存储单元进行操作。

建立后台监视线程后,采用轮询方式对多媒体设备的存储情况进行实时监测和控制,利用文件系统api函数以及i/o接口函数读取多媒体设备的存储数据,避免频繁使用中断造成系统资源消耗。

下面以在windowsce嵌入式设备上使用usb摄像机为例,进行详细说明:通过配置usb摄像机的系统配置文件以及创建后台监视线程,为用户提供了方便读取usb摄像机存储数据的操作接口,从而不需要安装usb摄像机驱动程序,大大降低了在资源紧缺的嵌入式设备上使用多媒体设备的门槛。

在windowsce系统下,外围设备的配置文件一般为系统注册表platform.reg,其他嵌入式系统也采用类似机制如采用特定格式的文件来存储设备配置参数。

多媒体设备一般都内置存储器用来存储多媒体数据,存储器的形态可采用不可插拔的板载存储芯片,也可使用可插拔的移动存储介质,本方法在读取采用板载存储芯片的多媒体设备数据以及嵌入式系统没有存储卡接口的情况下特别有用。

通过合理的配置设备注册表表项,将多媒体设备配置为一个块存储设备,利用文件系统操作接口对块设备进行操作,本方法适用于采用usb接口且具有内置存储的多媒体设备。

通过建立后台监视线程,采用轮询方式对多媒体设备的存储情况进行实时监测和控制,避免频繁使用中断造成系统资源消耗。

更为具体的步骤如下所述:

步骤1:配置设备参数:

在windowsce中,设备管理器通过查询系统注册表中的设备配置参数来加载驱动程序。usb设备的配置参数在注册表项[hkey_local_machine\drivers\usb\loadclients…\]下面,每个配置的子键格式为group1_id\group2_id\group3_id\drivername,如果注册表信息与usb设备信息符合,设备管理器就会加载注册表中设置的对应驱动程序。

group1_id代表devicevendorid和deviceproductid,group3_id代表interfaceclasscode,通过usb接口分析工具获取多媒体设备的devicevendorid和deviceproductid,然后将group3_id设置为0x08_xx_xx,将drivername设置为mass_storage_class,最后将对应驱动设置为usbmsc.dll,至此系统将可以使用块设备驱动对usb摄像机内部的存储单元进行操作。示例代码如下所示:

[hkey_local_machine\drivers\usb\loadclients\1265_8]

[hkey_local_machine\drivers\usb\loadclients\1265_8\default]

[hkey_local_machine\drivers\usb\loadclients\1265_8\default\8_6_80]

[hkey_local_machine\drivers\usb\loadclients\1265_8\default\8_6_80\mass_storage_class]

"dll"="usbmsc.dll"

"prefix"="dsk"。

步骤2:编写后台监控程序:

在应用层建立后台监视线程,采用轮询方式对多媒体设备的存储情况进行实时监测和控制,利用文件系统api函数以及i/o接口函数读取usb摄像机的存储数据,示例代码如下所示:

//启动监视摄像机的后台工作线程

if(m_bbeginworkthread){

m_bbeginworkthread=false;

afxbeginthread((afx_threadproc)watchingcamerathread,null);

}

//监控摄像机的后台线程

uintwatchingcamerathread(lpvoidpparam){

win32_find_datafindfiledata;

while(1)

{

if(findfirstfile(_t("\\harddisk\\dcim\\100jvcso\\*.gif"),&findfiledata)!=invalid_handle_value)

{

cstringfilename=findfiledata.cfilename;

cstringstrsrcfile=_t("\\harddisk\\dcim\\100jvcso\\")+filename;

cstringstrdestfile=m_strpicpath+_t("\\")+filename;

copyfile(strsrcfile,strdestfile,false);

deletefile(strsrcfile);}

sleep(1000);

}}。

整个实现过程只改动和添加了少量代码,却起到了“四两拨千斤”的作用,省去了寻找和开发多媒体设备专有驱动的过程和烦恼,极大提高了工作效率。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种嵌入式系统使用多媒体设备的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1