js通过ace接口调用led驱动,HdfIoServiceBind绑定服务失败

参考这篇文章https://ost.51cto.com/posts/10369进行js调用led驱动,ace通过HdfIoServiceBind绑定服务失败,单独写一个测试程序却能成功,openharmony小型系统LTS3.0.2,开发板是hi3516dv300-ipcamera_hispark_taurus。

报错代码段以及日志如下:

ace绑定服务失败,代码段以及日志如下:

JSIValue AppModule::ToggleLed(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum)
{
    HILOG_INFO(HILOG_MODULE_ACE, "Ace ToggleLed%s\n", LED_SERVICE);
    struct HdfIoService *serv = HdfIoServiceBind(LED_SERVICE);
    if (serv == NULL) {
        HILOG_ERROR(HILOG_MODULE_ACE, "fail to get service2 %s\n", LED_SERVICE);
        return JSI::CreateUndefined();
    }
    HdfIoServiceRecycle(serv);
    return JSI::CreateUndefined();
}

#下面是日志
#################################################################
OHOS # 
OHOS # 01-01 00:19:15.459 18 16 I 03900/ACE: Ace ToggleLedhdf_led

01-01 00:19:15.459 18 16 E 02500/hdf_syscall_adapter: HdfIoServiceAdapterObtain: load dev_mgr driver failed
01-01 00:19:15.459 18 16 E 02500/HDF_LOG_TAG: failed to get dev_mgr service
01-01 00:19:15.459 18 16 E 02500/hdf_syscall_adapter: HdfIoServiceAdapterObtain: load hdf_led driver failed
01-01 00:19:15.459 18 16 E 03900/ACE: fail to get service2 hdf_led
OHOS # 

测试程序却可以成功绑定,代码段以及日志:

int main(int argc, char **argv)
{
  int i;
  printf("myled service %s!\r\n", LED_SERVICE);
  /* 获取服务 */
  struct HdfIoService *serv = HdfIoServiceBind(LED_SERVICE);
  if (serv == NULL)
  {
    printf("fail to get service %s!\r\n", LED_SERVICE);
    return HDF_FAILURE;
  }
  for (i = 0; i < argc; i++)
  {
    printf("\r\nArgument %d is %s.\r\n", i, argv[i]);
  }
  SendEvent(serv, atoi(argv[1]));
  HdfIoServiceRecycle(serv);
  printf("exit");
  return HDF_SUCCESS;
}

#下面是日志
#################################################################
OHOS # 
OHOS # ./my_led 0
myled service hdf_led!
Argument 0 is my_led.
Argument 1 is 0.
Get reply is: 0
exit
OHOS #
01-01 00:19:31.643 22 101 E 02500/led_driver: Led driver dispatch
OHOS # 
OHOS # 
js
ace接口
驱动
HdfIoServiceBind
2022-03-21 16:29:40
浏览
1
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
Pulman
2

楼主可以参考开源代码进行二次开发:https://gitee.com/organizations/openharmony/projects

分享
微博
QQ
微信
回复1
2022-03-25 15:35:41
lrf19930506
2

已经解决了,是权限检测函数VfsPermissionCheck没通过,临时解决方法是强制让这个函数返回成功

分享
微博
QQ
微信
回复
2022-03-30 20:34:40
相关问题
openHarmony js如何调用http/https接口
1794浏览 • 0回复 待解决
服务卡片如何通过java端跳转到js端?
2206浏览 • 1回复 待解决
有没有调用日历的接口?
4414浏览 • 1回复 待解决
js 中 class类名动态绑定的问题?
4716浏览 • 1回复 待解决
使用OkHttp访问本地接口失败
7840浏览 • 2回复 待解决
HarmonyOS如何调用http/https接口?
8287浏览 • 3回复 已解决
鸿蒙JS开发 接口请求loading??
4577浏览 • 1回复 已解决
如何通过JS动态引入页面?
783浏览 • 1回复 待解决
ACE ENGINE是否需要MMU的支持?
5416浏览 • 1回复 待解决
javaUI 中webview通过布局创建实例失败
3835浏览 • 1回复 待解决
HDF层驱动和linux原生驱动
1892浏览 • 1回复 待解决
Js 荣耀手机get请求失败
3602浏览 • 1回复 待解决