我对2016款控制系统的一些遗留代码产生了一些问题。我试图用this library控制adis16448电路板 它在2016年的wpilibj中编译得很好,但在2017版本中没有编译。现在,我想快速启动并运行,而不必等待开发人员更新,实际上只有两个错误。 相关代码:
private static class InterruptSource extends DigitalSource {
public InterruptSource(int channel) {
initDigitalPort(channel, true);
}
}
首先,InterruptSource
类有一些来自父类的未实现方法。我刚刚为这些添加了空定义,这个错误显然已经消失了。接下来是没有从父类定义方法initDigitalPort
。这是我被困住的部分。
在检查API Javadoc,github上的源代码以及此代码的上下文后,我仍然无法弄清楚这是做什么或如何解决它。我猜这个已经在2017年的wpilibj库中被折旧了。
我的问题是,initDigitalPort的替换方法是什么?
请原谅我,我忽视了一些简单的事情,我们是一个新的FRC团队,所以我们有0次使用wpilibj的经验。
此外,如果我理解DigitalSource类实际上做了什么,它可能会有所帮助,它似乎涉及编码器,但由于这个板没有,所以它不对。有人可以向我解释一下吗?
谢谢,帮助很大![/ p>
答案 0 :(得分:0)
有问题的图书馆现已更新为this commit。新类称为DigitalInput
,并且在此类的构造函数中调用initDigitalPort
方法,该方法为端口提供参数。
<强>实施例强>
public InterruptSource(int channel) {
initDigitalPort(channel, true);
}
可以用
取代DigitalInput m_interrupt = new DigitalInput(10)
并将提供几乎相同的功能,包括类结构和方法。
答案 1 :(得分:-1)
private static class InterruptSource extends DigitalInput {
public InterruptSource(int channel) {
super(channel);
}
}