鸿蒙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
下面是报错分开记录,上面的总和包安装完成后应该没问题了
如果出现
请执行下面这个命令安装libxcursor-dev
apt install libxcursor-dev
如果出现
请执行下面这个命令安装
apt-get install libxrandr-dev
如果出现
请执行下面这个命令安装
apt-get install libxinerama-dev
3.编译成功后导出out/sdk/packages/ohos-sdk/目录下的文件即可
替换文件
解压文件得到ets文件夹
复制到原本的文件夹
在3.x.x.x\build-tools\ets-loader
目录中打开cmd/powerShell窗口,输入命令npm install
下载node_modules依赖包
测试是否成功
在build-profile.json5中注意下runtimeOS参数需要和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
回复
相关推荐
使用full-SDK感觉需要更多过硬的知识