跳转至

示例工程使用指南

说明

WeconAppDemo 是一个用于展示 WECON Android SDK 应用场景的演示项目。

该项目整合了系统签名文件(Keystore)和 SCL JNI 原生库,并提供了一系列典型功能示例。这些示例旨在为开发者提供直观的参考,帮助理解 SDK 的结构、接口调用方式及通信机制,从而在实际项目中更加高效地完成集成与开发。

1.简介

1.1 概述

WECON_Android 示例工程(WeconAppDemo) 是基于 WECON Android SDK 构建的官方示例项目,用于演示以下核心能力:

①: 硬件通信功能。包括蜂鸣器控制、CAN 总线通信、RS485 串口通信等;

②: SDK 接口调用流程。演示如何使用 SDK 提供的标准 API 实现设备交互;

③: 系统集成示例。展示系统签名文件与 JNI 库在 Android 工程中的集成方式;

④: 开发指导作用。为二次开发提供代码示例和项目结构参考。

通过运行本示例工程,开发者可快速了解 SDK 的使用方式,掌握与 WECON 设备通信的基本流程,验证 SDK 的可行性和功能完整性。

1.2 示例工程结构

1.2.1 示例工程的主要目录结构

WeconAppDemo/
├── app/                               ← 主应用模块
│   ├── src/main/java/com/example/weconappdemo   ← 示例源代码
│   │    ├── BeepDemo.java             ← BeepDemo 模块(蜂鸣器控制)
│   │    ├── CanDemo.java              ← CanDemo 模块(CAN 总线通信)
│   │    └── RS485Demo.java            ← RS485Demo 模块(串口通信)
│   ├── libs/                          ← 依赖库
│   │       ├── scl.aar
│   ├── wecon.keystore                 ← 签名文件
├── gradle/                            ← Gradle 构建脚本
├── build.gradle
└── settings.gradle

1.2.2 各 Demo 模块功能定位

位置:GeneralAndroidSdk\WeconAppDemo\app\src\main\java\com\example\weconappdemo

模块名称 功能说明 演示目的
BeepDemo 蜂鸣器控制演示 展示如何通过 SDK 控制设备蜂鸣器的开关操作
CanDemo CAN 总线通信演示 演示 CAN 接口的数据发送与接收流程
RS485Demo 串口通信演示 展示通过 RS485 接口进行数据传输与回读的示例

每个模块均可独立运行,开发者可根据自身需求选择对应功能模块进行参考或扩展。

1.3 运行环境要求

1.3.1 硬件环境

项目 要求
测试设备 支持 CAN 或 RS485 接口的安卓设备
连接方式 USB、网络连接
PC 设备 Windows 10 / 11 系统,安装 Android Studio

1.3.2 软件环境

项目 最低要求
Android Studio 版本 Arctic Fox (2020.3.1) 或更高
Gradle 版本 7.0 或以上
Android SDK 编译版本 API Level 33(Android 13)
最低兼容版本 API Level 23(Android 6.0)
Java 版本 JDK 8 或更高
Kotlin 支持 可选,兼容 Kotlin 1.6+
权限要求 INTERNET、ACCESS_NETWORK_STATE、READ/WRITE_EXTERNAL_STORAGE

二、准备工作

2.1 获取示例工程

从 GeneralAndroidSdk 包中获取 WeconAppDemo 文件夹

方式 1:百度网盘下载

资源名称 下载路径 网盘密码
工具包(含 SDK) https://pan.baidu.com/s/1E6cFgseVNxdK_rRVSmBHcQ i2q7

方式 2:服务器下载

资源名称 下载路径
工具包(含 SDK) http://192.168.11.128:5000/fbdownload/general_sdk?k=7EllfeIv&stdhtml=true

2.2 安装开发环境

资源名称 下载路径
Android Studio https://developer.android.com/studio?hl=zh-cn

2.3 导入工程

通过 Android Studio 打开或导入工程

2.4 Logcat 使用

Android Studio 左下角的拓展工具栏中,喵咪图标对应的工具是 LogcatLogcat是一个重要的调试工具,用于查看设备或模拟器运行时的日志信息,帮助开发者快速定位问题、排查错误和优化代码。同时,通过在过滤器中设置package:mine字段,可以轻松筛选出我们项目所产生的日志。

