OSDN Git Service

panasonic機に接続するときに処理を少し変更。(G9PRO対応)と nullハンドリングの強化。
authorMRSa <mrsa@myad.jp>
Sun, 28 Jun 2020 01:59:19 +0000 (10:59 +0900)
committerMRSa <mrsa@myad.jp>
Sun, 28 Jun 2020 01:59:19 +0000 (10:59 +0900)
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/panasonic/wrapper/PanasonicCameraWrapper.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/panasonic/wrapper/connection/PanasonicSsdpClient.java

index 2beb2bf..59ea0c8 100644 (file)
@@ -81,10 +81,18 @@ public class PanasonicCameraWrapper implements IPanasonicCameraHolder, IPanasoni
         {
             runMode.setCamera(panasonicCamera, playbackControl, TIMEOUT_MS);
             playbackControl.setCamera(panasonicCamera, TIMEOUT_MS);
-            focusControl.setCamera(panasonicCamera);
-            captureControl.setCamera(panasonicCamera);
-            zoomControl.setCamera(panasonicCamera);
-
+            if (focusControl != null)
+            {
+                focusControl.setCamera(panasonicCamera);
+            }
+            if (captureControl != null)
+            {
+                captureControl.setCamera(panasonicCamera);
+            }
+            if (zoomControl != null)
+            {
+                zoomControl.setCamera(panasonicCamera);
+            }
             //this.panasonicCameraApi = PanasonicCameraApi.newInstance(panasonicCamera);
             if (eventObserver == null)
             {
index 6b95c7e..2b1bc80 100644 (file)
@@ -128,8 +128,24 @@ class PanasonicSsdpClient
                                 cameraStatusReceiver.onStatusNotify(context.getString(R.string.camera_found) + " " + device.getFriendlyName());
 
                                 ///// カメラへの登録要求... /////
+                                int retryTimeout = 3;
                                 String registUrl = device.getCmdUrl() + "cam.cgi?mode=accctrl&type=req_acc&value=" + device.getClientDeviceUuId() + "&value2=GOKIGEN_a01Series";
                                 String reply = SimpleHttpClient.httpGet(registUrl, SSDP_RECEIVE_TIMEOUT);
+                                while ((retryTimeout > 0)&&(reply.contains("ok_under_research_no_msg")))
+                                {
+                                    try
+                                    {
+                                        // 1秒待って再送してみる
+                                        Thread.sleep(1000);
+                                    }
+                                    catch (Exception e)
+                                    {
+                                        e.printStackTrace();
+                                    }
+                                    reply = SimpleHttpClient.httpGet(registUrl, SSDP_RECEIVE_TIMEOUT);
+                                    retryTimeout--;
+
+                                }
                                 if (reply.contains("ok"))
                                 {
                                     callback.onDeviceFound(device);