docs(reports): final tidy up before presentation
Signed-off-by: Klagarge <remi@heredero.ch>
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
#let server = [
|
#let server = [
|
||||||
#figure(
|
#figure(
|
||||||
image("server.png", width: 100%),
|
image("server.png", width: 100%),
|
||||||
caption: [],
|
caption: [Server implementation],
|
||||||
) <fig:server>
|
) <fig:server>
|
||||||
]
|
]
|
||||||
#grid(
|
#grid(
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
gutter: 2em,
|
gutter: 2em,
|
||||||
|
align: top+left,
|
||||||
[
|
[
|
||||||
*Architecture*
|
*Architecture*
|
||||||
- Raspberry Pi 4 — Python
|
- Raspberry Pi 4 — Python
|
||||||
@@ -17,14 +18,14 @@
|
|||||||
- Remote access via Tailscale
|
- Remote access via Tailscale
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
*Data flow*\
|
// *Data flow*\
|
||||||
Thingy:52
|
// Thingy:52
|
||||||
$->$ BLE advertising
|
// $->$ BLE advertising
|
||||||
Raspberry Pi
|
// Raspberry Pi
|
||||||
$->$ MQTTS (TLS)
|
// $->$ MQTTS (TLS)
|
||||||
RabbitMQ broker
|
// RabbitMQ broker
|
||||||
$->$
|
// $->$
|
||||||
InfluxDB
|
// InfluxDB
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@@ -42,10 +43,10 @@
|
|||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
gutter: 2em,
|
gutter: 2em,
|
||||||
|
align: top+left,
|
||||||
[
|
[
|
||||||
*BLE filtering*
|
*BLE filtering*
|
||||||
- GATT → passive advertising
|
- GATT $->$ passive advertising
|
||||||
(BlueZ limitation)
|
|
||||||
- Filter: `company_id = 0xffff`
|
- Filter: `company_id = 0xffff`
|
||||||
- exactly 14 bytes
|
- exactly 14 bytes
|
||||||
- Continuous BLE scan (100% duty cycle)
|
- Continuous BLE scan (100% duty cycle)
|
||||||
|
|||||||
@@ -4,17 +4,17 @@
|
|||||||
#import "/main/architecture/description.typ": *
|
#import "/main/architecture/description.typ": *
|
||||||
#import "/resources/slides.typ": *
|
#import "/resources/slides.typ": *
|
||||||
---
|
---
|
||||||
Input:
|
|
||||||
- Provence classrooms specifications - Space A #pause
|
|
||||||
- Open data #pause
|
|
||||||
- Ventilation standard formula #pause
|
|
||||||
- User parameters : Room name, number of students, initial @co2:short concentration #pause
|
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
- Evolution of @co2:short concentration without considering air ventilation #pause
|
- Evolution of @co2:short concentration without considering air ventilation #pause
|
||||||
- Time required to reach a threshold of 1400 ppm #pause
|
- Time required to reach a threshold of 1400 ppm #pause
|
||||||
- Evolution of @co2:short concentration decrease under natural ventilation #pause
|
- Evolution of @co2:short concentration decrease under natural ventilation #pause
|
||||||
- Time required to reach outdoor-equivalent concentration level
|
- Time required to reach outdoor-equivalent concentration level #pause
|
||||||
|
|
||||||
|
Input:
|
||||||
|
- Provence classrooms specifications - Space A #pause
|
||||||
|
- Open data #pause
|
||||||
|
- Ventilation standard formula #pause
|
||||||
|
- User parameters : Room name, number of students, initial @co2:short concentration
|
||||||
|
|
||||||
---
|
---
|
||||||
=== Modelling the temporal evolution of @co2:short concentration
|
=== Modelling the temporal evolution of @co2:short concentration
|
||||||
@@ -43,7 +43,7 @@ Output:
|
|||||||
image("../../resources/img/Physical model/Window user window opening model.png"),
|
image("../../resources/img/Physical model/Window user window opening model.png"),
|
||||||
caption: [User input parameters and results]
|
caption: [User input parameters and results]
|
||||||
) <fig:user_input_parameters_results>
|
) <fig:user_input_parameters_results>
|
||||||
],
|
],pause,
|
||||||
[
|
[
|
||||||
#figure(
|
#figure(
|
||||||
image("../../resources/img/Physical model/CO2 concentration over time user window opening model.png"),
|
image("../../resources/img/Physical model/CO2 concentration over time user window opening model.png"),
|
||||||
|
|||||||
@@ -82,10 +82,11 @@ TECHNIQUE
|
|||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
gutter: 2em,
|
gutter: 2em,
|
||||||
|
align: left+top,
|
||||||
[
|
[
|
||||||
*Project management*
|
*Project management*
|
||||||
- Weekly meetings — Thursday 17h (1h)
|
- Weekly meetings
|
||||||
- PV after each meeting (Thank's to Adrien)
|
- PV after each meeting
|
||||||
- GitHub Issues & sub-issues
|
- GitHub Issues & sub-issues
|
||||||
- Pull Requests with code review
|
- Pull Requests with code review
|
||||||
- Teams for daily communication
|
- Teams for daily communication
|
||||||
@@ -119,9 +120,9 @@ TECHNIQUE
|
|||||||
|
|
||||||
= Conclusion
|
= Conclusion
|
||||||
|
|
||||||
== Whole project's takeaways // (50s) Adrien (Regard critique)
|
== Project's takeaways // (50s) Adrien (Regard critique)
|
||||||
- @trl:short 4 #pause
|
- @trl:long (@trl:short) 4 #pause
|
||||||
- Forecasting and Teams notifications
|
- Forecasting // and Teams notifications
|
||||||
|
|
||||||
== Future perspectives // (50s) Alison
|
== Future perspectives // (50s) Alison
|
||||||
- Deployment in every room #pause
|
- Deployment in every room #pause
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
extra: [#text(size: 6.5pt, fill: c-muted)[Build check]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[Build check]]),
|
||||||
(icon: img-root + "image19.png", bg: rgb("#1F2328"), name: "GitHub Actions",
|
(icon: img-root + "image19.png", bg: rgb("#1F2328"), name: "GitHub Actions",
|
||||||
extra: [#text(size: 6.5pt, fill: c-muted)[Coverage]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[Coverage]]),
|
||||||
)),
|
)),pause,
|
||||||
devsec-col("② SAST · SCA", (
|
devsec-col("② SAST · SCA", (
|
||||||
(icon: img-root + "image7.png", bg: rgb("#000000"), name: "SpotBugs",
|
(icon: img-root + "image7.png", bg: rgb("#000000"), name: "SpotBugs",
|
||||||
extra: [#badge("BLOCKING")]),
|
extra: [#badge("BLOCKING")]),
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
extra: [#badge("BLOCKING")]),
|
extra: [#badge("BLOCKING")]),
|
||||||
(icon: img-root + "image14.png", bg: rgb("#F97316"), name: "Dep. Check",
|
(icon: img-root + "image14.png", bg: rgb("#F97316"), name: "Dep. Check",
|
||||||
extra: [#badge("NON-BLOCK", fill: rgb("#F97316"))]),
|
extra: [#badge("NON-BLOCK", fill: rgb("#F97316"))]),
|
||||||
)),
|
)),pause,
|
||||||
devsec-col("③ DAST · Tests", (
|
devsec-col("③ DAST · Tests", (
|
||||||
(icon: img-root + "image15.png", bg: rgb("#00549E"), name: "OWASP ZAP",
|
(icon: img-root + "image15.png", bg: rgb("#00549E"), name: "OWASP ZAP",
|
||||||
extra: [#badge("BLOCKING")]),
|
extra: [#badge("BLOCKING")]),
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
extra: [#badge("BLOCKING")]),
|
extra: [#badge("BLOCKING")]),
|
||||||
(icon: img-root + "image17.png", bg: rgb("#64748B"), name: "Runtime check",
|
(icon: img-root + "image17.png", bg: rgb("#64748B"), name: "Runtime check",
|
||||||
extra: [#text(size: 6.5pt, fill: c-muted)[HTTP headers]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[HTTP headers]]),
|
||||||
)),
|
)),pause,
|
||||||
devsec-col("④ Build · Deploy", (
|
devsec-col("④ Build · Deploy", (
|
||||||
(icon: img-root + "image18.png", bg: rgb("#0DB7ED"), name: "Docker",
|
(icon: img-root + "image18.png", bg: rgb("#0DB7ED"), name: "Docker",
|
||||||
extra: [#text(size: 6.5pt, fill: c-muted)[SHA-tagged]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[SHA-tagged]]),
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
extra: [#text(size: 6.5pt, fill: c-muted)[main only]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[main only]]),
|
||||||
(icon: img-root + "image17.png", bg: rgb("#10B981"), name: "SSH Deploy",
|
(icon: img-root + "image17.png", bg: rgb("#10B981"), name: "SSH Deploy",
|
||||||
extra: [#text(size: 6.5pt, fill: c-muted)[cert-auth]]),
|
extra: [#text(size: 6.5pt, fill: c-muted)[cert-auth]]),
|
||||||
)),
|
)),pause,
|
||||||
)
|
)
|
||||||
|
|
||||||
#v(7pt)
|
#v(7pt)
|
||||||
@@ -179,10 +179,12 @@
|
|||||||
)
|
)
|
||||||
v(4pt)
|
v(4pt)
|
||||||
}
|
}
|
||||||
#alert-row(rgb("#EF4444"), "Critical", "> 2000 ppm")
|
#alert-row(rgb("#f44336"), "Critical", "> 2000 ppm")
|
||||||
#alert-row(rgb("#F97316"), "Poor", "1200–1500 ppm")
|
#alert-row(rgb("#F97316"), "Very Poor", "1500-2000 ppm")
|
||||||
#alert-row(rgb("#EAB308"), "Moderate", "1000–1200 ppm")
|
#alert-row(rgb("#ff9800"), "Poor", "1200-1500 ppm")
|
||||||
#alert-row(rgb("#22C55E"), "Good", "< 800 ppm")
|
#alert-row(rgb("#ffc107"), "Moderate", "1000-1200 ppm")
|
||||||
|
#alert-row(rgb("#8bc34a"), "Good", "800-1000 ppm")
|
||||||
|
#alert-row(rgb("#4caf50"), "Excellent", "< 800 ppm")
|
||||||
|
|
||||||
#v(6pt)
|
#v(6pt)
|
||||||
#line(length: 100%, stroke: 0.5pt + c-border)
|
#line(length: 100%, stroke: 0.5pt + c-border)
|
||||||
|
|||||||
Reference in New Issue
Block a user