209 lines
4.5 KiB
Plaintext
209 lines
4.5 KiB
Plaintext
|
@startuml
|
||
|
|
||
|
'''''''''''''''''''
|
||
|
' Syntax reminder '
|
||
|
'''''''''''''''''''
|
||
|
'
|
||
|
' <|-- ' Extension
|
||
|
' *-- ' Composition
|
||
|
' o-- ' Agregation
|
||
|
'
|
||
|
' Orientation of the links:
|
||
|
' 2 dashes: vertical
|
||
|
' 1 dash: horizontal
|
||
|
|
||
|
|
||
|
''''''''''''''
|
||
|
' Parameters '
|
||
|
''''''''''''''
|
||
|
|
||
|
hide empty members
|
||
|
|
||
|
title (Somewhat simplified) OwlPS Positioner's class diagram
|
||
|
|
||
|
|
||
|
''''''''''''''
|
||
|
' Executable '
|
||
|
''''''''''''''
|
||
|
|
||
|
class "owlps-positionerd" as owlps_positionerd << (X, orchid) executable >>
|
||
|
|
||
|
owlps_positionerd *-- Positioning
|
||
|
|
||
|
|
||
|
'''''''''''''''''''''
|
||
|
' Utilitary classes '
|
||
|
'''''''''''''''''''''
|
||
|
|
||
|
' Note: for the sake of clarity, PosUtil and posexcept are not
|
||
|
' associated with the other classes, but they should actually be
|
||
|
' linked with pretty much all of them.
|
||
|
|
||
|
package "Utilitary classes" {
|
||
|
class PosUtil << static >>
|
||
|
note top
|
||
|
The functions of <i>PosUtil</i> are
|
||
|
used by too many classes to
|
||
|
link them all in this diagram
|
||
|
end note
|
||
|
|
||
|
class posexcept
|
||
|
note bottom
|
||
|
<i>posexcept</i> is the super-class of
|
||
|
a bunch of exception classes that
|
||
|
do not appear in this diagram
|
||
|
end note
|
||
|
|
||
|
' Text file reading and writing
|
||
|
class TextFileWriter
|
||
|
class TextFileReader
|
||
|
CSVFileReader <|-- TextFileReader
|
||
|
}
|
||
|
|
||
|
|
||
|
'''''''''''''''''''''''''
|
||
|
' Configuration classes '
|
||
|
'''''''''''''''''''''''''
|
||
|
|
||
|
package "Configuration classes" {
|
||
|
class Configuration << static >>
|
||
|
UserInterface ..> Configuration
|
||
|
}
|
||
|
|
||
|
owlps_positionerd *-- UserInterface
|
||
|
Configuration <.. Positioning
|
||
|
|
||
|
|
||
|
''''''''''''''''''''''
|
||
|
' Data input classes '
|
||
|
''''''''''''''''''''''
|
||
|
|
||
|
package "Data input classes" {
|
||
|
class InputDataReader
|
||
|
MobilesReaderCSV <.. InputDataReader
|
||
|
CapturePointsReaderCSV <.. InputDataReader
|
||
|
TopologyReaderCSV <.. InputDataReader
|
||
|
}
|
||
|
|
||
|
owlps_positionerd *-- InputDataReader
|
||
|
UserInterface --> InputDataReader
|
||
|
|
||
|
CSVFileReader <-- MobilesReaderCSV
|
||
|
CSVFileReader <-- CapturePointsReaderCSV
|
||
|
CSVFileReader <-- TopologyReaderCSV
|
||
|
|
||
|
|
||
|
'''''''''''''''''
|
||
|
' Input classes '
|
||
|
'''''''''''''''''
|
||
|
|
||
|
package "Input classes" {
|
||
|
class Input
|
||
|
|
||
|
abstract InputMedium --* Input
|
||
|
InputCSV --|> InputMedium
|
||
|
InputUDPSocket --|> InputMedium
|
||
|
|
||
|
abstract InputLogMedium --* Input
|
||
|
InputLogCSV --|> InputLogMedium
|
||
|
}
|
||
|
|
||
|
Input --* Positioning
|
||
|
InputMedium <-- InputDataReader
|
||
|
|
||
|
CSVFileReader <-- InputCSV
|
||
|
TextFileWriter <-- InputLogCSV
|
||
|
|
||
|
|
||
|
'''''''''''''''''''''''''''''''''
|
||
|
' Positioning algorithm classes '
|
||
|
'''''''''''''''''''''''''''''''''
|
||
|
|
||
|
package "Positioning algorithm classes" {
|
||
|
abstract PositioningAlgorithm
|
||
|
|
||
|
RealPosition --|> PositioningAlgorithm
|
||
|
|
||
|
abstract TrilaterationAlgorithm --|> PositioningAlgorithm
|
||
|
InterlinkNetworks --|> TrilaterationAlgorithm
|
||
|
FBCM --|> TrilaterationAlgorithm
|
||
|
abstract TrilaterationMethod <-- TrilaterationAlgorithm
|
||
|
MinMax --|> TrilaterationMethod
|
||
|
|
||
|
abstract CartographyAlgorithm --|> PositioningAlgorithm
|
||
|
NSS --|> CartographyAlgorithm
|
||
|
|
||
|
FRBHMBasic --|> FBCM
|
||
|
FRBHMBasic --|> NSS
|
||
|
}
|
||
|
|
||
|
PositioningAlgorithm <.. Positioning
|
||
|
|
||
|
|
||
|
''''''''''''''''''
|
||
|
' Output classes '
|
||
|
''''''''''''''''''
|
||
|
|
||
|
package "Output classes" {
|
||
|
class Output
|
||
|
abstract OutputMedium --* Output
|
||
|
OutputCSV --|> OutputMedium
|
||
|
OutputTerminal --|> OutputMedium
|
||
|
abstract OutputNetworkSocket --|> OutputMedium
|
||
|
OutputUDPSocket --|> OutputNetworkSocket
|
||
|
OutputTCPSocketEvAAL --|> OutputNetworkSocket
|
||
|
}
|
||
|
|
||
|
Output --* Positioning
|
||
|
TextFileWriter <-- OutputCSV
|
||
|
|
||
|
|
||
|
''''''''''''''''
|
||
|
' Data classes '
|
||
|
''''''''''''''''
|
||
|
|
||
|
package "Data classes" {
|
||
|
class Stock << static >>
|
||
|
|
||
|
' Points
|
||
|
class Point3D
|
||
|
Waypoint --|> Point3D
|
||
|
ReferencePoint --|> Point3D
|
||
|
ReferencePoint --o Stock
|
||
|
|
||
|
' Deployment area
|
||
|
Building --o Stock
|
||
|
Area --o Building
|
||
|
Waypoint --o Stock
|
||
|
Waypoint -- Area
|
||
|
Waypoint -- Building
|
||
|
|
||
|
' Devices
|
||
|
WifiDevice <|-- Mobile
|
||
|
Mobile --o Stock
|
||
|
WifiDevice <|-- CapturePoint
|
||
|
CapturePoint --o Stock
|
||
|
|
||
|
' Requests & results
|
||
|
Request <-- InputMedium
|
||
|
Mobile <-- Request
|
||
|
Timestamp --* Request
|
||
|
Measurement --* Request
|
||
|
Measurement -- CapturePoint
|
||
|
Result -- Request
|
||
|
Result *-- Point3D
|
||
|
ResultList *-- Result
|
||
|
CalibrationRequest --|> Request
|
||
|
ReferencePoint -- CalibrationRequest
|
||
|
Direction --* CalibrationRequest
|
||
|
}
|
||
|
|
||
|
owlps_positionerd o-- Stock
|
||
|
ReferencePoint <-- Positioning
|
||
|
ResultList <-- Output
|
||
|
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
' vim: tw=0
|