<!-- Bravo pour la PR, quelque note pour que tout se passe au mieux :D - Lier la PR a une issue si elle existe! - Assurez-vous que le nom de la PR respecte les règles (voir CONTRIBUTING.md) - faites des rebase pour valider la PR - Assurez-vous que le CI/CD est au vert --> Co-authored-by: Clement <c.boesmier@aptatio.com> Reviewed-on: #12
78 lines
1.5 KiB
Plaintext
78 lines
1.5 KiB
Plaintext
@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
|