5 use Data::Dump qw(dump);
7 my $filter = join(' ',@ARGV);
11 open(my $o, '<', 'gnuplot/offset.txt');
14 my ( $pn, $o_x, $o_y ) = split(/ /,$_);
15 $offsets->{$pn} = [ $o_x, $o_y ];
21 open(my $o, '<', 'gnuplot/time.txt');
24 my ( $pn, $time ) = split(/ /,$_, 2);
25 $time_limit->{$pn} = $time;
33 open(my $n, '<', 'subvision-numbers.txt');
36 my ( $number, $pn, $imei, $name ) = split(/ /,$_);
38 if ( $filter && $name !~ m/$filter/i ) {
39 warn "SKIP $number $pn\n";
43 my $view = 'sub_' . $number;
46 $view2number->{$view} = $number;
48 my $offset_x = $offsets->{$pn}->[0] // 0;
49 my $offset_y = $offsets->{$pn}->[1] // 0;
51 my $time = $time_limit->{$pn} // '';
53 if ( ! defined( $sql->{$view} ) ) {
55 create or replace view $view as
56 select time, pn, x_axis_angle + $offset_x as x_axis_angle, y_axis_angle + $offset_y as y_axis_angle, power_source_voltage, sensor_temperature, signal_strength
63 select time, pn, x_axis_angle + $offset_x as x_axis_angle, y_axis_angle + $offset_y as y_axis_angle, power_source_voltage, sensor_temperature, signal_strength
69 push @sql_location, qq{
71 to_char(time, 'YYYY-MM-DD HH24:MI:SS') as time, x_axis_angle + $offset_x as x_axis_angle, y_axis_angle + $offset_y as y_axis_angle, sensor_temperature, power_source_voltage, zc.pn
79 open(my $sql_fh, '>', "/tmp/$filter.sql");
80 open(my $shell_fh, '>', "/tmp/$filter.sh");
81 open(my $html_fh, '>', "/tmp/$filter.html");
83 print $html_fh qq{<html>
85 <meta charset=utf-8 />
86 <title>$filter</title>
91 <img src=logo-color.png>
95 foreach my $view ( sort keys %$sql ) {
96 print $sql_fh "drop view $view ;\n";
97 print $sql_fh $sql->{$view} . ";\n";
98 print $sql_fh "grant select on $view to grafana ;\n\n";
100 print $shell_fh "ln -s sub.cgi $view.cgi\n";
103 <h1>$view2number->{$view}</h1>
104 <img src="cgi-bin/$view.cgi" width="100%">
115 drop view sub_$filter ;
116 create or replace view sub_$filter as
117 }, join(' union ', @sql_location) . qq{