- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 《鸿蒙智能互联设备开发(微课版)》 课件 4.4.1 内存管理的基本概念.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 4.4.2 静态内存管理接口及应用.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 4.4.3 动态管理接口及应用.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.1.1 LiteOS-A内核简介.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.1.2 LiteOS-A内核架构.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.1.3 LiteOS-A内核态启动流程.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.1.4 LiteOS-A用户态启动流程.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.2.1 中断与异常处理的概念和机制.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.2.2 中断与异常处理接口与应用-.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 5.3.1 进程管理.pptx
- 2024年广东省湛江市企业人力资源管理师之四级人力资源管理师考试王牌题库精品(综合题).docx
- 2024年广东省茂名市企业人力资源管理师之四级人力资源管理师考试精品题库含答案(满分必刷).docx
- 2024年广东省揭阳市企业人力资源管理师之一级人力资源管理师考试精品题库【精选题】.docx
- 2024年广东省清远市企业人力资源管理师之一级人力资源管理师考试题库大全含答案(新).docx
- 2024年广东省惠州市企业人力资源管理师之一级人力资源管理师考试优选题库【培优B卷】.docx
- 2024年广东省湛江市企业人力资源管理师之一级人力资源管理师考试精品题库带答案(新).docx
- 2024年广东省汕头市企业人力资源管理师之一级人力资源管理师考试通关秘籍题库附答案(轻巧夺冠).docx
- 2024年广东省河源市企业人力资源管理师之一级人力资源管理师考试完整题库(精选题).docx
- 2024年江西省上饶市企业人力资源管理师之一级人力资源管理师考试王牌题库(巩固).docx
- 2024年新疆伊犁哈萨克自治州企业人力资源管理师之一级人力资源管理师考试真题题库【满分必刷】.docx
文档评论(0)