Skip to content

Charging Animation, Updated Battery and Car site for Smart EQ (SQ) #175

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 124 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
a93fd58
Update for Smart EQ (SQ)
zorgms Sep 15, 2024
b43f4d6
Smart EQ (SQ) updates
zorgms Sep 15, 2024
3dc59d0
Merge branch 'openvehicles:master' into master
zorgms Sep 15, 2024
35bdfd6
Update for Smart EQ (SQ)
zorgms Sep 16, 2024
133e1f7
Update for Smart EQ (SQ)
zorgms Sep 16, 2024
a12ddbb
Update AndroidManifest.xml
zorgms Sep 16, 2024
2bc7f64
Update AndroidManifest.xml
zorgms Sep 16, 2024
72f8ef9
Update for Smart EQ (SQ)
zorgms Sep 16, 2024
2a55f81
Merge remote-tracking branch 'origin/master'
zorgms Sep 16, 2024
463b3df
rollback
zorgms Sep 16, 2024
518ab6c
Delete app/release directory
zorgms Sep 16, 2024
ff820a3
added Charging animation
zorgms Sep 17, 2024
3a2f326
Merge remote-tracking branch 'origin/master'
zorgms Sep 17, 2024
2471be0
added Charging animation
zorgms Sep 17, 2024
16b8983
added Charging animation
zorgms Sep 17, 2024
e80854a
added Charging animation
zorgms Sep 17, 2024
66344c9
added Charging animation
zorgms Sep 18, 2024
7178329
added Charging animation
zorgms Sep 18, 2024
b107226
added Charging animation
zorgms Sep 18, 2024
5b3a5d1
added Charging animation
zorgms Sep 19, 2024
aa7f07e
added Charging animation
zorgms Sep 19, 2024
22a3d46
added Charging animation
zorgms Sep 19, 2024
9e97031
Add files via upload
zorgms Sep 21, 2024
e149dcb
Delete latest/ovms_eq_150924.apk
zorgms Sep 21, 2024
b33281f
added Smart forfour image black and white
zorgms Sep 27, 2024
80db1b5
Merge remote-tracking branch 'origin/master'
zorgms Sep 27, 2024
e739b63
added Smart forfour image black and white
zorgms Sep 27, 2024
bc07524
updated Smart forfour image black and white
zorgms Sep 29, 2024
7d5411e
updated Smart forfour image black and white
zorgms Sep 29, 2024
21ff206
added Smart EQ forfour image
zorgms Sep 30, 2024
e309f5d
added a app/lib script based booster timer for Smart EQ
zorgms Oct 5, 2024
c8487e3
added a app/lib script based booster timer for Smart EQ
zorgms Oct 5, 2024
d37b988
Revert "added a app/lib script based booster timer for Smart EQ"
zorgms Oct 5, 2024
d79ad35
added reset the booster timer config
zorgms Oct 5, 2024
cea99de
recoded booster timer logic
zorgms Oct 6, 2024
fa872dd
recoded booster timer logic
zorgms Oct 6, 2024
fbb0a4f
Create OVMS_lib_scripts
zorgms Oct 6, 2024
a5ffee8
Delete OVMS_lib_scripts
zorgms Oct 6, 2024
815a6bd
OVMS lib Scripts
zorgms Oct 6, 2024
1d1706e
latest Update
zorgms Oct 6, 2024
fb114b0
GER string correction
zorgms Oct 6, 2024
85b9e46
Merge remote-tracking branch 'origin/master'
zorgms Oct 6, 2024
02f8054
Booster deactivation on Battery site corrected
zorgms Oct 7, 2024
f363231
Booster timer set at Car site changed to slider. Some fixing at Boost…
zorgms Oct 7, 2024
e77ba3a
Booster timer fixed apps side stored settings, when you has more than…
zorgms Oct 8, 2024
9eb6a84
fixed TPMS pressure and temperature showing at Smart EQ, hide tempera…
zorgms Oct 9, 2024
9a44380
insert a TPMS under/over pressure alert for Smart EQ
zorgms Oct 10, 2024
f68f87f
insert a TPMS under/over pressure alert for Smart EQ
zorgms Oct 10, 2024
9bddfb2
deleted old thinks for a alternate valet btn fnc for Smart EQ
zorgms Oct 10, 2024
a8cab5c
deleted old thinks for a alternate valet btn fnc for Smart EQ
zorgms Oct 10, 2024
aecb799
deleted old thinks for a alternate valet btn fnc for Smart EQ
zorgms Oct 10, 2024
b1e6c1d
Update scheduled_booster.js
zorgms Oct 10, 2024
e4dab53
Updated DEV release
zorgms Oct 10, 2024
939c0ac
Smart EQ:
zorgms Oct 15, 2024
6409804
Merge remote-tracking branch 'origin/master'
zorgms Oct 15, 2024
b7e569d
Update scheduled_booster.js
zorgms Oct 15, 2024
bd40eb5
Smart EQ:
zorgms Oct 15, 2024
264cb3e
Smart EQ:
zorgms Oct 15, 2024
e7ce5b7
Smart EQ:
zorgms Oct 16, 2024
bc24eff
Update scheduled_booster.js
zorgms Oct 16, 2024
f732f76
12V check'n'charge
zorgms Oct 16, 2024
d402c02
moved to firmware
zorgms Oct 17, 2024
59e81da
added a Plugin menu
zorgms Oct 18, 2024
c00aec9
Merge remote-tracking branch 'origin/master'
zorgms Oct 18, 2024
840ea70
added a Firmware Update selection menu at Homelink
zorgms Oct 18, 2024
aeec6e5
added repo link updated
zorgms Oct 18, 2024
69c3673
removed script reload bottom from options menu
zorgms Oct 18, 2024
a0e7ed7
updated some strings
zorgms Oct 19, 2024
c8f5f38
updated some AlertDialog strings
zorgms Oct 19, 2024
8b19f31
updated to Oct. 19 2024 Version
zorgms Oct 19, 2024
54a1edc
Merge branch 'master' of https://github.com/zorgms/OVMS_zorg_EQ
zorgms Oct 19, 2024
8717afa
updated InfoFragment
zorgms Oct 19, 2024
75270f6
Merge remote-tracking branch 'origin/master'
zorgms Oct 19, 2024
83aaf42
updated InfoFragment
zorgms Oct 19, 2024
b927e8f
updated CarFragment
zorgms Oct 20, 2024
bfeb43b
updated showing Information for SmartEQ
zorgms Oct 20, 2024
7409a4f
added a space in strings with distance aka 100km -> 100 km
zorgms Oct 20, 2024
f0117a7
fixed SoC sometimes not visitable and crashed the App
zorgms Oct 21, 2024
363d0dc
merged the PR #176 and add a options menu switch for on/off notification
zorgms Oct 22, 2024
6d1ab44
fixed charge time and eff
zorgms Oct 23, 2024
fd340e0
fixed charge time and eff
zorgms Oct 23, 2024
952c5d7
set car_charge_power_input_kw_raw = 0.0f when data if greater than 20…
zorgms Oct 23, 2024
a76127e
removed: car_charge_power_input_kw_raw = 0.0f when data if greater th…
zorgms Oct 25, 2024
0c9ee2c
removed: car_charge_power_input_kw_raw = 0.0f when data if greater th…
zorgms Oct 25, 2024
8c1caac
new release
zorgms Oct 26, 2024
42715cc
updated some dialog strings
zorgms Oct 26, 2024
71d36b1
Merge remote-tracking branch 'origin/master'
zorgms Oct 26, 2024
fe5225b
updated FeaturesFragment #1 LED State #2 iOS TPMS fix
zorgms Oct 26, 2024
6f6d9d2
updated FeaturesFragment #3 reset trip at charge
zorgms Oct 28, 2024
67795db
fixed some showing data for Smart EQ at "Battery" site
zorgms Oct 28, 2024
b9a2110
resize some car images and convert to web optimized format
zorgms Oct 28, 2024
b201723
resize some car images and convert to web optimized format
zorgms Oct 28, 2024
be01b61
added a DEV switch for notification enable in developer Version
zorgms Oct 29, 2024
be5617f
Delete OVMS_zorg_241024.apk
zorgms Oct 29, 2024
4ebc548
reworked the DEV switch for notification enable in developer Version
zorgms Oct 31, 2024
60c810d
Merge remote-tracking branch 'origin/master'
zorgms Oct 31, 2024
42befc0
added modem_lte Plugin option
zorgms Oct 31, 2024
7cb1c8e
added OVMS Plugin option + menu at Homelink
zorgms Nov 1, 2024
ba93ccb
added OVMS Plugin option + menu at Homelink
zorgms Nov 1, 2024
c11d7dc
renamed string lb_plugin_firmware_update to lb_firmware_update
zorgms Nov 3, 2024
2c18f06
edit a test firmware update link
zorgms Nov 4, 2024
d496d8a
added a selection of TPMS value to switch to the right wheel
zorgms Nov 7, 2024
a2d03ab
for EQ: added more information at car info -> capacitive. + SoH (SoC …
zorgms Nov 7, 2024
2b07f23
for EQ: added more information at car info -> capacitive. + (SoC kWh)
zorgms Nov 7, 2024
5ce3d11
added v.c.kwh.grid + v.c.kwh.grid.total to log S, added this at Firmw…
zorgms Nov 8, 2024
df704b8
HV Kapazität neuer metrics zugewiesen
zorgms Nov 10, 2024
c031925
added Date format option to switch MM/DD/YY to DD/MM/YY at Option menu
zorgms Nov 10, 2024
95f339a
reworked CarData: set the new metrics to another call
zorgms Nov 10, 2024
5a739e0
reworked CarData.car_charge_timestamp
zorgms Nov 11, 2024
9bd9101
reworked CarData.car_charge_timestamp
zorgms Nov 11, 2024
7d85002
Merge pull request #1 from zorgms/smartEQ
zorgms Nov 11, 2024
141c17c
reworked InfoFragment car_charge_timestamp
zorgms Nov 11, 2024
a5b084c
Merge pull request #2 from zorgms/smartEQ
zorgms Nov 11, 2024
ba7eb2b
reworked InfoFragment forgot something (!)
zorgms Nov 11, 2024
d167087
wants didn't show timestamp 01/01 70 aka 01.01.70
zorgms Nov 12, 2024
5c1bbce
switched position of timestamp <> duration
zorgms Nov 12, 2024
33bce16
removed both developer Firmware option
zorgms Nov 12, 2024
06d5012
Merge pull request #3 from zorgms/smartEQ
zorgms Nov 12, 2024
b08d53b
added more information at #3 Feature string
zorgms Nov 15, 2024
88d74af
updated CarData -> moved mdm mode to "Firmware"
zorgms Nov 16, 2024
1baff2e
rollback
zorgms Nov 16, 2024
b9447f8
activated Car Gen Message "X" (MP-X)
zorgms Nov 17, 2024
32f1245
rework wording in String
zorgms Nov 17, 2024
75b25b9
Merge pull request #4 from zorgms/smartEQ
zorgms Nov 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added app/release/app-release.apk
Binary file not shown.
Binary file added app/release/baselineProfiles/0/app-release.dm
Binary file not shown.
Binary file added app/release/baselineProfiles/1/app-release.dm
Binary file not shown.
37 changes: 37 additions & 0 deletions app/release/output-metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.openvehicles.OVMS",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 2024091401,
"versionName": "4.7.1",
"outputFile": "app-release.apk"
}
],
"elementType": "File",
"baselineProfiles": [
{
"minApi": 28,
"maxApi": 30,
"baselineProfiles": [
"baselineProfiles/1/app-release.dm"
]
},
{
"minApi": 31,
"maxApi": 2147483647,
"baselineProfiles": [
"baselineProfiles/0/app-release.dm"
]
}
],
"minSdkVersionForDexing": 19
}
25 changes: 24 additions & 1 deletion app/src/main/java/com/openvehicles/OVMS/api/ApiService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ import com.openvehicles.OVMS.api.ApiObservable.deleteObserver
import com.openvehicles.OVMS.api.ApiObservable.notifyLoggedIn
import com.openvehicles.OVMS.api.ApiObservable.notifyUpdate
import com.openvehicles.OVMS.entities.CarData
import com.openvehicles.OVMS.utils.AppPrefs
import com.openvehicles.OVMS.ui.MainActivity
import com.openvehicles.OVMS.ui.utils.Database
import com.openvehicles.OVMS.utils.AppPrefs
import com.openvehicles.OVMS.utils.CarsStorage
import com.openvehicles.OVMS.utils.Sys
import java.io.Serializable
Expand Down Expand Up @@ -485,6 +485,29 @@ class ApiService : Service(), ApiTask.ApiTaskListener, ApiObserver {
override fun onPushNotification(msgClass: Char, msgText: String?) {
// This callback only receives MP push notifications for the currently selected vehicle.
// See MyFirebaseMessagingService for system notification broadcasting.
if(appPrefs!!.getData("option_notification_enabled_" + carData!!.sel_vehicleid,"0") == "1"){
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
createNotificationChannel()
// Define the notification channel (required for Android O and above)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channelName = getString(R.string.app_name)
val channelDescription = "OVMS"
val channel = NotificationChannel("your_channel_id", channelName, NotificationManager.IMPORTANCE_DEFAULT).apply {
description = channelDescription
}
notificationManager.createNotificationChannel(channel)
}
// Create the notification
val notificationBuilder = NotificationCompat.Builder(this, "your_channel_id")
.setSmallIcon(R.drawable.ic_service)
.setContentTitle("OVMS")
.setContentText(msgText ?: msgText)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true)

// Show the notification
notificationManager.notify(1, notificationBuilder.build())
}
}

