mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 12:46:03 +00:00
50_Signalbot: improved uiTable error handling
git-svn-id: https://svn.fhem.de/fhem/trunk@25592 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
2ed59dadc5
commit
fb3880e872
@ -1,6 +1,6 @@
|
|||||||
##############################################
|
##############################################
|
||||||
#$Id$
|
#$Id$
|
||||||
my $Signalbot_VERSION="3.5";
|
my $Signalbot_VERSION="3.6";
|
||||||
# Simple Interface to Signal CLI running as Dbus service
|
# Simple Interface to Signal CLI running as Dbus service
|
||||||
# Author: Adimarantis
|
# Author: Adimarantis
|
||||||
# License: GPL
|
# License: GPL
|
||||||
@ -413,6 +413,7 @@ sub Signalbot_Set($@) { #
|
|||||||
} else {
|
} else {
|
||||||
my $png=Signalbot_getPNG($hash,$file);
|
my $png=Signalbot_getPNG($hash,$file);
|
||||||
return "File not found: $file" if !defined $png;
|
return "File not found: $file" if !defined $png;
|
||||||
|
return $png if ($png =~ /^Error:.*/);
|
||||||
push @newatt, $png;
|
push @newatt, $png;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1962,6 +1963,7 @@ sub Signalbot_getPNG(@) {
|
|||||||
$svg=Signalbot_DOIFAsPng($shash,@special);
|
$svg=Signalbot_DOIFAsPng($shash,@special);
|
||||||
}
|
}
|
||||||
return undef if !defined $svg;
|
return undef if !defined $svg;
|
||||||
|
return $svg if ($svg =~ /^Error:.*/);
|
||||||
return Signalbot_copyToFile($svg,"png");
|
return Signalbot_copyToFile($svg,"png");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -2012,7 +2014,7 @@ Signalbot_DOIFAsPng($@)
|
|||||||
my $table=$hash->{$target}{table};
|
my $table=$hash->{$target}{table};
|
||||||
|
|
||||||
# "Error: uiTable/uiState not defined"
|
# "Error: uiTable/uiState not defined"
|
||||||
return undef if (!defined $table);
|
return "Error: $target not defined in $hash->{NAME}" if (!defined $table);
|
||||||
|
|
||||||
my $id=0;
|
my $id=0;
|
||||||
my $cmd;
|
my $cmd;
|
||||||
@ -2044,30 +2046,29 @@ Signalbot_DOIFAsPng($@)
|
|||||||
if (defined $cmd && $cmd ne "") {
|
if (defined $cmd && $cmd ne "") {
|
||||||
$cmd="package ui_Table;"."$cmd".";";
|
$cmd="package ui_Table;"."$cmd".";";
|
||||||
$svgdata=eval($cmd);
|
$svgdata=eval($cmd);
|
||||||
print $@;
|
return if $@;
|
||||||
} else {
|
} else {
|
||||||
#print "Error: uiTable format error (no card)";
|
return "Error: uiTable format error";
|
||||||
return undef;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# "Error: getting data from card"
|
return "Error: getting converting uiTable to SVG for $cmd" if (! defined $svgdata);
|
||||||
return undef if (! defined $svgdata);
|
|
||||||
$svgdata='<?xml version="1.0" encoding="UTF-8"?> <svg>'.$svgdata.'</svg>';
|
$svgdata='<?xml version="1.0" encoding="UTF-8"?> <svg>'.$svgdata.'</svg>';
|
||||||
|
|
||||||
|
my $ret;
|
||||||
eval {
|
eval {
|
||||||
require Image::LibRSVG;
|
require Image::LibRSVG;
|
||||||
$rsvg = new Image::LibRSVG();
|
$rsvg = new Image::LibRSVG();
|
||||||
if ($sizex != -1 && $sizey !=-1) {
|
if ($sizex != -1 && $sizey !=-1) {
|
||||||
$rsvg->loadFromStringAtZoomWithMax($svgdata, $zoom, $zoom, $sizex, $sizey );
|
$ret=$rsvg->loadFromStringAtZoomWithMax($svgdata, $zoom, $zoom, $sizex, $sizey );
|
||||||
} else {
|
} else {
|
||||||
$rsvg->loadFromStringAtZoom($svgdata, $zoom, $zoom);
|
$ret=$rsvg->loadFromStringAtZoom($svgdata, $zoom, $zoom);
|
||||||
}
|
}
|
||||||
$pngImg = $rsvg->getImageBitmap();
|
$pngImg = $rsvg->getImageBitmap() if $ret;
|
||||||
};
|
};
|
||||||
if (defined $pngImg && $pngImg ne "") {
|
if (defined $pngImg && $pngImg ne "") {
|
||||||
return $pngImg if $pngImg;
|
return $pngImg if $pngImg;
|
||||||
}
|
}
|
||||||
return;
|
return "Error: Converting SVG to PNG for $cmd";
|
||||||
}
|
}
|
||||||
|
|
||||||
#Get OSRelease Version
|
#Get OSRelease Version
|
||||||
|
Loading…
x
Reference in New Issue
Block a user