三. 运行步骤

①:成功打开WeconAppDemo 文件夹后,可以在app/java/com.example.weconappdemo路径下,可以看到蜂鸣器、CAN、串口的演示Demo

②:选择要运行演示Demo,请点击Demo中的“运行按钮”(绿色箭头图标)启动程序。

③:成功运行后,即可在Logcat中查看Demo产生的日志。

四、Demo 功能说明

本示例工程包含三个核心功能演示模块,分别为 BeepDemoCanDemoRS485Demo

每个模块均独立演示了 SDK 在不同通信场景下的应用方法,帮助开发者快速理解接口调用逻辑与设备交互流程。

4.1 BeepDemo(蜂鸣器控制演示)

BeepDemo 是一个演示如何使用蜂鸣器的示例程序。
该模块通过调用 Beep 类的方法,演示蜂鸣器的频率设置、音量控制及启停逻辑。

4.1.1 功能说明

BeepDemo 主要实现以下功能:

①:设置蜂鸣器频率(例如:1000 Hz)。

②:设置蜂鸣器音量(例如:0.5,范围 0~1)。

③:启用蜂鸣器并持续发声 2 秒后自动关闭。

4.1.2 功能逻辑说明

应用启动后,用户可通过界面按钮触发蜂鸣器工作流程,系统调用底层 Beep 类的接口完成控制。
运行期间蜂鸣器状态将通过 Logcat 输出,便于开发者观察实际效果。

4.1.3 典型调用示例

Beep beep = new Beep();
beep.setFrequency(1000);
beep.setVolume(0.5f);
beep.start();
Thread.sleep(2000);
beep.stop();

4.2 CanDemo(CAN 通信演示)

CanDemo 是一个用于演示 CAN 总线通信 的示例程序。
该模块通过 SocketCan 类实现 CAN 接口的初始化、数据发送与接收,并提供实时日志输出。

4.2.1 功能说明

CanDemo 主要实现以下功能:

①:初始化 CAN 接口。

自动关闭已打开的接口;

设置波特率(例如:250000);

打开指定 CAN 接口。

②:发送测试 CAN 帧,验证数据发送功能。

③:持续接收 CAN 帧:启动独立线程实时读取 CAN 帧,并将接收数据输出到 Android Logcat。

4.2.2 功能逻辑说明

运行后,程序会在后台启动一个监听线程,不断从 CAN 总线读取数据帧;
用户可通过界面按钮触发“发送帧”操作,并在日志中查看通信结果。

4.2.3 典型调用示例

SocketCan can = new SocketCan();
can.close();
can.open("can0", 250000);
can.sendTestFrame();
can.startReadThread();

4.3 RS485Demo(串口通信演示)

RS485Demo 是一个用于演示 RS485 主从通信 的 Android 示例程序。
该示例利用设备的两个串口,模拟 RS485 主从交互流程,适用于验证串口驱动、电平转换模块以及数据一致性。

4.3.1 功能说明

RS485Demo 通过 RS485Demo 类实现以下核心功能:

①:打开两个指定串口(如 /dev/ttyS7/dev/ttyS4),分别作为主站与从站;

②:配置串口参数:波特率(如 115200)、数据位(8)、停止位(1)、无校验;

③:主站发送测试字符串"RS485_TEST"

④:从站接收主站数据 并 原样回发;

⑤:主站接收从站回发数据,并对比验证数据一致性;

⑥:所有通信过程信息均通过 Android Logcat 输出,便于调试与记录。

4.3.2 功能逻辑说明

当 Demo 启动后,程序会依次打开主站与从站串口。
主站发送字符串后,从站接收并回传;主站验证回传内容是否一致。
该过程自动执行,无需用户干预。

4.3.3 设备接口说明

在当前 Android 机型中,RS485 通信端口对应关系如下:

COM 口 设备路径 引脚定义
COM3 /dev/ttyS7 A、B 分别对应引脚 1、6
COM4 /dev/ttyS4 A、B 分别对应引脚 1、6

4.3.4 典型调用示例

RS485Demo demo = new RS485Demo();
demo.openPorts("/dev/ttyS7", "/dev/ttyS4", 115200, 8, 1, 'N');
demo.startTest("RS485_TEST");