use of com.arbindo.mimock.manage.mimocks.models.v1.Status in project bmoth by hhu-stups.
the class ExplicitStateModelChecker method doModelCheck.
@Override
protected ModelCheckingResult doModelCheck() {
final int maxInitialStates = BMothPreferences.getIntPreference(BMothPreferences.IntPreference.MAX_INITIAL_STATE);
final int maxTransitions = BMothPreferences.getIntPreference(BMothPreferences.IntPreference.MAX_TRANSITIONS);
stateSpace = new StateSpace();
visited = new HashSet<>();
Queue<State> queue = new LinkedList<>();
// prepare initial states
BoolExpr initialValueConstraint = getMachineTranslator().getInitialValueConstraint();
Set<Model> models = finder.findSolutions(initialValueConstraint, maxInitialStates);
models.stream().map(this::getStateFromModel).filter(this::isUnknown).forEach(root -> {
stateSpace.addRootVertex(root);
queue.add(root);
});
final BoolExpr invariant = getMachineTranslator().getInvariantConstraint();
solver.add(invariant);
// create joint operations constraint and permanently add to separate
// solver
final BoolExpr operationsConstraint = getMachineTranslator().getCombinedOperationConstraint();
opSolver.add(operationsConstraint);
while (!isAborted() && !queue.isEmpty()) {
solver.push();
State current = queue.poll();
visited.add(current);
// apply current state - remains stored in solver for loop iteration
BoolExpr stateConstraint = current.getStateConstraint(getContext());
solver.add(stateConstraint);
// check invariant & state
Status check = solver.check();
switch(check) {
case UNKNOWN:
return createUnknown(visited.size(), solver.getReasonUnknown());
case UNSATISFIABLE:
return createCounterExampleFound(visited.size(), current, stateSpace);
case SATISFIABLE:
default:
}
// compute successors on separate finder
models = opFinder.findSolutions(stateConstraint, maxTransitions);
models.stream().map(this::getStateFromModel).forEach(successor -> {
if (isUnknown(successor)) {
stateSpace.addVertex(successor);
queue.add(successor);
}
stateSpace.addEdge(current, successor);
});
solver.pop();
}
if (isAborted()) {
return createAborted(visited.size());
} else {
ModelCheckingResult resultVerified = createVerified(visited.size(), stateSpace);
if (buechiAutomaton != null) {
// do ltl model check
labelStateSpace();
List<List<State>> cycles = new TarjanSimpleCycles<>(stateSpace).findSimpleCycles();
for (List<State> cycle : cycles) {
// if there is an accepting Buechi state in the cycle, a counterexample is found
for (State state : cycle) {
if (buechiAutomaton.isAcceptingSet(state.getBuechiNodes())) {
return createLTLCounterExampleFound(visited.size(), state);
}
}
}
}
return resultVerified;
}
}
use of com.arbindo.mimock.manage.mimocks.models.v1.Status in project UniversalMediaServer by UniversalMediaServer.
the class ChromecastPlayer method startPoll.
public void startPoll() {
Runnable r = new Runnable() {
@Override
public void run() {
for (; ; ) {
try {
Thread.sleep(1000);
Status s1 = api.getStatus();
if (s1 == null || !s1.isAppRunning(MediaPlayer)) {
continue;
}
MediaStatus status = api.getMediaStatus();
if (status == null) {
continue;
}
state.playback = translateState(status.playerState);
Media m = status.media;
if (m != null) {
if (m.url != null) {
state.uri = status.media.url;
}
if (m.duration != null) {
state.duration = StringUtil.convertTimeToString(status.media.duration, "%02d:%02d:%02.0f");
}
}
state.position = StringUtil.convertTimeToString(status.currentTime, "%02d:%02d:%02.0f");
if (status.volume != null) {
state.volume = status.volume.level.intValue();
state.mute = status.volume.muted;
}
alert();
} catch (InterruptedException | IOException e) {
LOGGER.debug("Bad chromecast mediastate " + e);
}
}
}
};
poller = new Thread(r);
poller.start();
}
use of com.arbindo.mimock.manage.mimocks.models.v1.Status in project DigitalMediaServer by DigitalMediaServer.
the class ChromecastPlayer method startPoll.
public void startPoll() {
Runnable r = new Runnable() {
@Override
public void run() {
for (; ; ) {
try {
Thread.sleep(1000);
Status s1 = api.getStatus();
if (s1 == null || !s1.isAppRunning(MediaPlayer)) {
continue;
}
MediaStatus status = api.getMediaStatus();
if (status == null) {
continue;
}
state.playback = translateState(status.playerState);
Media m = status.media;
if (m != null) {
if (m.url != null) {
state.uri = status.media.url;
}
if (m.duration != null) {
state.duration = StringUtil.convertTimeToString(status.media.duration, "%02d:%02d:%02.0f");
}
}
state.position = StringUtil.convertTimeToString(status.currentTime, "%02d:%02d:%02.0f");
if (status.volume != null) {
state.volume = status.volume.level.intValue();
state.mute = status.volume.muted;
}
alert();
} catch (InterruptedException | IOException e) {
LOGGER.debug("Bad chromecast mediastate " + e);
}
}
}
};
poller = new Thread(r);
poller.start();
}
use of com.arbindo.mimock.manage.mimocks.models.v1.Status in project data-prepper by opensearch-project.
the class OTelProtoHelperTest method testStatusAttributes.
@Test
public void testStatusAttributes() {
final Status st1 = Status.newBuilder().setCode(Status.StatusCode.STATUS_CODE_ERROR).setMessage("Some message").build();
final Status st2 = Status.newBuilder().setMessage("error message").build();
final Status st3 = Status.newBuilder().setCode(Status.StatusCode.STATUS_CODE_UNSET).build();
final Status st4 = Status.newBuilder().build();
assertThat(OTelProtoHelper.getSpanStatusAttributes(st1).size() == 2).isTrue();
assertThat(Status.StatusCode.forNumber((Integer) OTelProtoHelper.getSpanStatusAttributes(st1).get(OTelProtoHelper.STATUS_CODE)).equals(st1.getCode())).isTrue();
assertThat(OTelProtoHelper.getSpanStatusAttributes(st1).get(OTelProtoHelper.STATUS_MESSAGE).equals(st1.getMessage())).isTrue();
assertThat(OTelProtoHelper.getSpanStatusAttributes(st2).size() == 2).isTrue();
assertThat(Status.StatusCode.forNumber((Integer) OTelProtoHelper.getSpanStatusAttributes(st2).get(OTelProtoHelper.STATUS_CODE)).equals(st2.getCode())).isTrue();
assertThat(OTelProtoHelper.getSpanStatusAttributes(st3).size() == 1).isTrue();
assertThat(Status.StatusCode.forNumber((Integer) OTelProtoHelper.getSpanStatusAttributes(st3).get(OTelProtoHelper.STATUS_CODE)).equals(st3.getCode())).isTrue();
assertThat(OTelProtoHelper.getSpanStatusAttributes(st4).size() == 1).isTrue();
assertThat(Status.StatusCode.forNumber((Integer) OTelProtoHelper.getSpanStatusAttributes(st4).get(OTelProtoHelper.STATUS_CODE)).equals(st4.getCode())).isTrue();
}
use of com.arbindo.mimock.manage.mimocks.models.v1.Status in project openhab-addons by openhab.
the class ChromecastCommander method handleRefresh.
public void handleRefresh() {
if (!chromeCast.isConnected()) {
scheduler.cancelRefresh();
scheduler.scheduleConnect();
return;
}
Status status;
try {
status = chromeCast.getStatus();
statusUpdater.processStatusUpdate(status);
if (status == null) {
scheduler.cancelRefresh();
}
} catch (IOException ex) {
logger.debug("Failed to request status: {}", ex.getMessage());
statusUpdater.updateStatus(ThingStatus.OFFLINE, COMMUNICATION_ERROR, ex.getMessage());
scheduler.cancelRefresh();
return;
}
try {
if (status != null && status.getRunningApp() != null) {
MediaStatus mediaStatus = chromeCast.getMediaStatus();
statusUpdater.updateMediaStatus(mediaStatus);
if (mediaStatus != null && mediaStatus.playerState == MediaStatus.PlayerState.IDLE && mediaStatus.idleReason != null && mediaStatus.idleReason != MediaStatus.IdleReason.INTERRUPTED) {
stopMediaPlayerApp();
}
}
} catch (IOException ex) {
logger.debug("Failed to request media status with a running app: {}", ex.getMessage());
// We were just able to request status, so let's not put the device OFFLINE.
}
}
Aggregations