initDigitalPort 的 wpilibj 2017 替换方法是什么?

What is wpilibj 2017 replacement method for initDigitalPort?

我遇到了一些来自 2016 年控制系统的遗留代码的小问题。我正在尝试使用 this library 控制 adis16448 板 在 2016 wpilibj 中编译良好,但在 2017 版本中无法编译。现在,我想快速启动并 运行 而不必等待开发人员更新,实际上只有两个错误。 相关代码在这里:

private static class InterruptSource extends DigitalSource {
    public InterruptSource(int channel) {
      initDigitalPort(channel, true);
    }
}

首先是 InterruptSource class 有一些来自父 class 的未实现的方法。我只是为这些添加了空定义,那个错误显然消失了。接下来是方法 initDigitalPort 不是从父 class 定义的。这是我卡住的部分。

检查 API Javadoc、github 上的源代码以及这段代码的上下文后,我似乎仍然无法弄清楚它的作用或如何修复它.我猜这在 2017 wpilibj 库中已经贬值了。

我的问题是,initDigitalPort的替换方法是什么?

请原谅我忽略了任何简单的事情,我们是一个新的 FRC 团队,所以我们使用 wpilibj 的经验为 0。

此外,如果我了解 DigitalSource class 的实际作用,它可能会有所帮助,它似乎涉及编码器,但这不可能是正确的,因为该板有 none。有人可以给我解释一下吗?

谢谢,非常感谢帮助!

相关库现已更新至 this commit。新的 class 被称为 DigitalInput 并且 initDigitalPort 方法在这个 class 的构造函数中被调用,它被赋予了端口的参数。

例如:

public InterruptSource(int channel) {
       initDigitalPort(channel, true);
}

可以替换为

DigitalInput m_interrupt = new DigitalInput(10)

并将提供几乎相同的功能,包括 class 结构和方法。

  private static class InterruptSource extends DigitalInput {
        public InterruptSource(int channel) {
            super(channel);
        }
      }