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
|