test-bed-time-service
Version:
A time service for the test-bed, producing messages with real time, fictive time and scenario duration.
47 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_bed_adapter_1 = require("node-test-bed-adapter");
const time_service_states_1 = require("./time-service-states");
const time_service_started_state_1 = require("./time-service-started-state");
const time_service_idle_state_1 = require("./time-service-idle-state");
class Initialized extends time_service_states_1.TimeServiceBaseState {
get name() {
return node_test_bed_adapter_1.TimeState.Initialized;
}
transition(controlMsg) {
switch (controlMsg.command) {
case node_test_bed_adapter_1.TimeCommand.Start: {
if (!controlMsg.trialTimeSpeed) {
this.log.info('Received Start command but no TrialTimeSpeed was provided. Will default to 1.0.');
this.timeService.trialTimeSpeed = 1.0;
}
else {
this.timeService.trialTimeSpeed = controlMsg.trialTimeSpeed;
}
this.log.info('Received command ' + controlMsg.command + '. Transitioning to Started.');
this.timeService.startScenario();
return new time_service_started_state_1.Started(this.timeService);
}
case node_test_bed_adapter_1.TimeCommand.Reset: {
this.log.info('Received command ' + controlMsg.command + '. Transitioning to Idle.');
return new time_service_idle_state_1.Idle(this.timeService);
}
default: {
this.log.warn('Received command ' + controlMsg.command + ' while in Initialized state. Doing nothing!');
return this;
}
}
}
createTimeMessage() {
const timeMsg = {
updatedAt: Date.now(),
trialTime: this.timeService.trialTime,
timeElapsed: 0,
trialTimeSpeed: this.timeService.trialTimeSpeed,
state: node_test_bed_adapter_1.TimeState.Initialized
};
return timeMsg;
}
}
exports.Initialized = Initialized;
//# sourceMappingURL=time-service-initialized-state.js.map