harmonyOS的电脑界面,HarmonyOS应用开发

首页 > 科技 > 软件 > 正文
2021-06-02

发表自话题:HarmonyOS 2

一、介绍

本篇将实现的内容

通过本活动,您将能够使用我们的DevEco Device Tool完成摄像头设备的开发。达到以下效果:在使用华为手机畅联通话的过程中,可以将开发板摄像头虚拟化为手机的摄像头,在手机上展示摄像头设备拍摄到的画面

您将会学到什么

如何通过HPM包管理器获取基于HarmonyOS的具有设备虚拟化能力的摄像头解决方案工程。 使用DevEco Device

Tool开发环境完成代码开发、代码安全检查、编译、调试、烧录全流程。

二、您需要什么

1. 硬件要求

H3518EV300+H3861WiFi模组的开发板、配套摄像头

华为手机(EMUI 10.1)

PC电脑

2. 软件要求

VS Code。

DevEco Device Tool插件。

3. 需要的知识点

硬件基础开发能力

C语言基础能力

提示:所有软硬件环境已经在CodeLab现场为大家准备好了

三、能力接入准备(可选)

参考文档第"3 环境搭建"

上述环境在CodeLab现场已经为大家准备好。

四、Codelabs操作步骤(1、2、3···)

1. 访问站点https://hpm.cbg.huawei.com/#/home,如下图

2. 点击"直接下载"获取到文件"xxx.zip",如果没有登录,会弹出登录页面,输入用户名,密码。Codelab现场已经登录。

3. 打开vscode编辑器,找到"Welcome页面->Create Project" 如下图

在插件welcome首页,选择Import Project按钮

出现下面的窗口,选择源码路径,点击Import:

导入源码后的窗口,左边栏会显示源码的目录结构:

4. 点击

打开TERMINAL窗口,如下图:

5. 在TERMINAL窗口中,输入命令hpm install,如下图:

6. hpm install命令行执行完毕,源码工程就准备就绪了。

7. 代码片段

Camera虚拟化接口适配,此类接口用于定义DV Engine对智能设备Camera硬件的调用接口,智能设备厂商需实现对应的libdmsdpcamerahandler.so。如果智能设备厂商不具备Camera硬件或者不需要将Camera硬件虚拟化,不需要关注此接口,默认不实现此so即可。下面为实现功能前的部分接口代码,所属文件为\vendor\hisi\camera\dvkit_product\sample\ohos3518ev300\dvkit\dvkit_camera\dmsdp_camera_sdk.c:

将OpenCamera接口函数补充完整,就可以实现camera的虚拟化功能,代码如下:

int32_t OpenCamera(const DMSDPCameraParam *param)

{

if (param == NULL) {

return DMSDP_ERR_INVALID_PARAMETER;

}

if (!IsCameraIdValid(param->id, param->idLen)) {

LOGD("OpenCamera camera id invalid");

return DMSDP_ERR_INVALID_PARAMETER;

}

LOGD("OpenCamera sdk camera=%s,width=%d,height=%d,fps=%d,dataType=%d", param->id, param->width, param->height,

param->fps, param->dataFormat);

int32_t ret = VideoStartPIPE(param->dataFormat);

return ret;

}

代码目录如下:

上述代码会被编进应用程序sample_dvkit中,该应用程序在板子的/bin/目录下,见下图:

8. 安全检查

选择需要安全检查的代码目录,右键:code check

点击错误项,跳转到对应文件的对应代码行数

9. HarmonyOS Demo源码Linux编译

通过"Terminal""New Terminal"打开终端窗口,其中

方框1表示新建终端窗口按钮;

方框2表示打开终端窗口后的界面;

方框3,通过SSH连接Linux机器,并输入Linux机器的账号和IP地址:ssh –p22 root@10.30.237.175;

方框4,输入Linux机器的密码N6O%sUFoXBD!,,成功连上Linux机器;

由于编译代码需要root权限,如果使用其它非root账号连接Linux机器,这需要在终端中输入sudo su命令切换成root账号或者将源码文件夹设置权限为777;

接下来的操作均是在下方的终端工具中,完全是等同Linux机器下的操作,如编译的话,则进入源码路径,输入编译脚本即可;

其中编译脚本命令为python build.py ipcamera -p hi3518ev300_liteos_a -b debug,见下图:

成功编译完成如下图:

编译出的结果在out目录下,有三个需要烧录的文件OHOS_Image.bin、rootfs.img、userfs.img,一个可以调试的可执行程序OHOS_Image如下图:

如果非首次编译,并且未改动内核代码,文件OHOS_Image.bin和OHOS_Image可能需要去如下目录下:

\vendor\hisi\hi35xx\hi35xx_init\hi3518ev300

u-boot-hi3518ev300.bin的路径为:

./vendor/hisi/camera/hi3518ev300/Hi3516EV200_SDK_V6.0.0.1_B010/osdrv/pub/u-boot-hi3518ev300.bin

10. HarmonyOS源码烧录

目前烧录方法主要是USB烧录:

USB烧录具体步骤如下:

打开插件,找到方框1的按钮Configure,左键点击;

弹出的窗口,找到方框2的按钮Burn,左键点击;

右侧窗口找Burning Mode选择usbport;

下方的Dependent Tools的依赖文件,需要选择依赖文件的存放目录HiBurnCmdLine-v5.3.30,依赖文件单独提供,搭建vscode环境时提供;

