Мой скрипт PHP-сервера соединяется с оборудованием по RS232, поэтому только один запрос даст действительный отзыв. Как я могу убедиться, что отправляется только один запрос, как очередь?
Таймер вызывает обе функции, поэтому я вижу на сайте сервера 2 одновременных запроса.
private void deviceGetActualVolume() {
if (isOnline()) {
RestAdapter adapter = new RestAdapter.Builder()
//.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(deviceIp)
.build();
deviceAPI api = adapter.create(deviceAPI.class);
api.GetActualVolume(new Callback<deviceResponse>() {
@Override
public void success(deviceResponse device_response, Response response) {
if (!device_response.isOk()) {
Toast.makeText(MainActivity.this, "Command Error", Toast.LENGTH_LONG).show();
} else {
UpdateActualValue(0, device_response.getActualvolume());
}
}
@Override
public void failure(RetrofitError retrofitError) { Toast.makeText(MainActivity.this, "deviceGetActualVolume Failure", Toast.LENGTH_LONG).show(); }
});
} else { Toast.makeText(MainActivity.this, getString(R.string.notconnected), Toast.LENGTH_LONG).show(); }
}
private void deviceGetScale() {
if (isOnline()) {
RestAdapter adapter = new RestAdapter.Builder()
//.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(deviceIp)
.build();
deviceAPI api = adapter.create(deviceAPI.class);
api.GetScaleValue(new Callback<deviceResponse>() {
@Override
public void success(deviceResponse device_response, Response response) {
if (!device_response.isOk()) {
Toast.makeText(MainActivity.this, "Command Error", Toast.LENGTH_LONG).show();
} else {
UpdateScaleValue(device_response.getScale());
}
}
@Override
public void failure(RetrofitError retrofitError) {
Toast.makeText(MainActivity.this, "deviceGetScale Failure", Toast.LENGTH_LONG).show();
}
});
} else { Toast.makeText(MainActivity.this, getString(R.string.notconnected), Toast.LENGTH_LONG).show(); }
}
Это невозможно с модернизацией и не правильным способом.
Решение состояло в том, чтобы написать единственное фоновое приложение для связи по RS232 с командой get, переменной memcached.
Memcached записывается и читается прибывающим компонентом php.
Других решений пока нет …