《鸿蒙智能互联设备开发(微课版)》 课件 6.2.2 驱动服务管理开发.pptx

《鸿蒙智能互联设备开发(微课版)》 课件 6.2.2 驱动服务管理开发.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

6.2.2驱动服务管理开发

通过本节学习,您可以:了解驱动服务管理开发

驱动服务管理开发1.驱动服务管理接口针对驱动服务管理功能,HDF框架开放了部分接口给开发者调用。方法描述int32_t(*Bind)(structHdfDeviceObject*deviceObject);需要驱动开发者实现Bind函数,将自己的服务接口绑定到HDF框架中conststructHdfObject*DevSvcManagerClntGetService(constchar*svcName);获取驱动的服务intHdfDeviceSubscribeService(structHdfDeviceObject*deviceObject,constchar*serviceName,structSubscriberCallbackcallback);订阅驱动的服务

驱动服务管理开发2.驱动服务管理开发步骤(1)驱动服务的编写驱动服务管理开发的第一步是定义驱动的服务接口。//驱动服务结构的定义structITestDriverService{structIDeviceIoServiceioService;//服务结构的首个成员必须是IDeviceIoService类型的成员int32_t(*ServiceA)(void);//驱动的第一个服务接口int32_t(*ServiceB)(uint32_tinputCode);//驱动的第二个服务接口,有多个可以依次往下累加};驱动服务接口的实现int32_tTestDriverServiceA(void){//驱动开发者实现业务逻辑returnHDF_SUCCESS;}int32_tTestDriverServiceB(uint32_tinputCode){//驱动开发者实现业务逻辑returnHDF_SUCCESS;}

驱动服务管理开发(2)驱动服务绑定驱动服务绑定到HDF框架中,实现HdfDriverEntry中的Bind指针函数。int32_tTestDriverBind(structHdfDeviceObject*deviceObject){//deviceObject为HDF框架给每一个驱动创建的设备对象,用来保存设备相关的私有数据和服务接口if(deviceObject==NULL){HDF_LOGE(Testdeviceobjectisnull!);returnHDF_FAILURE;}staticstructITestDriverServicetestDriverA={.ServiceA=TestDriverServiceA,.ServiceB=TestDriverServiceB,};deviceObject-service=testDriverA.ioService;returnHDF_SUCCESS;}

驱动服务管理开发(3)驱动服务获取通过HDF接口直接获取:conststructITestDriverService*testService=(conststructITestDriverService*)DevSvcManagerClntGetService(test_driver);if(testService==NULL){returnHDF_FAILURE;}testService-ServiceA();testService-ServiceB(5);

驱动服务管理开发//object为订阅者的私有数据,service为被订阅的服务对象int32_tTestDriverSubCallBack(structHdfDeviceObject*deviceObject,conststructHdfObject*service){conststructITestDriverService*testService=(conststructITestDriverService*)service;if(testServic

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档