2
0
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:
nasseeder1 2020-06-24 19:51:57 +00:00
parent e8db5ece40
commit 06e5ea0f40

View File

@ -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>";
}