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
|