Add publishMeasurementAutoServer()

This commit is contained in:
Awin Huang
2024-05-15 09:41:26 +08:00
parent 803ff2e41a
commit dccecd6417
8 changed files with 57 additions and 7 deletions

View File

@@ -9,7 +9,7 @@ android {
defaultConfig {
applicationId "com.logitech.vc.kirbytest"
minSdk 29
minSdk 27
targetSdk 32
versionCode 1
versionName "1.0"

View File

@@ -38,6 +38,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.SensorTestingApp"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
tools:targetApi="31">
<activity
android:name=".MainActivity"

View File

@@ -114,7 +114,7 @@ class DeviceListAdapter(
}
}
val inflater = popup.menuInflater
popup.setForceShowIcon(true)
// popup.setForceShowIcon(true)
inflater.inflate(R.menu.device_menu, popup.menu)
popup.show()
}

View File

@@ -150,7 +150,8 @@ class KirbyDevice(
payload = Payload(measurement.toString())
Log.i("BleListener", "Char received: $payload")
val base64Payload = Base64.getEncoder().encodeToString(characteristic.value)
publishMeasurement(base64Payload)
// publishMeasurement(base64Payload)
publishMeasurementAutoServer(measurement)
loggerDb.writeLog(measurement)
}
@@ -194,6 +195,46 @@ class KirbyDevice(
queue.add(request)
}
private fun publishMeasurementAutoServer(measurement: DecoderIaq.Measurement) {
val accessKey = BuildConfig.API_KEY
val url = BuildConfig.API_BASE_URL
if(url.isEmpty()) {
return
}
val eui = "0000${bleDevice.address.replace(":", "")}"
val postData = JSONObject()
try {
// Log.i("POST", "Transmitting for $eui: $payload")
postData.put("accessKey", "${accessKey}_fromAndroid")
postData.put("eui", eui)
postData.put("deviceId", measurement.deviceId)
postData.put("msgType", measurement.msgType)
postData.put("co2", measurement.co2)
postData.put("voc", measurement.voc)
postData.put("humidity", measurement.humidity)
postData.put("temperature", measurement.temperature)
postData.put("pressure", measurement.pressure)
postData.put("occupancy", measurement.occupancy)
postData.put("pm25", measurement.pm25)
postData.put("pm10", measurement.pm10)
} catch (e: JSONException) {
e.printStackTrace()
}
val request = JsonObjectRequest(
Request.Method.POST, url, postData,
{ response ->
Log.i("sendDataResponse", "Response is: $response")
}
) { error -> error.printStackTrace() }
queue.add(request)
}
private val measurements = ArrayList<Payload>()
private val maxMeasurements = 20

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">192.168.1.154:5000</domain>
</domain-config>
</network-security-config>