diff --git a/doc/figures/positioner_class_diagram.uxf b/doc/figures/positioner_class_diagram.uxf new file mode 100644 index 0000000..f56f5e4 --- /dev/null +++ b/doc/figures/positioner_class_diagram.uxf @@ -0,0 +1,1958 @@ + + //fontsize=14 + 6 + + com.umlet.element.Class + + 648 + 378 + 60 + 36 + + Positioning +// Centralise le calcul des +// positions +-- +//-distance_matrix: float** + + + + com.umlet.element.Class + + 624 + 264 + 66 + 18 + + UserInterface +// Classe utilitaire servant à +// récupérer la configuration +// depuis plusieurs endroits : +// arguments de la ligne de +// commandes, fichier de +// configuration, peut-être un +// jour base de données… + + + + com.umlet.element.Class + + 702 + 126 + 186 + 78 + + Point3D +-- +#x: float +#y: float +#z: float +-- ++square_distance(Point3D): float ++distance(Point3D): float ++distance_to_sphere(Point3D, float): float + + + + com.umlet.element.Class + + 918 + 150 + 72 + 18 + + ReferencePoint + + + + com.umlet.element.Relation + + 870 + 144 + 60 + 30 + + lt=<<- + 18;18;48;18 + + + com.umlet.element.Class + + 456 + 30 + 72 + 30 + + Building +-- +#name: string + + + + com.umlet.element.Class + + 450 + 144 + 78 + 30 + + Area +-- +#name: string + + + + com.umlet.element.Class + + 594 + 90 + 60 + 18 + + Waypoint + + + + com.umlet.element.Relation + + 636 + 90 + 78 + 48 + + lt=<<- + 66;36;18;18 + + + com.umlet.element.Relation + + 480 + 42 + 30 + 114 + + lt=<<<<- +m2=1..n + 18;18;18;102 + + + com.umlet.element.Relation + + 342 + 84 + 264 + 144 + + lt=<<<<- +m2=0..n + 18;132;42;18;252;18 + + + com.umlet.element.Relation + + 384 + 378 + 276 + 120 + + lt=<<<- +m1=0..1 +m2=0..n + 264;18;18;108 + + + com.umlet.element.Relation + + 690 + 384 + 282 + 78 + + lt=<<<- +m1=0..1 +m2=0..n + 18;18;270;66 + + + com.umlet.element.Class + + 624 + 444 + 96 + 18 + + /PositioningAlgorithm/ +fg= + + + + com.umlet.element.Relation + + 654 + 396 + 30 + 60 + + lt=<<<<- +m2=1..n + 18;18;18;48 + + + com.umlet.element.Class + + 654 + 210 + 90 + 18 + + owlps-positioning +bg=yellow + + + + com.umlet.element.Class + + 318 + 270 + 114 + 30 + + AccessPoint +-- +#frequency: unsigned int +//#friis_idx + + + + com.umlet.element.Class + + 150 + 210 + 96 + 18 + + Mobile + + + + com.umlet.element.Relation + + 642 + 210 + 60 + 66 + + lt=<<<<- + 48;18;18;54 + + + com.umlet.element.Relation + + 672 + 210 + 48 + 180 + + lt=<<<<- + 36;18;36;114;18;168 + + + com.umlet.element.Class + + 234 + 624 + 42 + 18 + + InputDB +fg=red + + + + com.umlet.element.Class + + 282 + 486 + 132 + 24 + + Input +// Gère les entrées +-- ++get_next_request(): Request + + + + com.umlet.element.Class + + 270 + 534 + 132 + 42 + + /InputMedium/ +//extends input flow ? +-- + +-- +/+get_next_request(): Request/ + + + + com.umlet.element.Relation + + 234 + 558 + 60 + 78 + + lt=<<- + 48;18;18;66 + + + com.umlet.element.Class + + 282 + 624 + 42 + 18 + + InputXML +fg=red + + + + com.umlet.element.Relation + + 288 + 558 + 36 + 78 + + lt=<<- + 24;18;18;66 + + + com.umlet.element.Class + + 330 + 624 + 108 + 36 + + InputCSV +-- +#input_file_name: string +#input_file: std::ifstream + + + + com.umlet.element.Relation + + 330 + 558 + 36 + 78 + + lt=<<- + 18;18;24;66 + + + com.umlet.element.Class + + 390 + 678 + 90 + 30 + + /InputNetworkSocket/ +fg=red +-- +#listen_port: int + + + + com.umlet.element.Relation + + 384 + 558 + 114 + 78 + + lt=<<- + 18;18;102;66 + + + com.umlet.element.Relation + + 312 + 492 + 30 + 54 + + lt=<<<<- +// A priori, il n'y a pas de raison +// d'avoir plusieurs sources en +// entrée. + 18;18;18;42 + + + com.umlet.element.Class + + 444 + 624 + 84 + 30 + + /InputSocket/ +fg=red +-- +#listen_socket: int + + + + com.umlet.element.Relation + + 414 + 636 + 60 + 54 + + lt=<<- + 48;18;18;42 + + + com.umlet.element.Relation + + 474 + 636 + 60 + 54 + + lt=<<- + 18;18;48;42 + + + com.umlet.element.Class + + 486 + 678 + 90 + 30 + + InputUnixSocket +fg=red +-- +#sock_name: string + + + + com.umlet.element.Class + + 960 + 450 + 60 + 18 + + Output +// Gère les sorties de résultats + + + + com.umlet.element.Class + + 1008 + 510 + 72 + 18 + + /OutputMedium/ + + + + com.umlet.element.Relation + + 1014 + 510 + 30 + 66 + + lt=<<- + 18;18;18;54 + + + com.umlet.element.Class + + 1062 + 564 + 54 + 18 + + OutputCSV + + + + com.umlet.element.Relation + + 1026 + 510 + 66 + 66 + + lt=<<- + 18;18;54;54 + + + com.umlet.element.Relation + + 1092 + 564 + 72 + 78 + + lt=<<- + 60;18;18;66 + + + com.umlet.element.Class + + 1122 + 564 + 96 + 18 + + /OutputNetworkSocket/ + + + + com.umlet.element.Class + + 1068 + 630 + 84 + 18 + + OutputUDPSocket + + + + com.umlet.element.Relation + + 1050 + 510 + 114 + 66 + + lt=<<- + 18;18;102;54 + + + com.umlet.element.Relation + + 978 + 450 + 78 + 72 + + lt=<<<<- +m2=1..n + 18;18;66;60 + + + com.umlet.element.Relation + + 1080 + 384 + 78 + 90 + + lt=<<- + 66;18;18;78 + + + com.umlet.element.Class + + 1002 + 564 + 54 + 18 + + OutputXML +fg=red + + + + com.umlet.element.Class + + 948 + 564 + 48 + 18 + + OutputDB +fg=red + + + + com.umlet.element.Class + + 876 + 564 + 66 + 18 + + OutputTerminal + + + + com.umlet.element.Relation + + 894 + 510 + 126 + 66 + + lt=<<- + 114;18;18;54 + + + com.umlet.element.Relation + + 954 + 510 + 78 + 66 + + lt=<<- + 66;18;18;54 + + + com.umlet.element.Relation + + 228 + 204 + 114 + 30 + + lt=<<<<- +m2=0..n + 102;18;18;18 + + + com.umlet.element.Relation + + 396 + 168 + 318 + 114 + + lt=<<<<- +coordinates +m1=0..n + 18;102;216;30;306;30 + + + com.umlet.element.Relation + + 510 + 138 + 204 + 42 + + lt=<<<<- +coordinates +m2=2 +m1=0..n + 18;30;192;30 + + + com.umlet.element.Relation + + 510 + 90 + 114 + 72 + + lt=- +m1=1..n +m2=0..n + 18;60;102;18 + + + com.umlet.element.Relation + + 360 + 42 + 108 + 186 + + lt=->>>> +m1=0..n + 96;18;18;174 + + + com.umlet.element.Relation + + 690 + 150 + 300 + 246 + + lt=-> +m2=0..n + 18;234;288;120;288;18 + + + com.umlet.element.Class + + 624 + 294 + 66 + 18 + + Configuration +bg=green +// Stocke la configuration + + + + com.umlet.element.Relation + + 636 + 264 + 30 + 42 + + lt=- + 18;30;18;18 + + + com.umlet.element.Relation + + 642 + 294 + 30 + 96 + + lt=- + 18;18;18;84 + + + com.umlet.element.Class + + 396 + 732 + 72 + 18 + + InputUDPSocket + + + + com.umlet.element.Relation + + 414 + 690 + 30 + 54 + + lt=<<- + 18;18;18;42 + + + com.umlet.element.Class + + 204 + 330 + 96 + 36 + + Measurement +// Représente une liste de signaux reçus d'un +// mobile par un AP. +-- +#average_ss: float +#ss_list: vector<int> + + + + com.umlet.element.Relation + + 114 + 210 + 126 + 216 + + lt=<- +m2=0..n +transmitter + 42;18;42;114;114;204 + + + com.umlet.element.Relation + + 282 + 282 + 84 + 60 + + lt=- +m2=0..n +receiver + 72;18;18;48 + + + com.umlet.element.Relation + + 234 + 414 + 48 + 132 + + lt=>- + 36;120;18;18 + + + com.umlet.element.Relation + + 876 + 150 + 78 + 96 + + lt=- +m2=1..n + 66;18;18;84 + + + com.umlet.element.Class + + 612 + 564 + 42 + 18 + + NSS +// Anciennement RADAR + + + + com.umlet.element.Class + + 534 + 564 + 36 + 18 + + FBCM + + + + com.umlet.element.Class + + 558 + 606 + 60 + 18 + + FRBHMBasic + + + + com.umlet.element.Relation + + 540 + 504 + 72 + 72 + + lt=<<- + 60;18;18;60 + + + com.umlet.element.Relation + + 618 + 504 + 108 + 72 + + lt=<<- + 96;18;18;60 + + + com.umlet.element.Relation + + 720 + 504 + 42 + 114 + + lt=<<- + 30;18;18;102 + + + com.umlet.element.Class + + 102 + 564 + 78 + 18 + + /InputLogMedium/ + + + + com.umlet.element.Relation + + 126 + 480 + 168 + 96 + + lt=<<<<- +m2=0..n + 156;18;18;18;18;84 + + + com.umlet.element.Class + + 0 + 624 + 54 + 18 + + InputLogDB +fg=red + + + + com.umlet.element.Relation + + 6 + 564 + 132 + 72 + + lt=<<- + 120;18;18;60 + + + com.umlet.element.Class + + 168 + 624 + 60 + 18 + + InputLogXML +fg=red + + + + com.umlet.element.Relation + + 132 + 564 + 78 + 72 + + lt=<<- + 18;18;66;60 + + + com.umlet.element.Class + + 60 + 624 + 102 + 36 + + InputLogCSV +-- +#log_file_name: string +#log_file: std::ofstream + + + + com.umlet.element.Relation + + 102 + 564 + 48 + 72 + + lt=<<- + 36;18;18;60 + + + com.umlet.element.Class + + 1122 + 384 + 78 + 18 + + /StatisticsMedium/ +fg=red + + + + com.umlet.element.Relation + + 978 + 372 + 156 + 90 + + lt=<<<<- +m1=0..1 +m2=0..n + 18;78;144;18 + + + com.umlet.element.Class + + 1044 + 462 + 84 + 18 + + StatisticsTerminal +fg=red + + + + com.umlet.element.Class + + 1134 + 462 + 66 + 18 + + StatisticsXML +fg=red + + + + com.umlet.element.Relation + + 1140 + 384 + 36 + 90 + + lt=<<- + 18;18;24;78 + + + com.umlet.element.Class + + 1206 + 462 + 66 + 18 + + StatisticsDB +fg=red + + + + com.umlet.element.Relation + + 1158 + 384 + 96 + 90 + + lt=<<- + 18;18;84;78 + + + com.umlet.element.Class + + 834 + 234 + 90 + 18 + + CalibrationRequest + + + + com.umlet.element.Relation + + 258 + 234 + 642 + 198 + + lt=<<- + 18;186;630;60;630;18 + + + com.umlet.element.Class + + 204 + 252 + 96 + 60 + + WifiDevice +-- +#ip_addr: string +#mac_addr: string +#antenna_gain: float +#trx_power: float + + + + com.umlet.element.Relation + + 282 + 264 + 48 + 30 + + lt=<<- + 18;18;36;18 + + + com.umlet.element.Relation + + 156 + 210 + 60 + 96 + + lt=<<- + 48;84;18;84;18;18 + + + com.umlet.element.Class + + 702 + 606 + 72 + 18 + + FRBHMDiscrete +fg=red + + + + com.umlet.element.Relation + + 540 + 564 + 60 + 54 + + lt=<<- + 18;18;48;42 + + + com.umlet.element.Class + + 450 + 564 + 78 + 18 + + InterlinkNetworks + + + + com.umlet.element.Relation + + 468 + 504 + 126 + 72 + + lt=<<- + 114;18;18;60 + + + com.umlet.element.Class + + 780 + 606 + 84 + 18 + + FRBHMContinuous +fg=red + + + + com.umlet.element.Relation + + 750 + 504 + 60 + 114 + + lt=<<- + 18;18;48;102 + + + com.umlet.element.Class + + 228 + 414 + 48 + 18 + + Request +// Représente une requête envoyée +// par un mobile. + + + + com.umlet.element.Relation + + 234 + 348 + 30 + 78 + + lt=<<<<- +m2=1..n + 18;66;18;18 + + + com.umlet.element.Class + + 330 + 216 + 48 + 18 + + Stock +bg=green +// Classe de stockage, +// attributs statiques + + + + com.umlet.element.Relation + + 360 + 204 + 306 + 30 + + lt=<<<<- + 294;18;18;18 + + + com.umlet.element.Relation + + 330 + 216 + 30 + 66 + + lt=<<<<- +m2=0..n + 18;18;18;54 + + + com.umlet.element.Class + + 252 + 144 + 42 + 18 + + PosUtil +bg=green +// Classe utilitaire, méthodes +// statiques et #define + + + + com.umlet.element.Class + + 888 + 324 + 60 + 18 + + Result + + + + com.umlet.element.Relation + + 960 + 324 + 90 + 138 + + lt=>- + 18;126;78;18 + + + com.umlet.element.Relation + + 732 + 186 + 168 + 150 + + lt=->>>> +position + 36;18;36;108;156;138 + + + com.umlet.element.Relation + + 258 + 318 + 642 + 120 + + lt=<- + 630;18;18;108 + + + com.umlet.element.Class + + 102 + 438 + 132 + 36 + + Timestamp +-- +#timestamp: struct timespec +-- ++now(): bool + + + + com.umlet.element.Relation + + 138 + 402 + 102 + 48 + + lt=<<<<- + 90;18;18;18;18;36 + + + com.umlet.element.Class + + 750 + 450 + 60 + 18 + + RealPosition +// Faux algorithme qui retourne +// la position réelle (si disponible) + + + + com.umlet.element.Relation + + 702 + 438 + 60 + 30 + + lt=<<- + 18;18;48;18 + + + com.umlet.element.Class + + 246 + 114 + 60 + 18 + + posexcept.hh +// Ensemble de classes d'exceptions + + + + com.umlet.element.Class + + 1014 + 234 + 54 + 18 + + Direction + + + + com.umlet.element.Relation + + 906 + 222 + 120 + 30 + + lt=<<<<- + 18;18;108;18 + + + com.umlet.element.Relation + + 324 + 0 + 636 + 228 + + lt=->>>> +m1=0..n + 624;150;624;18;30;18;18;216 + + + com.umlet.element.Relation + + 360 + 216 + 486 + 54 + + lt=->>>> +m1=0..n + 474;24;66;42;18;18 + + + com.umlet.element.Class + + 714 + 750 + 108 + 30 + + TextFileWriter +-- +-- ++write_text(string): bool + + + + com.umlet.element.Relation + + 738 + 564 + 360 + 198 + + lt=<- + 18;186;348;18 + + + com.umlet.element.Relation + + 96 + 642 + 630 + 126 + + lt=<- + 618;114;228;114;18;18 + + + com.umlet.element.Class + + 576 + 504 + 108 + 18 + + /TrilaterationAlgorithm/ + + + + com.umlet.element.Class + + 438 + 504 + 102 + 18 + + /TrilaterationMethod/ + + + + com.umlet.element.Class + + 540 + 474 + 48 + 18 + + MinMax + + + + com.umlet.element.Relation + + 522 + 492 + 66 + 30 + + lt=-> + 54;18;18;18 + + + com.umlet.element.Relation + + 618 + 444 + 66 + 72 + + lt=<<- + 54;18;18;60 + + + com.umlet.element.Relation + + 474 + 468 + 78 + 48 + + lt=<<- + 18;36;66;18 + + + com.umlet.element.Class + + 708 + 504 + 102 + 18 + + /CartographyAlgorithm/ + + + + com.umlet.element.Relation + + 678 + 444 + 96 + 72 + + lt=<<- + 18;18;84;60 + + + com.umlet.element.Relation + + 666 + 504 + 144 + 114 + + lt=<<- + 18;18;132;102 + + + com.umlet.element.Relation + + 570 + 564 + 66 + 54 + + lt=<<- + 54;18;18;42 + + + com.umlet.element.Relation + + 648 + 504 + 102 + 114 + + lt=<<- + 18;18;90;102 + + + com.umlet.element.Class + + 420 + 330 + 102 + 36 + + CSVFileReader +-- +-- ++next_line(): bool + + + + com.umlet.element.Relation + + 396 + 348 + 60 + 288 + + lt=<- + 48;18;18;276 + + + com.umlet.element.Class + + 552 + 318 + 90 + 18 + + TopologyReaderCSV + + + + com.umlet.element.Relation + + 504 + 312 + 60 + 42 + + lt=<- + 18;30;48;18 + + + com.umlet.element.Relation + + 564 + 252 + 72 + 30 + + lt=<- + 18;18;60;18 + + + com.umlet.element.Class + + 306 + 360 + 108 + 30 + + TextFileReader +-- +-- ++read_line(string): bool + + + + com.umlet.element.Relation + + 348 + 330 + 84 + 42 + + lt=<<- + 18;30;18;18;72;18 + + + com.umlet.element.Class + + 504 + 264 + 78 + 18 + + InputDataReader + + + + com.umlet.element.Relation + + 552 + 264 + 60 + 66 + + lt=<- + 48;54;18;18 + + + com.umlet.element.Relation + + 510 + 30 + 96 + 72 + + lt=- +m1=1..n +m2=1..n + 18;18;84;60 + + + com.umlet.element.Class + + 630 + 606 + 66 + 18 + + NSSViterbi +// Anciennement RADARViterbi +fg=red + + + + com.umlet.element.Class + + 720 + 666 + 48 + 18 + + Viterbi +fg=red + + + + com.umlet.element.Relation + + 624 + 564 + 54 + 54 + + lt=<<- + 18;18;42;42 + + + com.umlet.element.Relation + + 666 + 606 + 78 + 72 + + lt=<<- + 66;60;18;18 + + + com.umlet.element.Relation + + 732 + 606 + 72 + 72 + + lt=<<- + 18;60;60;18 + + + com.umlet.element.Relation + + 726 + 606 + 30 + 72 + + lt=<<- + 18;60;18;18 + + + com.umlet.element.Class + + 456 + 294 + 108 + 18 + + AccessPointsReaderCSV + + + + com.umlet.element.Relation + + 498 + 264 + 36 + 42 + + lt=<- + 18;30;24;18 + + + com.umlet.element.Relation + + 468 + 294 + 42 + 48 + + lt=<- + 18;36;30;18 + + + com.umlet.element.Class + + 1014 + 324 + 54 + 18 + + ResultList + + + + com.umlet.element.Relation + + 930 + 312 + 96 + 30 + + lt=<<<<- +m2=0..n + 84;18;18;18 + + + com.umlet.element.Class + + 372 + 306 + 78 + 18 + + MobilesReaderCSV + + + + com.umlet.element.Relation + + 426 + 258 + 90 + 60 + + lt=<- + 18;48;18;18;78;18 + + + com.umlet.element.Relation + + 366 + 306 + 66 + 42 + + lt=<- + 54;30;18;30;18;18 + + + com.umlet.element.Class + + 1158 + 630 + 102 + 18 + + OutputTCPSocketEvAAL + + + + com.umlet.element.Relation + + 1158 + 564 + 60 + 78 + + lt=<<- + 18;18;48;66 + + + com.umlet.element.Class + + 306 + 426 + 108 + 36 + + CSVStringReader +-- +-- ++set_str(string) ++read_field(<T>): bool + + + + com.umlet.element.Relation + + 396 + 348 + 84 + 96 + + lt=<<- + 18;84;72;84;72;18 + + + + com.umlet.element.Class + + 138 + 42 + 60 + 18 + + StaticClass +bg=green + + + + com.umlet.element.Class + + 138 + 66 + 60 + 18 + + executable +bg=yellow + + + + com.umlet.element.custom.Systemborder + + 132 + 24 + 84 + 96 + + Color legend + + + + com.umlet.element.Class + + 138 + 96 + 72 + 18 + + Unimplemented +fg=red + + + +