mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
49_SSCam: contrib 9.3.0
git-svn-id: https://svn.fhem.de/fhem/trunk@22256 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e8db5ece40
commit
06e5ea0f40
@ -358,6 +358,14 @@ my %SSCAM_imc = ( # disbled String m
|
||||
1 => { 0 => "off", 1 => "inactive" },
|
||||
);
|
||||
|
||||
my %zd = ( # Hash der Zoomsteuerung
|
||||
".++" => {dir => "in", sttime => 6, moveType => "Start", panimg => "CAMLEFTFAST.png", },
|
||||
"+" => {dir => "in", sttime => 0.1, moveType => "Start", panimg => "CAMLEFT.png", },
|
||||
"stop" => {dir => undef, sttime => undef, moveType => "Stop" , panimg => undef, },
|
||||
"-" => {dir => "out", sttime => 0.1, moveType => "Start", panimg => "CAMRIGHT.png", },
|
||||
"--." => {dir => "out", sttime => 6, moveType => "Start", panimg => "CAMRIGHTFAST.png", }
|
||||
);
|
||||
|
||||
# Standardvariablen und Forward-Deklaration
|
||||
my $SSCam_slim = 3; # default Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||
my $SSCAM_snum = "1,2,3,4,5,6,7,8,9,10"; # mögliche Anzahl der abzurufenden Schnappschüsse mit snapGallery
|
||||
@ -2882,14 +2890,6 @@ sub SSCam_setZoom {
|
||||
}
|
||||
|
||||
if ($hash->{HELPER}{ACTIVE} eq "off") {
|
||||
my %zd = (
|
||||
"+" => {dir => "in", sttime => 0.5, moveType => "Start" },
|
||||
".++" => {dir => "in", sttime => 6, moveType => "Start" },
|
||||
"stop" => {dir => undef, sttime => undef, moveType => "Stop" },
|
||||
"-" => {dir => "out", sttime => 0.5, moveType => "Start" },
|
||||
"--." => {dir => "out", sttime => 6, moveType => "Start" }
|
||||
);
|
||||
|
||||
$hash->{HELPER}{ZOOM}{DIR} = $zd{$op}{dir} // $hash->{HELPER}{ZOOM}{DIR}; # Richtung (in / out)
|
||||
$hash->{HELPER}{ZOOM}{MOVETYPE} = $zd{$op}{moveType}; # Start / Stop
|
||||
$hash->{HELPER}{ZOOM}{STOPTIME} = $zd{$op}{sttime}; # Stopzeit -> Verzögerungszeit für Stop nach Start
|
||||
@ -7384,6 +7384,9 @@ sub SSCam_ptzpanel {
|
||||
$ptz_ret .= "<style>TD.ptzcontrol {padding: 5px 7px;}</style>";
|
||||
$ptz_ret .= "<style>TD.pcenter {text-align: center;} </style>";
|
||||
$ptz_ret .= "<style>.defsize { font-size:16px; } </style>";
|
||||
|
||||
### PTZ-Elemente
|
||||
#########################
|
||||
$ptz_ret .= '<table class="rc_body defsize">';
|
||||
|
||||
for my $rownr (0..9) {
|
||||
@ -7397,8 +7400,7 @@ sub SSCam_ptzpanel {
|
||||
for my $btnnr (0..$#btn) {
|
||||
$ptz_ret .= "<td class='ptzcontrol'>";
|
||||
if ($btn[$btnnr] ne "") {
|
||||
my $cmd;
|
||||
my $img;
|
||||
my ($cmd,$img);
|
||||
|
||||
if ($btn[$btnnr] =~ /(.*?):(.*)/) { # enthält Komando -> <command>:<image>
|
||||
$cmd = $1;
|
||||
@ -7435,8 +7437,57 @@ sub SSCam_ptzpanel {
|
||||
}
|
||||
$ptz_ret .= "</table>";
|
||||
|
||||
### Zoom
|
||||
###############################
|
||||
if(SSCam_IsCapZoom($hash)) { # wenn Zoom Eigenschaft
|
||||
|
||||
$ptz_ret .= '<table class="rc_body defsize">';
|
||||
$ptz_ret .= "<tr>";
|
||||
$ptz_ret .= "<td class='ptzcontrol pcenter'; colspan=4>";
|
||||
$ptz_ret .= 'Zoom: ';
|
||||
$ptz_ret .= "</td>";
|
||||
$ptz_ret .= "</tr>";
|
||||
$ptz_ret .= "<tr>";
|
||||
|
||||
my @za = qw(.++ + - --.);
|
||||
|
||||
for my $cmd (@za) {
|
||||
$ptz_ret .= "<td class='ptzcontrol'>";
|
||||
|
||||
my $img = $zd{$cmd}{panimg};
|
||||
if(!$img) {
|
||||
$ptz_ret .= $cmd;
|
||||
$ptz_ret .= "</td>";
|
||||
$ptz_ret .= "</tr>";
|
||||
$ptz_ret .= "<tr>";
|
||||
next;
|
||||
}
|
||||
|
||||
if ($img =~ m/\.svg/x) { # Verwendung für SVG's
|
||||
$img = FW_makeImage($img, $cmd, "rc-button");
|
||||
|
||||
} else { # $FW_ME = URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist, z.B. /fhem
|
||||
if($ftui) {
|
||||
$img = "<img src=\"$FW_ME/$iconpath/$iconprefix$img\" height=\"$pbsf%\" width=\"$pbsf%\">";
|
||||
} else {
|
||||
$img = "<img src=\"$FW_ME/$iconpath/$iconprefix$img\" height=\"$pbs%\" width=\"$pbs%\">";
|
||||
}
|
||||
}
|
||||
|
||||
my $cmd1 = "FW_cmd('$FW_ME$FW_subdir?XHR=1&cmd=set $name setZoom $cmd')"; # $FW_subdir = Sub-path in URL, used by FLOORPLAN/weblink
|
||||
$cmd1 = "ftui.setFhemStatus('set $name setZoom $cmd')" if($ftui);
|
||||
|
||||
$ptz_ret .= "<a onClick=\"$cmd1\">$img</a>";
|
||||
|
||||
$ptz_ret .= "</td>";
|
||||
}
|
||||
|
||||
$ptz_ret .= "</tr>";
|
||||
$ptz_ret .= "</table>";
|
||||
}
|
||||
|
||||
### add Preset / Patrols
|
||||
###############################
|
||||
# add Preset / Patrols / Zoom
|
||||
if(!$ftui) {
|
||||
my ($Presets,$Patrols,$zoom,$fn);
|
||||
my $cmdPreset = "goPreset";
|
||||
@ -7470,20 +7521,6 @@ sub SSCam_ptzpanel {
|
||||
$Patrols = FW_pH "cmd.$name=set $name $cmdPatrol", $cmdPatrol, 0, "", 1, 1;
|
||||
}
|
||||
|
||||
## Zoom
|
||||
for $fn (sort keys %{$data{webCmdFn}}) {
|
||||
no strict "refs";
|
||||
$zoom = &{$data{webCmdFn}{$fn}}($FW_wname,$name,"",$cmdZoom,$SSCam_valZoom);
|
||||
use strict "refs";
|
||||
last if(defined($zoom));
|
||||
}
|
||||
|
||||
if($zoom) {
|
||||
$zoom =~ s,^<td[^>]*>(.*)</td>$,$1,;
|
||||
} else {
|
||||
$zoom = FW_pH "cmd.$name=set $name $cmdZoom", $cmdZoom, 0, "", 1, 1;
|
||||
}
|
||||
|
||||
## Ausgabe
|
||||
$ptz_ret .= '<table class="rc_body defsize">';
|
||||
|
||||
@ -7499,12 +7536,6 @@ sub SSCam_ptzpanel {
|
||||
$ptz_ret .= "</tr>";
|
||||
}
|
||||
|
||||
if(SSCam_IsCapZoom($hash)) {
|
||||
$ptz_ret .= "<tr>";
|
||||
$ptz_ret .= "<td>Zoom: </td><td class='pcenter'>$zoom</td>";
|
||||
$ptz_ret .= "</tr>";
|
||||
}
|
||||
|
||||
$ptz_ret .= "</table>";
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user