Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libindi for openSUSE:Factory checked 
in at 2022-08-11 18:32:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libindi (Old)
 and      /work/SRC/openSUSE:Factory/.libindi.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libindi"

Thu Aug 11 18:32:35 2022 rev:54 rq:994453 version:1.9.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/libindi/libindi.changes  2022-08-01 
21:33:27.622183446 +0200
+++ /work/SRC/openSUSE:Factory/.libindi.new.1521/libindi.changes        
2022-08-11 18:32:49.678242935 +0200
@@ -1,0 +2,7 @@
+Thu Aug  4 06:08:48 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com>
+
+- Add fix-ioptron-meridian.patch: add again in case a timeout is issued
+  and iOptron returns it despite the flush. This is an attempt to read this 
buffer again.
+- Add fix-ioptron-timeout.patch: save meridian flip settings by default on 
change.
+
+-------------------------------------------------------------------

New:
----
  fix-ioptron-meridian.patch
  fix-ioptron-timeout.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libindi.spec ++++++
--- /var/tmp/diff_new_pack.PvdKsK/_old  2022-08-11 18:32:50.190242150 +0200
+++ /var/tmp/diff_new_pack.PvdKsK/_new  2022-08-11 18:32:50.198242137 +0200
@@ -26,6 +26,10 @@
 Group:          Productivity/Scientific/Astronomy
 URL:            https://www.indilib.org/
 Source0:        
https://github.com/indilib/indi/archive/v%{version}.tar.gz#/indi-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/694e07177c7c8d5ad7dfaed54f511c5a77b3befc
+Patch0:         fix-ioptron-timeout.patch
+# PATCH-FIX-UPSTREAM 
https://github.com/indilib/indi/commit/b717412dc649dfb2505d08931bd9efbfc04b8ff9
+Patch1:         fix-ioptron-meridian.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  libboost_system-devel

++++++ fix-ioptron-meridian.patch ++++++
>From b717412dc649dfb2505d08931bd9efbfc04b8ff9 Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Wed, 3 Aug 2022 11:52:30 +0300
Subject: [PATCH] Save meridian flip settings by default on change

---
 drivers/telescope/ioptronv3.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/telescope/ioptronv3.cpp b/drivers/telescope/ioptronv3.cpp
index 25237120d7..51067931cd 100644
--- a/drivers/telescope/ioptronv3.cpp
+++ b/drivers/telescope/ioptronv3.cpp
@@ -463,6 +463,7 @@ bool IOptronV3::ISNewNumber(const char *dev, const char 
*name, double values[],
                           MeridianLimitN[0].value, 
MeridianActionS[IOP_MB_STOP].s == ISS_ON ? "stop" : "flip");
             }
             IDSetNumber(&MeridianLimitNP, nullptr);
+            saveConfig(true, MeridianLimitNP.name);
             return true;
         }
 
@@ -586,6 +587,7 @@ bool IOptronV3::ISNewSwitch(const char *dev, const char 
*name, ISState *states,
                           MeridianLimitN[0].value, 
MeridianActionS[IOP_MB_STOP].s == ISS_ON ? "stop" : "flip");
             }
             IDSetSwitch(&MeridianActionSP, nullptr);
+            saveConfig(true, MeridianActionSP.name);
             return true;
         }
 


++++++ fix-ioptron-timeout.patch ++++++
>From 694e07177c7c8d5ad7dfaed54f511c5a77b3befc Mon Sep 17 00:00:00 2001
From: Jasem Mutlaq <mutla...@ikarustech.com>
Date: Sat, 30 Jul 2022 00:24:59 +0300
Subject: [PATCH] Add again in case a timeout is issued and iOptron returns it
 despite the flush. This is an attempt to read this buffer again. Might fix
 issue reported in #1618

---
 drivers/telescope/ioptronv3driver.cpp | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/telescope/ioptronv3driver.cpp 
b/drivers/telescope/ioptronv3driver.cpp
index 53b0a9b6d..529e9da54 100644
--- a/drivers/telescope/ioptronv3driver.cpp
+++ b/drivers/telescope/ioptronv3driver.cpp
@@ -98,13 +98,21 @@ bool Driver::sendCommand(const char *command, int count, 
char *response, uint8_t
     if (count == 0)
         return true;
 
-    if (count == -1)
-        errCode = tty_read_section(PortFD, res, '#', timeout, &nbytes_read);
-    else
-        errCode = tty_read(PortFD, res, count, timeout, &nbytes_read);
+    // Try to read twice in case of timeouts.
+    for (int i = 0; i < 2; i++)
+    {
+        if (count == -1)
+            errCode = tty_read_section(PortFD, res, '#', timeout, 
&nbytes_read);
+        else
+            errCode = tty_read(PortFD, res, count, timeout, &nbytes_read);
+
+        if (errCode == TTY_OK)
+            break;
+    }
 
     if (errCode != TTY_OK)
     {
+
         tty_error_msg(errCode, errMsg, MAXRBUF);
         DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "Read Command 
Error: %s", errMsg);
         return false;
@@ -249,7 +257,8 @@ bool Driver::getStatus(IOPInfo *info)
 
     if (strlen(res) != 23)
     {
-        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 23 
bytes but received %d.", __PRETTY_FUNCTION__, strlen(res));
+        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 23 
bytes but received %d.", __PRETTY_FUNCTION__,
+                     strlen(res));
         return false;
     }
 
@@ -709,7 +718,8 @@ bool Driver::getCoords(double *ra, double *de, 
IOP_PIER_STATE *pierState, IOP_CW
 
     if (strlen(res) != 20)
     {
-        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 20 
bytes but received %d.", __PRETTY_FUNCTION__, strlen(res));
+        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 20 
bytes but received %d.", __PRETTY_FUNCTION__,
+                     strlen(res));
         return false;
     }
 
@@ -749,7 +759,8 @@ bool Driver::getUTCDateTime(double *JD, int 
*utcOffsetMinutes, bool *dayLightSav
 
     if (strlen(res) != 18)
     {
-        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 18 
bytes but received %d.", __PRETTY_FUNCTION__, strlen(res));
+        DEBUGFDEVICE(m_DeviceName, INDI::Logger::DBG_ERROR, "%s: Expected 18 
bytes but received %d.", __PRETTY_FUNCTION__,
+                     strlen(res));
         return false;
     }
 

Reply via email to