2017-01-12 3 views
0

У меня возникла небольшая проблема с некоторым устаревшим кодом из системы управления 2016 года. Я пытаюсь контролировать плату adis16448 с this library , которая скомпилирована в 2016 году wpilibj, но не компилируется в версии 2017 года. Теперь я бы хотел, чтобы это быстро и быстро работало, не дожидаясь, пока разработчик обновится, и на самом деле есть только две ошибки. Соответствующий код здесь:Что такое метод замены wpilibj 2017 для initDigitalPort?

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

Во-первых, что InterruptSource класс имеет некоторые нереализованные методы из родительского класса. Я просто добавил для них пустые определения, и эта ошибка явно исчезла. Далее следует, что метод initDigitalPort не определен из родительского класса. Это та часть, за которую я застрял.

После изучения API Javadoc, исходного кода на github и контекста этого кода, я все еще не могу понять, что это делает или как его исправить. Я предполагаю, что это было обесценено в библиотеке wpilibj 2017 года.

Вопрос в том, что является методом замены для initDigitalPort?

Простите меня за все, что я пропустил, мы - новая команда FRC, поэтому у нас есть 0 опыт использования wpilibj.

Кроме того, это может помочь, если я понял, что на самом деле делает класс DigitalSource, похоже, он включает кодировщики, но это не может быть прав, поскольку на этой доске нет ни одного. Может ли кто-нибудь объяснить это мне?

Спасибо, помощь очень оценена!

ответ

0

Данная библиотека была обновлена ​​с this commit. Новый класс называется DigitalInput, а метод initDigitalPort вызывается в конструкторе этого класса, которому задан параметр для порта.

Пример:

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

может быть subsituted с

DigitalInput m_interrupt = new DigitalInput(10) 

и обеспечивают почти такую ​​же функциональность в том числе структуры и методов класса.

-1
private static class InterruptSource extends DigitalInput { 
     public InterruptSource(int channel) { 
      super(channel); 
     } 
     } 
+3

Добро пожаловать в SO Matt, я уже пришел к этому и дал ответ об этом. Пожалуйста, не отправляйте дубликаты. –