diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_install_small_label.xml b/app/src/main/res/layout/activity_install_small_label.xml
new file mode 100644
index 0000000..13924c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_small_label.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_install_small_label.xml b/app/src/main/res/layout/activity_install_small_label.xml
new file mode 100644
index 0000000..13924c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_small_label.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml
new file mode 100644
index 0000000..c252d85
--- /dev/null
+++ b/app/src/main/res/layout/include_base_title.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_install_small_label.xml b/app/src/main/res/layout/activity_install_small_label.xml
new file mode 100644
index 0000000..13924c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_small_label.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml
new file mode 100644
index 0000000..c252d85
--- /dev/null
+++ b/app/src/main/res/layout/include_base_title.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_label_marker_attribute.xml b/app/src/main/res/layout/include_label_marker_attribute.xml
new file mode 100644
index 0000000..813ff0b
--- /dev/null
+++ b/app/src/main/res/layout/include_label_marker_attribute.xml
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_install_small_label.xml b/app/src/main/res/layout/activity_install_small_label.xml
new file mode 100644
index 0000000..13924c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_small_label.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml
new file mode 100644
index 0000000..c252d85
--- /dev/null
+++ b/app/src/main/res/layout/include_base_title.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_label_marker_attribute.xml b/app/src/main/res/layout/include_label_marker_attribute.xml
new file mode 100644
index 0000000..813ff0b
--- /dev/null
+++ b/app/src/main/res/layout/include_label_marker_attribute.xml
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_label_object_attribute.xml b/app/src/main/res/layout/include_label_object_attribute.xml
new file mode 100644
index 0000000..d44ce34
--- /dev/null
+++ b/app/src/main/res/layout/include_label_object_attribute.xml
@@ -0,0 +1,755 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99f57f4..0d0ac5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -66,6 +66,8 @@
android:name=".view.ElectricMarkerDetailActivity"
android:theme="@style/Theme.ActivityDialogStyle" />
+
+
0) {
+ onDataReceived(buffer, size)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ return
+ }
+ }
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(initLayoutView())
+ setupTopBarLayout()
+ initData(savedInstanceState)
+ observeRequestState()
+ initEvent()
+
+ try {
+ serialPort = BaseApplication.get().getSerialPort()
+ outputStream = serialPort?.outputStream
+ inputStream = serialPort?.inputStream
+
+ readThread = ReadThread()
+ readThread?.start()
+ } catch (e: SecurityException) {
+ "您没有串口的读写权限!".show(this)
+ } catch (e: IOException) {
+ "因为不明原因,串口无法打开!".show(this)
+ } catch (e: InvalidParameterException) {
+ "请检查串口!".show(this)
+ }
+ }
+
+ /**
+ * 初始化xml布局
+ */
+ abstract fun initLayoutView(): Int
+
+ /**
+ * 特定页面定制沉浸式状态栏
+ */
+ abstract fun setupTopBarLayout()
+
+ /**
+ * 初始化默认数据
+ */
+ abstract fun initData(savedInstanceState: Bundle?)
+
+ /**
+ * 数据请求状态监听
+ */
+ abstract fun observeRequestState()
+
+ /**
+ * 初始化业务逻辑
+ */
+ abstract fun initEvent()
+
+ /**
+ * 串口读数
+ * */
+ abstract fun onDataReceived(buffer: ByteArray?, size: Int)
+
+ override fun onDestroy() {
+ super.onDestroy()
+ readThread?.interrupt()
+ BaseApplication.get().closeSerialPort()
+ serialPort = null
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
new file mode 100644
index 0000000..bfc12c2
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "LabelActivity"
+ private val context: Context = this@InstallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新标识器"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081701
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081701) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
new file mode 100644
index 0000000..0eb09ef
--- /dev/null
+++ b/app/src/main/java/com/casic/electric/detector/view/InstallSmallLabelActivity.kt
@@ -0,0 +1,93 @@
+package com.casic.electric.detector.view
+
+import android.content.Context
+import android.media.AudioAttributes
+import android.media.SoundPool
+import android.os.Bundle
+import android.os.Handler
+import android.os.Message
+import android.util.Log
+import android.view.KeyEvent
+import com.casic.electric.detector.R
+import com.casic.electric.detector.base.SerialPortActivity
+import com.casic.electric.detector.extensions.initLayoutImmersionBar
+import com.casic.electric.detector.utils.GpioManager
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.activity_install_small_label.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class InstallSmallLabelActivity : SerialPortActivity(), Handler.Callback {
+
+ private val kTag = "SmallLabelActivity"
+ private val context: Context = this@InstallSmallLabelActivity
+ private val gpioManager by lazy { GpioManager() }
+ private var soundResId = 0
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var soundPool: SoundPool
+
+ override fun initLayoutView(): Int = R.layout.activity_install_small_label
+
+ override fun setupTopBarLayout() {
+ titleView.text = "安装新电子标签"
+ titleView.setTextColor(R.color.themeColor.convertColor(this))
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .statusBarColor(R.color.mainBackground)
+ .init()
+ initLayoutImmersionBar(rootView)
+ }
+
+ override fun initData(savedInstanceState: Bundle?) {
+ weakReferenceHandler = WeakReferenceHandler(this)
+
+ val audioAttributes = AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .build()
+ soundPool = SoundPool.Builder()
+ .setMaxStreams(16)
+ .setAudioAttributes(audioAttributes)
+ .build()
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun onDataReceived(buffer: ByteArray?, size: Int) {
+ Log.d(kTag, "onDataReceived => " + buffer.contentToString())
+ if (buffer != null) {
+ val message = weakReferenceHandler.obtainMessage()
+ message.what = 2023081702
+ message.obj = buffer
+ weakReferenceHandler.sendMessage(message)
+ }
+ }
+
+ override fun handleMessage(msg: Message): Boolean {
+ if (msg.what == 2023081702) {
+
+ }
+ return true
+ }
+
+ override fun onDestroy() {
+ soundPool.release()
+ gpioManager.setGpioLow("18")
+ super.onDestroy()
+ }
+
+ override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ soundPool.release()
+ }
+ return super.onKeyDown(keyCode, event)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
index 3882a9f..93f4e16 100644
--- a/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/electric/detector/view/MainActivity.kt
@@ -223,7 +223,7 @@
SamplePopupWindow.OnPopupWindowClickListener {
override fun onPopupItemClicked(position: Int) {
when (position) {
- 0 -> updateTaskData()
+ 0 -> updateLabels()
// 1 -> downloadTask()
2 -> versionViewModel.getApplicationVersion()
// 3 -> uploadEvent()
@@ -234,7 +234,24 @@
//安装。上传,然后存入本地库
installButton.setOnClickListener {
-// navigatePageTo()
+ AlertControlDialog.Builder()
+ .setContext(context)
+ .setTitle("提示")
+ .setMessage("请选择安装对象")
+ .setPositiveButton("标识器")
+ .setNegativeButton("电子标签")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ //标识器
+ navigatePageTo()
+ }
+
+ override fun onCancelClick() {
+ //电子标签
+ navigatePageTo()
+ }
+ }).build().show()
}
//查看
@@ -398,7 +415,7 @@
}
//更新数据
- private fun updateTaskData() {
+ private fun updateLabels() {
AlertControlDialog.Builder()
.setContext(this)
.setTitle("提示")
diff --git a/app/src/main/res/layout/activity_install_label.xml b/app/src/main/res/layout/activity_install_label.xml
new file mode 100644
index 0000000..3fd064d
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_label.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_install_small_label.xml b/app/src/main/res/layout/activity_install_small_label.xml
new file mode 100644
index 0000000..13924c2
--- /dev/null
+++ b/app/src/main/res/layout/activity_install_small_label.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_base_title.xml b/app/src/main/res/layout/include_base_title.xml
new file mode 100644
index 0000000..c252d85
--- /dev/null
+++ b/app/src/main/res/layout/include_base_title.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_label_marker_attribute.xml b/app/src/main/res/layout/include_label_marker_attribute.xml
new file mode 100644
index 0000000..813ff0b
--- /dev/null
+++ b/app/src/main/res/layout/include_label_marker_attribute.xml
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_label_object_attribute.xml b/app/src/main/res/layout/include_label_object_attribute.xml
new file mode 100644
index 0000000..d44ce34
--- /dev/null
+++ b/app/src/main/res/layout/include_label_object_attribute.xml
@@ -0,0 +1,755 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_open_camera.xml b/app/src/main/res/layout/include_open_camera.xml
new file mode 100644
index 0000000..2ebfeea
--- /dev/null
+++ b/app/src/main/res/layout/include_open_camera.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file