Skip to content

Commit

Permalink
no message
Browse files Browse the repository at this point in the history
  • Loading branch information
Nall-chan committed Jan 26, 2024
1 parent fc7a855 commit c7a8cc8
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
1 change: 1 addition & 0 deletions ONVIF IO/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"Address is invalid": "Adresse ungültig",
"Failed to get scopes, device not ONVIF compliant!": "Scopes konnten nicht abgerufen werden, Gerät ist nicht ONVIF-konform!",
"No profile in scopes, device not ONVIF compliant!": "Kein Profil in Scopes, Gerät nicht ONVIF-konform!",
"Failed to get GetProfiles on Media2 service. Device reported Media2 support, but does not support this service!": "Fehler beim laden von GetProfiles. Das Gerät meldet Media2 Unterstützung, unterstützt diesen Dienst aber nicht!",
"Failed to get DeviceIO service capabilities. Device reported ONVIF T scope, but is not compliant!": "DeviceIO-Dienstfunktionen konnten nicht abgerufen werden. Das Gerät hat den ONVIF T-Scope gemeldet, ist aber nicht konform!",
"Failed to get Media2 service capabilities. Device reported ONVIF T scope, but is not compliant!": "Fehler beim Abrufen der Media2-Dienstfunktionen. Das Gerät hat den ONVIF T-Scope gemeldet, ist aber nicht konform!",
"Failed to get Imaging service capabilities. Device reported ONVIF T scope, but is not compliant!": "Imaging-Dienstfunktionen konnten nicht abgerufen werden. Das Gerät hat den ONVIF T-Scope gemeldet, ist aber nicht konform!",
Expand Down
27 changes: 22 additions & 5 deletions ONVIF IO/module.php
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,7 @@ protected function StartConnection()
$this->WriteAttributeArray(\ONVIF\IO\Attribute::DigitalInputs, $DigitalInputs);

// Wenn \ONVIF\WSDL::Media2 unterstützt
$Media2Supported = $XAddr[\ONVIF\NS::Media2] != '';
if ($XAddr[\ONVIF\NS::Media2]) {
// 4c.ONVIF Request GetServiceCapabilities an \ONVIF\WSDL::Media2
$MediaCapabilities = $this->GetServiceCapabilities($XAddr[\ONVIF\NS::Media2], \ONVIF\WSDL::Media2); // noch ohne Funktion..
Expand All @@ -631,11 +632,9 @@ protected function StartConnection()
}
}
// 4c.ONVIF Request GetProfiles an \ONVIF\WSDL::Media2
if (!$this->GetProfiles2()) {
$this->SetStatus(IS_EBASE + 2);
return;
}
} else {
$Media2Supported = $this->GetProfiles2();
}
if (!$Media2Supported) {
// Wenn \ONVIF\WSDL::Media2 NICHT unterstützt
// 4c.ONVIF Request GetServiceCapabilities an \ONVIF\WSDL::Media
$MediaCapabilities = $this->GetServiceCapabilities($XAddr[\ONVIF\NS::Media], \ONVIF\WSDL::Media); // noch ohne Funktion..
Expand Down Expand Up @@ -1335,6 +1334,9 @@ protected function GetProfiles2(string $Token = null, string $ConfigurationEnume
});
$H264VideoSourcesItems = [];
foreach ($H264Profiles as $Profile) {
if (!array_key_exists('Configurations', $Profile)) {
continue;
}
if (!array_key_exists('VideoEncoder', $Profile['Configurations'])) {
continue;
}
Expand Down Expand Up @@ -1370,6 +1372,9 @@ protected function GetProfiles2(string $Token = null, string $ConfigurationEnume
}
$JPEGVideoSourcesItems = [];
foreach ($JPEGProfiles as $Profile) {
if (!array_key_exists('Configurations', $Profile)) {
continue;
}
if (!array_key_exists('VideoEncoder', $Profile['Configurations'])) {
continue;
}
Expand All @@ -1396,14 +1401,26 @@ protected function GetProfiles2(string $Token = null, string $ConfigurationEnume
if (isset($Profile['Configurations']['Analytics'])) {
return true;
}
return false;
});
foreach ($AnalyticsProfiles as $AnalyticsProfile) {
if (!array_key_exists('Configurations', $AnalyticsProfile)) {
continue;
}
if (!array_key_exists('Analytics', $AnalyticsProfile['Configurations'])) {
continue;
}
$Token = $AnalyticsProfile['Configurations']['Analytics']['token'];
$Name = $AnalyticsProfile['Configurations']['Analytics']['Name'];
$AnalyticsTokens[$Token] = $Name;
}
$this->SendDebug('AnalyticsTokens', $AnalyticsTokens, 0);
$this->WriteAttributeArray(\ONVIF\IO\Attribute::AnalyticsTokens, $AnalyticsTokens);
if ((count($H264VideoSources) + count($JPEGVideoSources) + count($AnalyticsTokens)) == 0) {
$this->Warnings = array_merge($this->Warnings, [$this->Translate('Failed to get GetProfiles on Media2 service. Device reported Media2 support, but does not support this service!')]);
$this->LogMessage($this->Translate('Failed to get GetProfiles on Media2 service. Device reported Media2 support, but does not support this service!'), KL_WARNING);
return false;
}
return true;
}
protected function GetProfiles(): bool
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ Für das Discovery werden Pakete über die Multicast-Adresse `239.255.255.250` a

**Version 2.15**
- Wurde nur ein Service von dem Gerät gemeldet, so erzeugte der IO Fehlermeldungen.

- Können die Stream-Profile von `ver20/media` nicht ermittelt werden, wo wird versucht die Stream-Profile vom `ver10/media` zu laden. Auch wenn das Gerät explizit `ver20/media` unterstützt.

**Version 2.13:** <span style="color:red">**(Dies ist die letzte Version für IPS kleiner Version 7.0)**</span>
- Lesen der Fähigkeiten eines Gerätes in der IO Instanz verbessert.
- IO Instanz schreibt Warnungen in das Meldungslog.
Expand Down

0 comments on commit c7a8cc8

Please sign in to comment.