aboutsummaryrefslogtreecommitdiffstats
path: root/include/nms/util.pm
diff options
context:
space:
mode:
Diffstat (limited to 'include/nms/util.pm')
-rw-r--r--include/nms/util.pm73
1 files changed, 70 insertions, 3 deletions
diff --git a/include/nms/util.pm b/include/nms/util.pm
index 898aa9a..b71d5a2 100644
--- a/include/nms/util.pm
+++ b/include/nms/util.pm
@@ -49,10 +49,77 @@ sub parse_switches {
return @switches;
}
-# Guesses placement from name to get a starting point
-#
-# FIXME: Move to configuration
+# FIXME: Derive which function from the config/db using the shortname.
+# If we care.
sub guess_placement {
+ return guess_placement_dx($_[0]);
+}
+# Guesses placement from name to get a starting point
+# Digitality X layout
+# FIXME: Basically a stub, since MRGLASS is too slow with the map.
+sub guess_placement_dx {
+ my ($x, $y, $xx, $yy);
+
+ my $name = $_[0];
+ my $src = "unknown";
+ if ($name =~ /^row\d+-\d+$/) {
+ $name =~ /row(\d+)-(\d+)/;
+ my ($e, $s) = ($1, $2);
+ $src = "main";
+
+ $x = int(1400 - (($e-1)/2) * 60);
+ $y = undef;
+
+ if ($s > 1) {
+ $y = 100;
+ } else {
+ $y = 500;
+ }
+
+ $xx = $x + 32;
+ $yy = $y + 300;
+
+ } elsif ($name =~ /^core$/) {
+ $src = "core";
+ $x = 800;
+ $y = 850;
+ $xx = $x + 200;
+ $yy = $y + 100;
+ } elsif ($name =~ /^noc$/) {
+ $src = "noc";
+ $x = 400;
+ $y = 900;
+ $xx = $x + 230;
+ $yy = $y + 40;
+ } elsif ($name =~ /^distro(\d)$/) {
+ my $d = ($1);
+ $src = "distro";
+ $x = 1200 - $d * 900;
+ $y = 415;
+ $xx = $x + 230;
+ $yy = $y + 40;
+ } else {
+ # Fallback to have _some_ position
+ $src = "random";
+ $x = int(rand(1900));
+ $y = int(rand(900));
+ $xx = $x + 20;
+ $yy = $y + 130;
+ };
+
+
+ my %box = (
+ 'src' => "$src",
+ 'x1' => $x,
+ 'y1' => $y,
+ 'xx' => $xx,
+ 'yy' => $yy
+ );
+ return %box;
+}
+
+# Last updated for TG16
+sub guess_placement_tg {
my ($x, $y, $xx, $yy);
my $name = $_[0];