鸿蒙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

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

# dev包安装总和
apt install libxcursor-dev libxrandr-dev libxinerama-dev

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

如果出现

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

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

apt install libxcursor-dev

如果出现

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

请执行下面这个命令安装

apt-get install libxrandr-dev

如果出现

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

请执行下面这个命令安装

apt-get install libxinerama-dev

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;
}


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

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


回复
2023-6-17 19:47:59
回复
    相关推荐