From 01dc365b0c1456f879d3470ce0e770428eab380e Mon Sep 17 00:00:00 2001 From: Clement Date: Fri, 10 Nov 2023 15:58:35 +0100 Subject: [PATCH] add class diagram Co-authored-by: Nicolas SANS Co-authored-by: Mathis_Rgt --- docs/Schématics/Class.puml | 77 +++++++++++++++++++++++++++++++++++ docs/Schématics/Hardware.puml | 4 +- 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 docs/Schématics/Class.puml diff --git a/docs/Schématics/Class.puml b/docs/Schématics/Class.puml new file mode 100644 index 0000000..2d66a83 --- /dev/null +++ b/docs/Schématics/Class.puml @@ -0,0 +1,77 @@ +@startuml class + +hide empty members + + +class Dolibarr { + + String getDestination(String tagID) + + String createStockMovement(String tagID, String warehouseId) +} + +package "Managers" { + abstract AManager { + # ILCDScreen lcd + # IServoMotor servo + # IGRBL grbl + # INFCReader nfc + } + + class WarehouseManager + + WarehouseManager .|> AManager +} + +package "Components" { + package "NFCReader" { + interface INFCReader { + {abstract} char* read() + {abstract} bool hasTag() + } + class RC522 + RC522 .|> INFCReader + } + + package "LCDScreen" { + interface ILCDScreen { + {abstract} void clearScreen() + {abstract} void draw(int x, int y, int h, int w) + {abstract} void drawRect(int x, int y, int h, int w) + } + class M5LCD + M5LCD .|> ILCDScreen + } + + package "GRBL" { + interface IGRBL { + {abstract} drive(int x, int y, int z, int step) + {abstract} step(int s) + } + class M5GRBL + M5GRBL .|> IGRBL + } + + package "ServoMotor" { + interface IServoMotor { + {abstract} goLeft() + {abstract} goRight() + {abstract} goMiddle() + } + class ServoMotor + ServoMotor .|> IServoMotor + } +} + +class Program { + + Program() + + void loop +} + +AManager <-- IServoMotor +AManager <-- IGRBL +AManager <-- ILCDScreen +AManager <-- INFCReader + +Program <-- WarehouseManager +Program <-- Dolibarr + +@enduml diff --git a/docs/Schématics/Hardware.puml b/docs/Schématics/Hardware.puml index f5bffb1..4c9a86e 100644 --- a/docs/Schématics/Hardware.puml +++ b/docs/Schématics/Hardware.puml @@ -9,12 +9,12 @@ package "Convoyeur"{ [Lecteur NFC] as nfc [Servo Moteur] as servo [GRBL] - [Stepper] + [Stepper Moteur] as Stepper } [Dolibarr] <-- [M5 Core] : API -[M5 Core] --> servo +[M5 Core] --> servo : IO [M5 Core] <-- nfc : IC2 [M5 Core] --> [GRBL] : SPI [GRBL] --> Stepper