From e1e5a1b3a67daa49a08ab61a5d5796f752e893bf Mon Sep 17 00:00:00 2001 From: MRSa Date: Mon, 30 Aug 2021 23:05:07 +0900 Subject: [PATCH] =?utf8?q?=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E3=81=AE?= =?utf8?q?=E8=A6=81=E6=B1=82=E3=81=A8=E5=8F=97=E4=BF=A1=E3=82=92=E8=A1=8C?= =?utf8?q?=E3=81=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../command/messages/base/IPixproMessages.kt | 2 + .../messages/specific/PixproStatusRequest.kt | 50 ++++++++++++++++++++++ .../pixpro/wrapper/status/PixproStatusChecker.kt | 14 ++++-- 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/specific/PixproStatusRequest.kt diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/base/IPixproMessages.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/base/IPixproMessages.kt index 876a29b..6a468d9 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/base/IPixproMessages.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/base/IPixproMessages.kt @@ -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 index 0000000..881d2e2 --- /dev/null +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/command/messages/specific/PixproStatusRequest.kt @@ -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 + } +} diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/status/PixproStatusChecker.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/status/PixproStatusChecker.kt index 98e3cf0..4b42c70 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/status/PixproStatusChecker.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/wrapper/status/PixproStatusChecker.kt @@ -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) } } -- 2.11.0