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