Files
MSE-PI-E2EEDA-Plein-de-eeee…/report/main/database/sequence.typ
2026-06-10 13:33:45 +02:00

87 lines
1.7 KiB
Typst

#import "../../resources/helper.typ": *
#let b = actor("broker",
disp_name: [@mqtt:short\ broker],
shape: "queue",
show-bottom:false
)
#let mg = actor("mqtt",
disp_name: [@mqtt:short\ gateway],
show-bottom:false
)
#let ig = actor("influx",
disp_name: [influx\ gateway],
show-bottom:false
)
#let rg = actor("rest",
disp_name: [rest\ gateway],
show-bottom:false
)
#let main = actor("main",
disp_name: [Main],
shape: "control",
show-bottom:false
)
#let db = actor("db",
disp_name: [Influx DB],
shape: "database",
show-bottom:false
)
#let u = actor("user",
disp_name: [User],
shape: "actor",
show-bottom:false
)
#set align(center+top)
#v(1.5em)
#let toDB = {
import chronos: *
b.display
mg.display
main.display
ig.display
db.display
_col(b.name, mg.name, width: 2cm)
_col(mg.name, main.name, width: 2cm)
_col(main.name, ig.name, width: 2cm)
_col(ig.name, db.name, width: 2cm)
sync(main, mg, "New", create-dst: true)
sync(mg, b, "subscribe")
sync(main, ig, "New", create-dst: true)
async(b, mg, "message")
sync(mg, main, "DataPoint")
sync(main, main, "map topics")
sync(main, ig, "DataPoint")
async(ig, db, "flush")
}
#let fromDB = {
import chronos: *
db.display
ig.display
main.display
rg.display
u.display
_col(db.name, ig.name, width: 2cm)
_col(ig.name, main.name, width: 2cm)
_col(main.name, rg.name, width: 2cm)
_col(rg.name, u.name, width: 2cm)
async(u, rg, "Request")
sync(rg, main, "getNodes")
sync(main, rg, "", dashed: true)
sync(rg, ig, "Query")
sync(ig, db, "")
sync(db, ig, "", dashed: true)
sync(ig, rg, "", dashed: true)
sync(rg, u, "", dashed: true)
}
#chronos.diagram(toDB)
#chronos.diagram(fromDB)