Есть класс Response.java который принимает массив байт от контролера.
В нем же я разбираю нужный мне ответ, и передаю данные в Активити для отображения.
public class Response {
private Response(byte[] data) {
// Работа со статусом
if (data.length==96){
// Определяем состояния двигателя
for (int i = 0; i < 8; i++) { //для первых 8-ми
if(data[i+8] != 0){
getEngineDanger(i);
continue;
}
if(isSet(data[3], i)){
getEngineStarted(i); //если стартовала (тру)
}else {
getEngineStopped(i);
}
}
}
}
// Передаем состояние по двигателям
public int getEngineDanger(int i){return i;} // Двигатель в аварии
public int getEngineStarted(int i){return i;} // Двигатель в работе
public int getEngineStopped(int i){return i;} //Двигатель выключен
// Побитовое смещение, определяем включен ли двигатель (Возращает boolean значение)
static boolean isSet(byte value, int bit){
return (value&(1<<bit))!=0;
}
В MainActivity.java я же должен получить
i с getEngineDanger, getEngineStarted и getEngineStopped
@Override
public void onRead(Response response) {
setEngineButtonStarted(response.getEngineStarted());
}
Но вот беда в том что я не знаю как мне принять нужные данные так как я должен с MainActivity передать данные в Response (к примеру в setEngineButtonStarted) он мне их же и вернет.
Как быть в данной ситуации, как мне только лишь получать данные в активити ?