1 Star 2 Fork 2

侯坤林 / WiringPi-Java

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 5.42 KB
一键复制 编辑 原始数据 按行查看 历史

Java CI

WiringPi-Java

WiringPi的Java版本,通过Java-JNI调用WiringPi库。

  • com.wiringpi.jni JNI所在包,包含了Java调用WiringPinative方法,目前实现了常用的WiringPiSoftPwmSoftToneWiringPiI2C
  • com.wiringpi.pin 树莓派引脚的对应关系,当前已预设物理引脚、WiringPi引脚、BCM引脚的映射关系
  • com.wiringpi.gpio 通过引脚创建一个GPIO对象,对象中涵盖了该引脚的大多数操作(省去调用WiringPi时传入pin参数操作)

JNI中尽量的保留了与WiringPi一致的调用方式,力求可以很容易的把C语言版本的代码移植到Java中运行。

com.wiringpi.jni.WiringPiSetup 对象中涵盖了 WiringPi 初始化的几个函数。

com.wiringpi.jni.WiringPi 对象中涵盖了 WiringPi 中所有的函数,其调用方式基本上与原生的 WiringPi 调用方式一致。

示例

初始化一个引脚

当使用 wiringPiSetup() 初始化WiringPi时,使用BcmPinWiringPiPinPhysPin都会自动使用WiringPi的引脚。

目前支持在使用wiringPiSetup()wiringPiSetupPhys()初始化时,会自动转换成WiringPi引脚或者物理引脚。

详细代码请看 com.wiringpi.pin.IPin#pin(com.wiringpi.pin.IPin)

image-20200225105901335

// 在使用 wiringPiSetup() 或 wiringPiSetupPhys() 初始化时,下面四种初始化引脚都将指向同一个物理引脚,里面都包含了名称引脚到物理引脚的映射关系。
Gpio gpio;
gpio = BcmPin.p17.gpio();
gpio = WiringPiPin.p00.gpio();
gpio = PhysPin.p11.gpio();
gpio = NamePin.GPIO_0.gpio();
// 以上四种将会先把该类型pin值转换成物理pin值,再由物理pin值转换成目标类型的pin值。
// 例如BcmPin.p17的转换过程:BcmPin.p17 -> 物理引脚11 -> WiringPi引脚0

设置引脚模式

Gpio gpio;
gpio = BcmPin.p17.gpio();
gpio.pinMode(com.wiringpi.pin.modes.PinMode.OUTPUT);
// 或者
WiringPi.pinMode(gpio.getPin(), com.wiringpi.jni.modes.PinModes.OUTPUT);
// 其中 com.wiringpi.jni.modes.PinModes.OUTPUT 是一个常量,其值为1
// 而 PinMode.OUTPUT 是一个枚举,其 PinMode.OUTPUT.value() 将返回对应的值1

从 jitpack 仓库中引用包

在项目 pom.xml 文件中添加代码:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

在项目 pom.xml 文件中添加依赖代码:

<!-- Master 版本 -->
<dependency>
  <groupId>com.github.houkunlin</groupId>
  <artifactId>WiringPi-Java</artifactId>
  <version>master</version>
</dependency>

<!-- 或者快照版本 -->
<dependency>
  <groupId>com.github.houkunlin</groupId>
  <artifactId>WiringPi-Java</artifactId>
  <version>master-SNAPSHOT</version>
</dependency>

[GitHub Packages] How to use the package?

@Deprecated

It is not recommended to use this method to introduce dependencies.

The Package list

Configuring Apache Maven for use with GitHub Packages

Update ~/.m2/settings.xml add server settings. Create Github Token select read:packages scopes.

In ~/.m2/settings.xml file add code:

<servers>
    <server>
        <id>github</id>
        <username>Your Github Username</username>
        <password>Github Token of has `read:packages` scopes</password>
    </server>
</servers>

In project pom.xml file add code:

<repositories>
    <repository>
        <id>github</id>
        <name>GitHub OWNER Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/houkunlin/WiringPi-Java</url>
    </repository>
</repositories>

And in project pom.xml file add code:

<!-- https://github.com/houkunlin/WiringPi-Java/packages -->
<dependency>
  <groupId>com.github.houkunlin</groupId>
  <artifactId>WiringPi-Java</artifactId>
  <version>1.0-snapshot</version>
</dependency>

[GitHub Packages] 如何使用这个Maven包?

被废弃。

不建议使用该种方式引入依赖。

修改 ~/.m2/settings.xml 文件添加 server 设置。 创建 Github Token 选中 read:packages 范围.

~/.m2/settings.xml 文件中添加代码:

<servers>
    <server>
        <id>github</id>
        <username>你的 Github 用户名</username>
        <password>Github Token 需要有 `read:packages` 范围</password>
    </server>
</servers>

在项目 pom.xml 文件中添加代码:

<repositories>
    <repository>
        <id>github</id>
        <name>GitHub OWNER Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/houkunlin/WiringPi-Java</url>
    </repository>
</repositories>

在项目 pom.xml 文件中添加依赖代码:

<!-- 版本列表请看: https://github.com/houkunlin/WiringPi-Java/packages -->
<dependency>
  <groupId>com.github.houkunlin</groupId>
  <artifactId>WiringPi-Java</artifactId>
  <version>1.0-snapshot</version>
</dependency>
1
https://gitee.com/houkunlin/WiringPi-Java.git
git@gitee.com:houkunlin/WiringPi-Java.git
houkunlin
WiringPi-Java
WiringPi-Java
master

搜索帮助