From 4207f5fcb69a628e444ba2f7d3380628e45523fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Fri, 26 Jan 2018 16:10:39 +0100 Subject: [PATCH] Implement service to monitor backend FSM state --- src/app/app.component.ts | 4 +++- src/app/app.module.ts | 4 +++- src/app/fsmupdate.service.ts | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/app/fsmupdate.service.ts diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 252b649..7cb41b3 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { WebSocketService } from './websocket.service'; +import { FSMUpdateService } from './fsmupdate.service'; @Component({ selector: 'app-root', @@ -9,10 +10,11 @@ import { WebSocketService } from './websocket.service'; export class AppComponent implements OnInit { title = 'app'; - constructor(private webSocketService: WebSocketService) {} + constructor(private webSocketService: WebSocketService, private fsmUpdateService: FSMUpdateService) {} ngOnInit() { this.webSocketService.connect(); this.webSocketService.send('reset', ''); + this.fsmUpdateService.init(); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index dbb30dc..4300de2 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -16,6 +16,7 @@ import { LogsComponent } from './logs/logs.component'; import { TestButtonComponent } from './test-button/test-button.component'; import { WebSocketService } from './websocket.service'; import { TerminalComponent } from './terminal/terminal.component'; +import { FSMUpdateService } from './fsmupdate.service'; @NgModule({ @@ -38,7 +39,8 @@ import { TerminalComponent } from './terminal/terminal.component'; providers: [ MarkdownService, WebSocketService, - TerminadoService + TerminadoService, + FSMUpdateService ], bootstrap: [ AppComponent diff --git a/src/app/fsmupdate.service.ts b/src/app/fsmupdate.service.ts new file mode 100644 index 0000000..64a8fc6 --- /dev/null +++ b/src/app/fsmupdate.service.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@angular/core'; +import { WebSocketService } from './websocket.service'; + + +class FSMUpdate { + current_state: string; + valid_transitions: object; +} + + +@Injectable() +export class FSMUpdateService { + public current_state: string; + public valid_transitions: object; + + constructor(private websocketservice: WebSocketService) {} + + public init(): void { + this.websocketservice.observeAnchor('FSMUpdate').subscribe((event) => { + this.current_state = event.data.current_state; + this.valid_transitions = event.data.valid_transitions; + }); + } + +}