在窗口下方的Burn Files中选择待烧录的三文件路径,分别是u-boot-hi3518ev300.bin(单独提供,不需要编译生成)、OHOS_Image.bin(在编译OHOS源码时生成,在out目录下,上面的编译源码已经提及)、rootfs.img(在编译OHOS源码时生成,在out目录下,上面的编译源码已经提及)、userfs.img(在编译OHOS源码时生成,在out目录下,上面的编译源码已经提及),烧录的起始地址如下图所示,最后点击保存按钮,USB烧录的配置完成,其中下图1对应的u-boot-hi3518ev300.bin,2对应的是OHOS_Image.bin,3对应的是rootfs.img,4对应的是userfs.img:

如下图,先点击下方的Burn按钮,会弹出选择串口的打印,输入开发板对应的串口号

出现下图,需要插拔下电源:

显示擦除完uboot后如果提醒还需要重新插拔下电源,则需要插拔下电源开关,log为Please power off and restart the board within 15 seconds如下:

下图显示正在烧录:

烧录完成:

烧录完成后,通过下方的串口功能,设置uboot的参数

setenv bootargs 'console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M'

setenv bootcmd 'sf probe 0;sf read 0x40000000 0x100000 0x600000;mw 0x112c0048 1a04 1;mw 0x112c004c 1004 1;mw 0x112c0064 1004 1;mw 0x112c0060 1004 1;mw 0x112c005c 1004 1;mw 0x112c0058 1004 1;mw 0x120C0020 0430 1;go 0x40000000'

saveenv

reset

最后出现下面的结果,则表示系统已经正常启动:

11. HarmonyOS源码单步调试

目前调试主要支持的是GDB调试,还有LLDB调试;

GDB调试:

通过"Configure"“Debug"打开调试配置页,然后将方框4中的调试类型选"openocd-debug-gdb”;

方框5表示GDB调试过程中需要依赖的软件名称、安装状态、配置路径;

方框6表示调试过程中经常涉及的一些参数设置,包括:

Executable File:内核文件,选择out目录下编译生成的内核文件,如liteos;

Symbol Files:应用程序符号表文件,请手动配置程序符号表文件所在路径;

OpenOCD Load Commands:OpenOCD加载命令,保持默认值"init"即可;

Set Substitute Path:当源码在Linux环境下进行编译,借助IDE进行烧录、调试时,请设置

映射路径,把Linux路径映射到Windows,格式参考提示

“set substitute-path {Linux路径} {映射的后的Windows路径}”;

Default Breakpoint Address:默认的断点位置,启动调试功能后,程序会自动在该位置停止;

Restart Commands:重启调试任务时,工具发给单板的命令,保持默认值即可;

Max Breakpoints:设置断点的最大数量(主要是硬件断点,不同的硬件可能存在差异),当用

户在调试过程中添加的断点数过多,可能导致调试功能崩溃;

12. HUAWEI DevEco Device Tool终端工具

IDE还集成了一些常用的工具,满足开发者不同的需求:

串口工具

当开发板链接PC时,通过点击Visual Studio Code最下面的状态栏中的"Serial",通过配置端口号、波特率、数据位、停止位串口参数,可以打开一个串口工具。通过串口工具可以执行一些常见的操作,包括:设置u-boot的环境参数、进入开发板中烧录的HarmonyOS系统、调试等。

五、恭喜你

到这里你已经完成了本次开发过程。您可以通过以下方式检验开发过程是否正确

请使用华为手机A,打开智慧生活APP,通过添加设备,把刚开发完成的智能设备添加到智慧生活APP中。

详细步骤如下:

a) 设备启动后,会默认启动一个AP等待手机连接,此时打开手机上的智慧生活APP,下图为智慧生活APP界面:

b)开始添加设备,点击右上角"+",“添加设备”,进行设备搜索,添加设备界面如下:

c)搜索设备,搜索设备界面如下:

d)搜索到的所要连接的设备后点击"连接",此时需要输入当前WiFi信息,输入WIFI SSID和密码后,点击"下一步"。 点击"确定"后开始连接。

e)连接后出现下面的界面,选择房间号,点击"完成",即完成了设备添加:

用另外一台手机的畅联通话APP拨打A手机。接通后,在A手机的屏幕左上角点击更多设备,可以发现开发完的智能设备,点击该设备,选择把摄像头虚拟化成A手机的外设,B手机视频通话能看到的界面切换成了智能设备拍摄到的画面。

具体步骤如下:

a)打开手机通话(EMUI11.0之前的版本)切换至畅联通话页或打开畅联通话APP(EMUI11.0及之后版本)如下图,输入被呼叫手机ID号,拨通畅联通话:

b)点击测试手机左上角虚拟化按键,进行搜索,如图搜索到"XX全景摄像头":

c)点击搜索到的设备,虚拟化摄像头成功:

【如果您想学习HarmonyOS 应用开发基础教程 请猛戳】

标签组:[软件] [文件目录] [程序调试] [应用开发] [编译程序] [源码] [手机电脑] [手机应用开发

上一篇HarmonyOS应用开发:从零开始开发鸿蒙应用

下一篇harmonyos 编译打包生成app,鸿蒙(HarmonyOS)App开发入门(2)

相关阅读

热门阅读