鸿蒙full_sdk使用指南-1.full_sdk安装 原创 精华

虹喵小仙女
发布于 2023-6-17 16:17
浏览
1收藏

原文链接:链接
本篇基于openharmony3.2R

public-SDK是提供给应用开发的工具包,跟随DevEco Studio下载,不包含系统应用所需要的高权限API

full-SDK是提供给OEM厂商开发应用的工具包,不能随DevEco Studio下载,包含了系统应用所需要的高权限API

准备环境

1.下载openharnony代码开启docker环境

2.在源码目录执行编译命令

./build.sh --product-name ohos-sdk
  • 1.

编译可能会出现下面多个缺少文件报错,需要安装dev包

# dev包安装总和
apt install libxcursor-dev libxrandr-dev libxinerama-dev
  • 1.
  • 2.

下面是报错分开记录,上面的总和包安装完成后应该没问题了

如果出现

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

请执行下面这个命令安装libxcursor-dev

apt install libxcursor-dev
  • 1.

如果出现

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

请执行下面这个命令安装

apt-get install libxrandr-dev
  • 1.

如果出现

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

请执行下面这个命令安装

apt-get install libxinerama-dev
  • 1.

3.编译成功后导出out/sdk/packages/ohos-sdk/目录下的文件即可

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

替换文件

解压文件得到ets文件夹

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

复制到原本的文件夹

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

3.x.x.x\build-tools\ets-loader目录中打开cmd/powerShell窗口,输入命令npm install下载node_modules依赖包

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

测试是否成功

在build-profile.json5中注意下runtimeOS参数需要和SDK目录对应

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

鸿蒙full_sdk使用指南-1.full_sdk安装-鸿蒙开发者社区

接下来是凑字数内容

分享一个modbus.c

#include <modbus/modbus.h>
#include <modbus/test_main.h>
#include "hilog/log.h"

modbus_t *ctx;
uint16_t *tab_rp_registers;

int modbusInitConnect(void){
    ctx = modbus_new_tcp("192.168.137.1", 502);
    modbus_set_debug(ctx, TRUE);
    if (modbus_connect(ctx) == -1) {
        OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus CONNECT]Connected ERROR");
        modbus_free(ctx);
        return -1;
    }
    
    //判断modbus连接是否成功
    if (modbus_connect(ctx) == -1) {
        OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus CONNECT]Connection failed");
        modbus_free(ctx);
        return -1;
    }
    
    int rc = modbus_set_slave(ctx, 0x01);   
    if (rc == -1) {
        OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus CONNECT]Invalid slave ID");
        modbus_free(ctx);
        return -1;
    }    
    
    
    modbus_set_response_timeout(ctx,666,0);
    
    OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus CONNECT]Connected OK");
    
    return 1;
}

float modbus_main(void){
    
//    int regs = modbus_read_input_registers(ctx, 0, 1, tab_reg); //读取传感器数值
    
    tab_rp_registers = (uint16_t *) malloc(2 * sizeof(uint16_t));
    memset(tab_rp_registers, 0, 2 * sizeof(uint16_t));
    
    int regs = modbus_read_registers(ctx, 0, 2, tab_rp_registers);

    
    float aa = modbus_get_float_abcd(tab_rp_registers);
    
    
    
    OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus]%{public}d",regs);
    OH_LOG_Print(LOG_APP, LOG_INFO, 0xFF00, "Modbus", "[Modbus]%{public}f",aa);
    
//        rc = modbus_read_input_registers(ctx,0,1, tab_reg);
////        if (rc == -1) {
////        fprintf(stderr, "%s error-test\n", modbus_strerror(errno));
////        return -1;
    

    
    return aa;
}


  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2023-6-17 21:36:31修改
2
收藏 1
回复
举报
2
1
1
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

使用full-SDK感觉需要更多过硬的知识


回复
2023-6-17 19:47:59


回复
    相关推荐