@startuml
!include c4/C4.puml
!include nano/nanoservices.puml
title Model
LAYOUT_TOP_DOWN
Subsystem(Subsystem_train, "Zug","Subsystem")
Subsystem(Subsystem_balise, "Festdatenbalise","Subsystem")
Subsystem(Subsystem_FeldElement_Weiche, "FeldElement/Weiche","Subsystem")
Subsystem(Subsystem_Zugleiter_in_the_Cloud, "Zugleiter in the Cloud","Subsystem")
Component(Component_TF_Funkgerät, "TF-Funkgerät","Component")
Component(Component_TF_Tablet, "TF-Tablet","Component")
Component(Component_ObjectController, "ObjectController","Component")
Component(Component_Weichenlagemelder, "Weichenlagemelder","Component")
Component(Component_ZLIC_Funkgerät, "ZLIC-Funkgerät","Component")
Component(Component_RadioIO, "RadioIO","Component")
Component(Component_SIP_Server, "SIP Server","Component")
Component(Component_SpeechToText, "SpeechToText","Component")
Component(Component_TextToSpeech, "TextToSpeech","Component")
Component(Component_NaturalLanguageUnderstanding, "NaturalLanguageUnderstanding","Component")
Component(Component_Stellprozess, "Stellprozess","Component")
Component(Component_Digitales_Belegblatt, "Digitales Belegblatt","Component")
Function(Function_Erlaubt_die_Kommunikation_mit_dem_Zugleiter_in_the_Cloud., "Erlaubt die Kommunikation mit dem Zugleiter in the Cloud.","Function")
Function(Function_Übernimmt_die_Visualisierung_des_Digitalen_Belegblatts., "Übernimmt die Visualisierung des Digitalen Belegblatts.","Function")
Function(Function_Übernimmt_die_Kommunikation_zu_den_Feldelementen., "Übernimmt die Kommunikation zu den Feldelementen.","Function")
Function(Function_Weichenlage_wird_angezeigt., "Weichenlage wird angezeigt.","Function")
Function(Function_Erlaubt_die_Kommunikation_mit_dem_TF., "Erlaubt die Kommunikation mit dem TF.","Function")
Function(Function_Konvertiert_die_Kommunikation_zwischen_Funkgerät_und_ZLic_API, "Konvertiert die Kommunikation zwischen Funkgerät und ZLic-API","Function")
Function(Function_Stellt_einen_Websocket_für_den_Austausch_von_Wav_Dateien_zur_Verfügung., "Stellt einen Websocket für den Austausch von Wav-Dateien zur Verfügung.","Function")
Function(Function_Konvertiert_WAV_Dateien_in_Text., "Konvertiert WAV-Dateien in Text.","Function")
Function(Function_Konvertiert_Text_in_WAV_Dateien., "Konvertiert Text in WAV-Dateien.","Function")
Function(Function_Erkennt_Absichten__intends__im_Text., "Erkennt Absichten (intends) im Text.","Function")
Function(Function_Prüfung_und_Reservierung_der_Strecke., "Prüfung und Reservierung der Strecke.","Function")
Function(Function_Visualisiert_die_Belegung_der_Strecke, "Visualisiert die Belegung der Strecke","Function")
Actor(Actor_traindriver, "Zugführer (TF)","Actor")
Structure(Structure_Audio, "Audio","Structure")
Structure(Structure_Transcribed, "Transcribed","Structure")
Structure(Structure_Fahranfrage, "Fahranfrage","Structure")
Structure(Structure_FahrbefehlWiederholung, "FahrbefehlWiederholung","Structure")
Structure(Structure_Ankunftsmeldung, "Ankunftsmeldung","Structure")
Structure(Structure_PositiveBestaetigung, "PositiveBestaetigung","Structure")
Structure(Structure_NegativeBestaetigung, "NegativeBestaetigung","Structure")
Structure(Structure_Command, "Command","Structure")
Structure(Structure_Route, "Route","Structure")
Structure(Structure_SetRoute, "SetRoute","Structure")
Structure(Structure_FreeRoute, "FreeRoute","Structure")
Structure(Structure_SetRouteResponse, "SetRouteResponse","Structure")
Structure(Structure_FreeRouteResponse, "FreeRouteResponse","Structure")
String(String_String, "","String")
DataField(DataField_Audio_caller_id, "","DataField")
DataField(DataField_Audio_audio, "","DataField")
DataField(DataField_Transcribed_caller_id, "","DataField")
DataField(DataField_Transcribed_text, "","DataField")
DataField(DataField_Fahranfrage_caller_id, "","DataField")
DataField(DataField_Fahranfrage_zugnummer, "","DataField")
DataField(DataField_Fahranfrage_meldestelle, "","DataField")
DataField(DataField_FahrbefehlWiederholung_caller_id, "","DataField")
DataField(DataField_FahrbefehlWiederholung_zugnummer, "","DataField")
DataField(DataField_FahrbefehlWiederholung_meldestelle, "","DataField")
DataField(DataField_Ankunftsmeldung_caller_id, "","DataField")
DataField(DataField_Ankunftsmeldung_zugnummer, "","DataField")
DataField(DataField_Ankunftsmeldung_meldestelle, "","DataField")
DataField(DataField_PositiveBestaetigung_caller_id, "","DataField")
DataField(DataField_NegativeBestaetigung_caller_id, "","DataField")
DataField(DataField_Command_caller_id, "","DataField")
DataField(DataField_Command_text, "","DataField")
DataField(DataField_Route_meldestelle_from, "","DataField")
DataField(DataField_Route_meldestelle_to, "","DataField")
DataField(DataField_SetRoute_zugnummer, "","DataField")
DataField(DataField_SetRoute_routes, "","DataField")
DataField(DataField_FreeRoute_zugnummer, "","DataField")
DataField(DataField_FreeRoute_routes, "","DataField")
DataField(DataField_SetRouteResponse_zugnummer, "","DataField")
DataField(DataField_SetRouteResponse_status, "","DataField")
DataField(DataField_FreeRouteResponse_zugnummer, "","DataField")
DataField(DataField_FreeRouteResponse_status, "","DataField")
Bytes(Bytes_Bytes, "","Bytes")
Integer(Integer_Integer, "","Integer")
Array(Array_Array, "","Array")
Message(Message_radio_tf, "Funkspruch vom TF","Message")
Message(Message_radio_zlic, "Funkspruch vom ZL","Message")
Message(Message_sound_tf, "Akustische Nachricht vom TF","Message")
Message(Message_sound_zlic, "Akustische Nachricht vom ZL","Message")
Message(Message_wav_tf, "WAV-File vom TF","Message")
Message(Message_wav_zl, "WAV-File vom ZL","Message")
Message(Message_TFAudio, "WAV-File für Konvertierung in Text","Message")
Message(Message_Transcribed, "Text-Nachricht vom TF","Message")
Message(Message_Ankunftsmeldung, "Ankunftsmeldung","Message")
Message(Message_Fahranfrage, "Fahranfrage","Message")
Message(Message_FahrbefehlWiederholung, "Fahrbefehlwiederholung","Message")
Message(Message_NegativeBestaetigung, "Negative Bestätigung","Message")
Message(Message_PositiveBestaetigung, "Positive Bestätigung","Message")
Message(Message_SetRoute, "Fahrweg prüfen und einstellen","Message")
Message(Message_FreeRoute, "Fahrweg freigeben","Message")
Message(Message_fahrweg_set, "Fahrweg einstellen","Message")
Message(Message_fahrweg_state, "Fahrweg eingelaufen","Message")
Message(Message_SetRouteResponse, "Rückmeldung auf Fahrweg einstellen","Message")
Message(Message_FreeRouteResponse, "Rückmeldung auf Fahrweg freigeben","Message")
Message(Message_Command, "Text-Nachricht von ZL","Message")
Message(Message_NLUFehler, "Fehlermeldung von NLU","Message")
Message(Message_ZLiCAudio, "WAV-File aus Konvertierung von Text","Message")
PlanProModel(PlanProModel_Lausitz_PlanProModel, "Lausitz PlanProModel","PlanProModel")
StationModel(StationModel_Lausitz_Station_Model, "Lausitz Station Model","StationModel")
Station(Station_Station_Schwarze_Pumpe, "Station Schwarze Pumpe","Station")
Station(Station_Station_Boxberg, "Station Boxberg","Station")
TrackModel(TrackModel_Lausitz_Strecken_Model, "Lausitz Strecken Model","TrackModel")
Track(Track_Track_for_Boxberg_Schwarze_Pumpe, "Track for Boxberg-Schwarze Pumpe","Track")
Route(Route_Route_from_Boxberg_to_Schwarze_Pumpe, "Route from Boxberg to Schwarze Pumpe","Route")
Route(Route_Route_from_Schwarze_Pumpe_to_Boxberg, "Route from Schwarze Pumpe to Boxberg","Route")
RouteSection(RouteSection_Route_from_Boxberg_to_Schwarze_Pumpe___Section_A2_B2, "Route from Boxberg to Schwarze Pumpe / Section A2-B2","RouteSection")
RouteSection(RouteSection_Route_from_Schwarze_Pumpe_to_Boxberg___Section_B1_A1, "Route from Schwarze Pumpe to Boxberg / Section B1-A1","RouteSection")
Rel_D(Subsystem_train, Component_TF_Funkgerät," ")
Rel_D(Actor_traindriver, Component_TF_Funkgerät," ")
Rel_D(Message_radio_tf, Component_TF_Funkgerät," ")
Rel_D(Message_radio_zlic, Component_TF_Funkgerät," ")
Rel_D(Subsystem_train, Component_TF_Tablet," ")
Rel_D(Actor_traindriver, Component_TF_Tablet," ")
Rel_D(Subsystem_FeldElement_Weiche, Component_ObjectController," ")
Rel_D(Message_fahrweg_set, Component_ObjectController," ")
Rel_D(Subsystem_FeldElement_Weiche, Component_Weichenlagemelder," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_ZLIC_Funkgerät," ")
Rel_D(Message_radio_tf, Component_ZLIC_Funkgerät," ")
Rel_D(Message_radio_zlic, Component_ZLIC_Funkgerät," ")
Rel_D(Message_sound_tf, Component_ZLIC_Funkgerät," ")
Rel_D(Message_sound_zlic, Component_ZLIC_Funkgerät," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_RadioIO," ")
Rel_D(Message_sound_tf, Component_RadioIO," ")
Rel_D(Message_sound_zlic, Component_RadioIO," ")
Rel_D(Message_wav_tf, Component_RadioIO," ")
Rel_D(Message_wav_zl, Component_RadioIO," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_SIP_Server," ")
Rel_D(Message_wav_tf, Component_SIP_Server," ")
Rel_D(Message_wav_zl, Component_SIP_Server," ")
Rel_D(Message_TFAudio, Component_SIP_Server," ")
Rel_D(Message_ZLiCAudio, Component_SIP_Server," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_SpeechToText," ")
Rel_D(Message_TFAudio, Component_SpeechToText," ")
Rel_D(Message_Transcribed, Component_SpeechToText," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_TextToSpeech," ")
Rel_D(Message_Command, Component_TextToSpeech," ")
Rel_D(Message_NLUFehler, Component_TextToSpeech," ")
Rel_D(Message_ZLiCAudio, Component_TextToSpeech," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_Transcribed, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_Ankunftsmeldung, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_Fahranfrage, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_FahrbefehlWiederholung, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_NegativeBestaetigung, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_PositiveBestaetigung, Component_NaturalLanguageUnderstanding," ")
Rel_D(Message_NLUFehler, Component_NaturalLanguageUnderstanding," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_Stellprozess," ")
Rel_D(Message_SetRoute, Component_Stellprozess," ")
Rel_D(Message_FreeRoute, Component_Stellprozess," ")
Rel_D(Message_fahrweg_set, Component_Stellprozess," ")
Rel_D(Message_fahrweg_state, Component_Stellprozess," ")
Rel_D(Message_SetRouteResponse, Component_Stellprozess," ")
Rel_D(Message_FreeRouteResponse, Component_Stellprozess," ")
Rel_D(Subsystem_Zugleiter_in_the_Cloud, Component_Digitales_Belegblatt," ")
Rel_D(Message_Ankunftsmeldung, Component_Digitales_Belegblatt," ")
Rel_D(Message_Fahranfrage, Component_Digitales_Belegblatt," ")
Rel_D(Message_FahrbefehlWiederholung, Component_Digitales_Belegblatt," ")
Rel_D(Message_NegativeBestaetigung, Component_Digitales_Belegblatt," ")
Rel_D(Message_PositiveBestaetigung, Component_Digitales_Belegblatt," ")
Rel_D(Message_SetRoute, Component_Digitales_Belegblatt," ")
Rel_D(Message_FreeRoute, Component_Digitales_Belegblatt," ")
Rel_D(Message_fahrweg_state, Component_Digitales_Belegblatt," ")
Rel_D(Message_SetRouteResponse, Component_Digitales_Belegblatt," ")
Rel_D(Message_FreeRouteResponse, Component_Digitales_Belegblatt," ")
Rel_D(Message_Command, Component_Digitales_Belegblatt," ")
Rel_D(Component_TF_Funkgerät, Function_Erlaubt_die_Kommunikation_mit_dem_Zugleiter_in_the_Cloud.," ")
Rel_D(Component_TF_Tablet, Function_Übernimmt_die_Visualisierung_des_Digitalen_Belegblatts.," ")
Rel_D(Component_ObjectController, Function_Übernimmt_die_Kommunikation_zu_den_Feldelementen.," ")
Rel_D(Component_Weichenlagemelder, Function_Weichenlage_wird_angezeigt.," ")
Rel_D(Component_ZLIC_Funkgerät, Function_Erlaubt_die_Kommunikation_mit_dem_TF.," ")
Rel_D(Component_RadioIO, Function_Konvertiert_die_Kommunikation_zwischen_Funkgerät_und_ZLic_API," ")
Rel_D(Component_SIP_Server, Function_Stellt_einen_Websocket_für_den_Austausch_von_Wav_Dateien_zur_Verfügung.," ")
Rel_D(Component_SpeechToText, Function_Konvertiert_WAV_Dateien_in_Text.," ")
Rel_D(Component_TextToSpeech, Function_Konvertiert_Text_in_WAV_Dateien.," ")
Rel_D(Component_NaturalLanguageUnderstanding, Function_Erkennt_Absichten__intends__im_Text.," ")
Rel_D(Component_Stellprozess, Function_Prüfung_und_Reservierung_der_Strecke.," ")
Rel_D(Component_Digitales_Belegblatt, Function_Visualisiert_die_Belegung_der_Strecke," ")
Rel_D(Message_TFAudio, Structure_Audio," ")
Rel_D(Message_ZLiCAudio, Structure_Audio," ")
Rel_D(Message_Transcribed, Structure_Transcribed," ")
Rel_D(Message_Fahranfrage, Structure_Fahranfrage," ")
Rel_D(Message_FahrbefehlWiederholung, Structure_FahrbefehlWiederholung," ")
Rel_D(Message_Ankunftsmeldung, Structure_Ankunftsmeldung," ")
Rel_D(Message_PositiveBestaetigung, Structure_PositiveBestaetigung," ")
Rel_D(Message_NegativeBestaetigung, Structure_NegativeBestaetigung," ")
Rel_D(Message_Command, Structure_Command," ")
Rel_D(Message_NLUFehler, Structure_Command," ")
Rel_D(DataField_SetRoute_routes, Structure_Route," ")
Rel_D(DataField_FreeRoute_routes, Structure_Route," ")
Rel_D(Message_SetRoute, Structure_SetRoute," ")
Rel_D(Message_FreeRoute, Structure_FreeRoute," ")
Rel_D(Message_SetRouteResponse, Structure_SetRouteResponse," ")
Rel_D(Message_FreeRouteResponse, Structure_FreeRouteResponse," ")
Rel_D(DataField_Audio_caller_id, String_String," ")
Rel_D(DataField_Transcribed_caller_id, String_String," ")
Rel_D(DataField_Transcribed_text, String_String," ")
Rel_D(DataField_Fahranfrage_caller_id, String_String," ")
Rel_D(DataField_Fahranfrage_meldestelle, String_String," ")
Rel_D(DataField_FahrbefehlWiederholung_caller_id, String_String," ")
Rel_D(DataField_FahrbefehlWiederholung_meldestelle, String_String," ")
Rel_D(DataField_Ankunftsmeldung_caller_id, String_String," ")
Rel_D(DataField_Ankunftsmeldung_meldestelle, String_String," ")
Rel_D(DataField_PositiveBestaetigung_caller_id, String_String," ")
Rel_D(DataField_NegativeBestaetigung_caller_id, String_String," ")
Rel_D(DataField_Command_caller_id, String_String," ")
Rel_D(DataField_Command_text, String_String," ")
Rel_D(DataField_Route_meldestelle_from, String_String," ")
Rel_D(DataField_Route_meldestelle_to, String_String," ")
Rel_D(Structure_Audio, DataField_Audio_caller_id," ")
Rel_D(Structure_Audio, DataField_Audio_audio," ")
Rel_D(Structure_Transcribed, DataField_Transcribed_caller_id," ")
Rel_D(Structure_Transcribed, DataField_Transcribed_text," ")
Rel_D(Structure_Fahranfrage, DataField_Fahranfrage_caller_id," ")
Rel_D(Structure_Fahranfrage, DataField_Fahranfrage_zugnummer," ")
Rel_D(Structure_Fahranfrage, DataField_Fahranfrage_meldestelle," ")
Rel_D(Structure_FahrbefehlWiederholung, DataField_FahrbefehlWiederholung_caller_id," ")
Rel_D(Structure_FahrbefehlWiederholung, DataField_FahrbefehlWiederholung_zugnummer," ")
Rel_D(Structure_FahrbefehlWiederholung, DataField_FahrbefehlWiederholung_meldestelle," ")
Rel_D(Structure_Ankunftsmeldung, DataField_Ankunftsmeldung_caller_id," ")
Rel_D(Structure_Ankunftsmeldung, DataField_Ankunftsmeldung_zugnummer," ")
Rel_D(Structure_Ankunftsmeldung, DataField_Ankunftsmeldung_meldestelle," ")
Rel_D(Structure_PositiveBestaetigung, DataField_PositiveBestaetigung_caller_id," ")
Rel_D(Structure_NegativeBestaetigung, DataField_NegativeBestaetigung_caller_id," ")
Rel_D(Structure_Command, DataField_Command_caller_id," ")
Rel_D(Structure_Command, DataField_Command_text," ")
Rel_D(Structure_Route, DataField_Route_meldestelle_from," ")
Rel_D(Structure_Route, DataField_Route_meldestelle_to," ")
Rel_D(Structure_SetRoute, DataField_SetRoute_zugnummer," ")
Rel_D(Structure_SetRoute, DataField_SetRoute_routes," ")
Rel_D(Structure_FreeRoute, DataField_FreeRoute_zugnummer," ")
Rel_D(Structure_FreeRoute, DataField_FreeRoute_routes," ")
Rel_D(Structure_SetRouteResponse, DataField_SetRouteResponse_zugnummer," ")
Rel_D(Structure_SetRouteResponse, DataField_SetRouteResponse_status," ")
Rel_D(Structure_FreeRouteResponse, DataField_FreeRouteResponse_zugnummer," ")
Rel_D(Structure_FreeRouteResponse, DataField_FreeRouteResponse_status," ")
Rel_D(DataField_Audio_audio, Bytes_Bytes," ")
Rel_D(DataField_Fahranfrage_zugnummer, Integer_Integer," ")
Rel_D(DataField_FahrbefehlWiederholung_zugnummer, Integer_Integer," ")
Rel_D(DataField_Ankunftsmeldung_zugnummer, Integer_Integer," ")
Rel_D(DataField_SetRoute_zugnummer, Integer_Integer," ")
Rel_D(DataField_FreeRoute_zugnummer, Integer_Integer," ")
Rel_D(DataField_SetRouteResponse_zugnummer, Integer_Integer," ")
Rel_D(DataField_SetRouteResponse_status, Integer_Integer," ")
Rel_D(DataField_FreeRouteResponse_zugnummer, Integer_Integer," ")
Rel_D(DataField_FreeRouteResponse_status, Integer_Integer," ")
Rel_D(DataField_SetRoute_routes, Array_Array," ")
Rel_D(DataField_FreeRoute_routes, Array_Array," ")
Rel_D(Component_Stellprozess, PlanProModel_Lausitz_PlanProModel," ")
Rel_D(Component_NaturalLanguageUnderstanding, StationModel_Lausitz_Station_Model," ")
Rel_D(StationModel_Lausitz_Station_Model, Station_Station_Schwarze_Pumpe," ")
Rel_D(Track_Track_for_Boxberg_Schwarze_Pumpe, Station_Station_Schwarze_Pumpe," ")
Rel_D(Route_Route_from_Boxberg_to_Schwarze_Pumpe, Station_Station_Schwarze_Pumpe," ")
Rel_D(Route_Route_from_Schwarze_Pumpe_to_Boxberg, Station_Station_Schwarze_Pumpe," ")
Rel_D(StationModel_Lausitz_Station_Model, Station_Station_Boxberg," ")
Rel_D(Track_Track_for_Boxberg_Schwarze_Pumpe, Station_Station_Boxberg," ")
Rel_D(Route_Route_from_Boxberg_to_Schwarze_Pumpe, Station_Station_Boxberg," ")
Rel_D(Route_Route_from_Schwarze_Pumpe_to_Boxberg, Station_Station_Boxberg," ")
Rel_D(Component_Digitales_Belegblatt, TrackModel_Lausitz_Strecken_Model," ")
Rel_D(TrackModel_Lausitz_Strecken_Model, Track_Track_for_Boxberg_Schwarze_Pumpe," ")
Rel_D(Track_Track_for_Boxberg_Schwarze_Pumpe, Route_Route_from_Boxberg_to_Schwarze_Pumpe," ")
Rel_D(Track_Track_for_Boxberg_Schwarze_Pumpe, Route_Route_from_Schwarze_Pumpe_to_Boxberg," ")
Rel_D(Route_Route_from_Boxberg_to_Schwarze_Pumpe, RouteSection_Route_from_Boxberg_to_Schwarze_Pumpe___Section_A2_B2," ")
Rel_D(Route_Route_from_Schwarze_Pumpe_to_Boxberg, RouteSection_Route_from_Schwarze_Pumpe_to_Boxberg___Section_B1_A1," ")
@enduml