OSDN Git Service

イベントの要求と受信を行う。
authorMRSa <mrsa@myad.jp>
Mon, 30 Aug 2021 14:05:07 +0000 (23:05 +0900)
committerMRSa <mrsa@myad.jp>
Mon, 30 Aug 2021 14:05:07 +0000 (23:05 +0900)
app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/base/IPixproMessages.kt
app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/specific/PixproStatusRequest.kt [new file with mode: 0644]
app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/status/PixproStatusChecker.kt

index 876a29b..6a468d9 100644 (file)
@@ -7,6 +7,8 @@ interface IPixproMessages
         const val  SEQ_DUMMY = 0
         const val  SEQ_RECEIVE_ONLY = 1
 
+        const val  SEQ_EVENT_REQUEST = 5
+
         const val  SEQ_SHUTTER = 10
         const val  SEQ_FOCUS = 11
         const val  SEQ_ZOOM = 12
diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/specific/PixproStatusRequest.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/specific/PixproStatusRequest.kt
new file mode 100644 (file)
index 0000000..881d2e2
--- /dev/null
@@ -0,0 +1,50 @@
+package jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.specific
+
+import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.IPixproCommandCallback
+import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.base.IPixproMessages
+import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.base.PixproCommandBase
+
+class PixproStatusRequest(private val callback: IPixproCommandCallback) : PixproCommandBase()
+{
+    override fun getId() : Int
+    {
+        return (IPixproMessages.SEQ_EVENT_REQUEST)
+    }
+
+    override fun commandBody(): ByteArray
+    {
+        return byteArrayOf(
+            0x2e.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0xec.toByte(), 0x03.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x01.toByte(), 0x00.toByte(), 0x00.toByte(), 0x80.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x01.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+
+            0xff.toByte(), 0xff.toByte(), 0xff.toByte(), 0xff.toByte(),
+            0x00.toByte(), 0x00.toByte(), 0x00.toByte(), 0x00.toByte(),
+        )
+    }
+
+    override fun responseCallback(): IPixproCommandCallback
+    {
+        return callback
+    }
+}
index 98e3cf0..4b42c70 100644 (file)
@@ -7,7 +7,9 @@ import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatus
 import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatusWatcher
 import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.IPixproCommandPublisher
 import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.IPixproCommandCallback
+import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.wrapper.command.messages.specific.PixproStatusRequest
 import jp.osdn.gokigen.gokigenassets.liveview.message.IMessageDrawer
+import jp.osdn.gokigen.gokigenassets.utils.communication.SimpleLogDumper
 import java.lang.Exception
 
 class PixproStatusChecker : IPixproCommandCallback, ICameraStatusWatcher, ICameraStatus
@@ -20,7 +22,7 @@ class PixproStatusChecker : IPixproCommandCallback, ICameraStatusWatcher, ICamer
     companion object
     {
         private val TAG = PixproStatusChecker::class.java.simpleName
-        private const val EVENT_POLL_QUEUE_MS = 1000
+        private const val EVENT_POLL_QUEUE_MS = 1500
     }
 
     fun setCommandPublisher(commandPublisher : IPixproCommandPublisher)
@@ -101,6 +103,10 @@ class PixproStatusChecker : IPixproCommandCallback, ICameraStatusWatcher, ICamer
                         Thread.sleep(EVENT_POLL_QUEUE_MS.toLong())
 
                         Log.v(TAG, "  ----- POLL EVENT -----  ")
+                        if (::commandPublisher.isInitialized)
+                        {
+                            commandPublisher.enqueueCommand(PixproStatusRequest(this))
+                        }
                     }
                     catch (e: Exception)
                     {
@@ -125,14 +131,14 @@ class PixproStatusChecker : IPixproCommandCallback, ICameraStatusWatcher, ICamer
 
     override fun stopStatusWatch()
     {
-        Log.v(TAG, "stoptStatusWatch()")
+        Log.v(TAG, "stopStatusWatch()")
         whileFetching = false
         notifier = null
     }
 
     override fun receivedMessage(id: Int, rx_body: ByteArray?)
     {
-        Log.v(TAG, " receivedMessage($id) : ${rx_body?.size} bytes.")
-
+        Log.v(TAG, " RECEIVED EVENT : ${rx_body?.size} bytes.")
+        SimpleLogDumper.dumpBytes("EVT[${rx_body?.size}]", rx_body)
     }
 }