docs: shematics (#12)

<!--
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
This commit is contained in:
Clement 2023-11-10 16:42:00 +01:00
parent 258725e8c9
commit e4f009b63e
2 changed files with 99 additions and 0 deletions

View File

@ -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

View File

@ -0,0 +1,22 @@
@startuml hard wiring
cloud {
[Dolibarr]
}
package "Convoyeur"{
[M5 Core]
[Lecteur NFC] as nfc
[Servo Moteur] as servo
[GRBL]
[Stepper Moteur] as Stepper
}
[Dolibarr] <-- [M5 Core] : API
[M5 Core] --> servo : IO
[M5 Core] <-- nfc : IC2
[M5 Core] --> [GRBL] : SPI
[GRBL] --> Stepper
@enduml