-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Maratonline edited this page Nov 19, 2020
·
9 revisions
Библиотека реализован протокол для общения с прибором учета Мер200 все методы для взаимодействия реализованы в классе CommandLogic данный класс имплементирует интерфейс IMercCon200 в котором всего три метода:
/**
* Установить новый сетевой адрес счетчика по серийнику.
* @param serial Серийный номер счетчика
* @param serial Серийный номер счетчика
* @return Результат выполнения
*/
Decryptor resetMercInetAddress(@NonNull String serial);
/** * Пытается соедениться с прибора * учета по номеру квартиры или серийному номеру. * В случаи успеха становить новый сетевой адрес счетчика. * @param serial Серийный номер счетчика * @param appartment Квартира * @return Результат выполнения */ Decryptor resetMercInetAddress(@Nullable String serial, @NonNull String appartment);
/**
* Пытаеться соедениться с прибора
* учета по конкретному сетевому адресу (подходить если известен сетевой адрес ПУ)ю
* В случаи успеха становить новый сетевой адрес счетчика.
* @param serial Серийный номер счетчика
* @param appartment Квартира
* @return Результат выполнения
*/
Decryptor resetMercInetAddressManual(@NonNull String inetAddress);
Объект Decryptor парсит ответ от прибора учета и содержит три основных метода:
/**
* значения Enum:
* CORRECT,
* UNCORRECT,
* NOT_CONNECTION,
* @return Enum MeterAnswerStatus
*/
MeterAnswerStatus getAnswerStatus();
/**
* Полученный серийный номер ПУ, с проверкой запроса.
* @return -1 - если ответа нет, серийник - если все верно
*/
int getSerial();
/**
* @return byte[] полный ответ от ПУ
*/
byte[] getFullAnswer();
Example:
@Override
protected Object doInBackground(Object[] objects) {
IMercCon200 iMercCon200 = new CommandLogic(activity);
decryptor = iMercCon200.resetMercInetAddress(serial, appartment);
switch (decryptor.getAnswerStatus()){
case CORRECT:{
metersAnswer = String.valueOf(decryptor.getSerial());
fullAnswer = bytesToHex(decryptor.getFullAnswer());
Toast.makeText(this, "АДРЕС СЧЕТЧИКА ПЕРЕПРОГРАММИРОВАН ЕГО №" + metersAnswer, Toast.LENGTH_LONG).show();
break;
}
case UNCORRECT:{
fullAnswer = bytesToHex(decryptor.getFullAnswer());
condition = 2;
Toast.makeText(this, "АДРЕС СЧЕТЧИКА НЕ ПЕРЕПРОГРАММИРОВАН", Toast.LENGTH_LONG).show();
}
case NOT_CONNECTION:{
Toast.makeText(this, "НЕ УДАЛОСЬ УСТАНОВИТЬ СОЕДИНЕНИЕ", Toast.LENGTH_LONG).show();
}
}
return null;
}