// ApiObserver interface:
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/openvehicles/OVMS/api/ApiTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,12 @@ class ApiTask(
msgData
) else Log.w(TAG, "W MSG Invalid")

'X' -> if (carData.processGen(msgData)) publishProgress(
MsgType.UPDATE,
msgCode,
msgData
) else Log.w(TAG, "X MSG Invalid")

'Y' -> if (carData.processNewTPMS(msgData)) publishProgress(
MsgType.UPDATE,
msgCode,
Expand Down
160 changes: 156 additions & 4 deletions app/src/main/java/com/openvehicles/OVMS/entities/CarData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ import com.openvehicles.OVMS.utils.AppPrefs
import java.io.Serializable
import java.text.DecimalFormat
import java.text.SimpleDateFormat
import java.time.format.DateTimeFormatter
import java.util.Date
import java.time.Instant
import java.time.ZoneId
import kotlin.text.format

class CarData : Serializable {

Expand Down Expand Up @@ -110,7 +114,9 @@ class CarData : Serializable {
var car_type = ""
var car_canwrite_raw = 0
var car_canwrite = false
var car_gsmlock = ""
var car_gsm_provider = ""
var car_mdm_mode = ""

@JvmField
var car_gsm_signal = ""
var car_gsm_dbm = 0
Expand Down Expand Up @@ -156,6 +162,7 @@ class CarData : Serializable {
var car_speed_units = ""
var car_chargelimit_rangelimit = ""
var car_max_idealrange = ""
var car_charge_timestamp = ""
var stale_chargetimer = DataStale.NoValue
var stale_status = DataStale.NoValue

Expand Down Expand Up @@ -276,6 +283,9 @@ class CarData : Serializable {
var car_charge_plugtype = 0
var car_charge_power_kw_raw = 0.0
var car_charge_power_kw = ""
var car_charge_kwh_grid = 0f
var car_charge_kwh_grid_total = 0f
var car_battery_capacity = 0f
@JvmField
var car_battery_voltage = 0.0
var car_battery_current_raw = 0.0
Expand Down Expand Up @@ -351,6 +361,33 @@ class CarData : Serializable {
@JvmField
var car_energyrecd = 0f

// Car Gen Message "X"
// not implemented yet?
var car_gen_inprogress = false
var car_gen_pilot = false
var car_gen_voltage = 0
var car_gen_current = 0f
var car_gen_power = 0f
var car_gen_efficiency = 0f
var car_gen_type = ""
var car_gen_state = ""
var car_gen_substate = ""
var car_gen_mode = ""
var car_gen_climit = 0f
var car_gen_limit_range = 0f
var car_gen_limit_soc = 0
var car_gen_kwh = 0f
var car_gen_kwh_grid = 0f
var car_gen_kwh_grid_total = 0f
var car_gen_time = 0
var car_gen_timermode = 0
var car_gen_timerstart = 0
var car_gen_duration_empty = 0
var car_gen_duration_range = 0
var car_gen_duration_soc = 0
var car_gen_temp = 0f
var car_gen_timestamp = ""

//
// Renault Twizy specific
//
Expand Down Expand Up @@ -693,6 +730,20 @@ class CarData : Serializable {
} else {
""
}
car_charge_kwh_grid = dataParts[38].toFloat()
car_charge_kwh_grid_total = dataParts[39].toFloat()
car_battery_capacity = dataParts[40].toFloat()
}

if (dataParts.size >= 42) {
val dateFormat = appPrefs!!.getData("option_date_format", "0") == "1"
val charge_timestamp_raw = dataParts[41].toInt()
val timestamp_formater = if(dateFormat) {
DateTimeFormatter.ofPattern("dd.MM.yy HH:mm").withZone(ZoneId.systemDefault())
} else {
DateTimeFormatter.ofPattern("MM/dd yy hh:mm").withZone(ZoneId.systemDefault())
}
car_charge_timestamp = timestamp_formater.format(Instant.ofEpochSecond(charge_timestamp_raw.toLong()))
}
} catch (e: Exception) {
Log.e(TAG, "processStatus: ERROR", e)
Expand Down Expand Up @@ -818,7 +869,7 @@ class CarData : Serializable {
car_type = dataParts[4]
}
if (dataParts.size >= 6) {
car_gsmlock = dataParts[5]
car_gsm_provider = dataParts[5]
}
if (dataParts.size >= 8) {
car_servicerange = if (dataParts[6] != "") {
Expand All @@ -834,6 +885,10 @@ class CarData : Serializable {
}
if (dataParts.size >= 9) {
car_hardware = dataParts[8]

}
if (dataParts.size >= 10) {
car_mdm_mode = dataParts[9].split(";")[0].toString()
}
} catch (e: Exception) {
Log.e(TAG, "processFirmware: ERROR", e)
Expand Down Expand Up @@ -985,6 +1040,18 @@ class CarData : Serializable {
end = i + cnt
while (i < end) {
ival = dataParts[i].toInt()
if (car_type == "SQ") {
// orange alert
if ((j == 0) && ((car_tpms_pressure_raw!![j] < 210) || (car_tpms_pressure_raw!![j] > 240))) ival =1
if ((j == 1) && ((car_tpms_pressure_raw!![j] < 210) || (car_tpms_pressure_raw!![j] > 240))) ival =1
if ((j == 2) && ((car_tpms_pressure_raw!![j] < 240) || (car_tpms_pressure_raw!![j] > 270))) ival =1
if ((j == 3) && ((car_tpms_pressure_raw!![j] < 240) || (car_tpms_pressure_raw!![j] > 270))) ival =1
// red alert
if ((j == 0) && ((car_tpms_pressure_raw!![j] < 190) || (car_tpms_pressure_raw!![j] > 260))) ival =2
if ((j == 1) && ((car_tpms_pressure_raw!![j] < 190) || (car_tpms_pressure_raw!![j] > 260))) ival =2
if ((j == 2) && ((car_tpms_pressure_raw!![j] < 220) || (car_tpms_pressure_raw!![j] > 290))) ival =2
if ((j == 3) && ((car_tpms_pressure_raw!![j] < 220) || (car_tpms_pressure_raw!![j] > 290))) ival =2
}
if (ival > 2) ival = 2 else if (ival < 0) ival = 0
sval = if (ival == 0) "✔" else if (ival == 1) "⛛" else "⚠"
car_tpms_alert_raw!![j] = ival
Expand Down Expand Up @@ -1013,6 +1080,58 @@ class CarData : Serializable {
return true
}

/**
* Process GEN message ("X")
* not implemented yet?
*/
fun processGen(msgdata: String): Boolean {
init()
Log.d(TAG, "processGen: $msgdata")
try {
val dataParts =
msgdata.split(",\\s*".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
if (dataParts.size >= 9) {
car_gen_inprogress = dataParts[0].toBoolean()
car_gen_pilot = dataParts[1].toBoolean()
car_gen_voltage = dataParts[2].toInt()
car_gen_current = dataParts[3].toFloat()
car_gen_power = dataParts[4].toFloat()
car_gen_efficiency = dataParts[5].toFloat()
car_gen_type = dataParts[6]
car_gen_state = dataParts[7]
car_gen_substate = dataParts[8]
car_gen_mode = dataParts[9]
car_gen_climit = dataParts[10].toFloat()
car_gen_limit_range = dataParts[11].toFloat()
car_gen_limit_soc = dataParts[12].toInt()
car_gen_kwh = dataParts[13].toFloat()
car_gen_kwh_grid = dataParts[14].toFloat()
car_gen_kwh_grid_total = dataParts[15].toFloat()
car_gen_time = dataParts[16].toInt()
car_gen_timermode = dataParts[17].toInt()
car_gen_timerstart = dataParts[18].toInt()
car_gen_duration_empty = dataParts[19].toInt()
car_gen_duration_range = dataParts[20].toInt()
car_gen_duration_soc = dataParts[21].toInt()
car_gen_temp = dataParts[22].toFloat()
if (dataParts.size >= 23) {
val dateFormat = appPrefs!!.getData("option_date_format", "0") == "1"
val charge_timestamp_raw = dataParts[23].toInt()
val timestamp_formater = if(dateFormat) {
DateTimeFormatter.ofPattern("dd.MM.yy HH:mm").withZone(ZoneId.systemDefault())
} else {
DateTimeFormatter.ofPattern("MM/dd yy hh:mm").withZone(ZoneId.systemDefault())
}
car_charge_timestamp = timestamp_formater.format(Instant.ofEpochSecond(charge_timestamp_raw.toLong()))
}
}
} catch (e: Exception) {
Log.e(TAG, "processGen: ERROR", e)
return false
}
recalc()
return true
}
/**
* Get data extract suitable for system broadcast.
*
Expand Down Expand Up @@ -1080,7 +1199,10 @@ class CarData : Serializable {
b.putInt("car_chargelimit_minsremaining_range", car_chargelimit_minsremaining_range)
b.putInt("car_chargelimit_soclimit", car_chargelimit_soclimit)
b.putInt("car_chargelimit_minsremaining_soc", car_chargelimit_minsremaining_soc)

b.putFloat("car_charge_kwh_grid", car_charge_kwh_grid)
b.putFloat("car_charge_kwh_grid_total", car_charge_kwh_grid_total)
b.putFloat("car_battery_capacity", car_battery_capacity)
b.putString("car_charge_timestamp", car_charge_timestamp)

//
// Location (msgCode 'L')
Expand Down Expand Up @@ -1157,10 +1279,11 @@ class CarData : Serializable {
b.putString("car_vin", car_vin)
b.putInt("car_gsm_dbm", car_gsm_dbm)
b.putInt("car_gsm_bars", car_gsm_bars)
b.putString("car_gsm_lock", car_gsmlock)
b.putString("car_gsm_provider", car_gsm_provider)
b.putInt("car_canwrite", car_canwrite_raw)
b.putInt("car_servicedays", car_servicetime)
b.putInt("car_servicedist", car_servicerange)
b.putString("car_mdm_mode", car_mdm_mode)

//
// TPMS new flexible wheel layout (msgCode 'Y')
Expand Down Expand Up @@ -1200,6 +1323,35 @@ class CarData : Serializable {
// Capabilities (msgCode 'V')
//
b.putString("car_capabilities", car_capabilities)

//
// Gen (msgCode 'X')
//
// not implemented yet?
b.putBoolean("car_gen_inprogress", car_gen_inprogress)
b.putBoolean("car_gen_pilot", car_gen_pilot)
b.putInt("car_gen_voltage", car_gen_voltage)
b.putFloat("car_gen_current", car_gen_current)
b.putFloat("car_gen_power", car_gen_power)
b.putFloat("car_gen_efficiency", car_gen_efficiency)
b.putString("car_gen_type", car_gen_type)
b.putString("car_gen_state", car_gen_state)
b.putString("car_gen_substate", car_gen_substate)
b.putString("car_gen_mode", car_gen_mode)
b.putFloat("car_gen_climit", car_gen_climit)
b.putFloat("car_gen_limit_range", car_gen_limit_range)
b.putInt("car_gen_limit_soc", car_gen_limit_soc)
b.putFloat("car_gen_kwh", car_gen_kwh)
b.putFloat("car_gen_kwh_grid", car_gen_kwh_grid)
b.putFloat("car_gen_kwh_grid_total", car_gen_kwh_grid_total)
b.putInt("car_gen_time", car_gen_time)
b.putInt("car_gen_timermode", car_gen_timermode)
b.putInt("car_gen_timerstart", car_gen_timerstart)
b.putInt("car_gen_duration_empty", car_gen_duration_empty)
b.putInt("car_gen_duration_range", car_gen_duration_range)
b.putInt("car_gen_duration_soc", car_gen_duration_soc)
b.putFloat("car_gen_temp", car_gen_temp)
b.putString("car_gen_timestamp", car_gen_timestamp)
} catch (e: Exception) {
e.printStackTrace()
}
Expand Down
Loading