separate firmware date from version (#1650)

This commit is contained in:
lucas lelievre
2025-12-18 06:46:10 +01:00
committed by GitHub
6 changed files with 24 additions and 4 deletions

View File

@@ -407,6 +407,7 @@ tracker-settings-update = Update now
tracker-settings-update-title = Firmware version
tracker-settings-current-version = Current
tracker-settings-latest-version = Latest
tracker-settings-build-date = Build Date
## Tracker part card info

View File

@@ -208,6 +208,15 @@ export function TrackerSettingsPage() {
Firmware version
</Typography>
<div className="flex gap-2 flex-col">
<div className="flex justify-between gap-2">
<Typography id="tracker-settings-build-date" />
<Typography
whitespace="whitespace-pre-wrap"
textAlign="text-end"
>
{tracker?.device?.hardwareInfo?.firmwareDate || '--'}
</Typography>
</div>
<div className="flex justify-between gap-2">
<Typography id="tracker-settings-current-version" />
<Typography

View File

@@ -39,6 +39,10 @@ public class DataFeedBuilder {
? fbb.createString(device.getManufacturer())
: 0;
int firmwareDateOffset = device.getFirmwareDate() != null
? fbb.createString(device.getFirmwareDate())
: 0;
int hardwareIdentifierOffset = fbb.createString(device.getHardwareIdentifier());
HardwareInfo.startHardwareInfo(fbb);
@@ -46,6 +50,8 @@ public class DataFeedBuilder {
HardwareInfo.addManufacturer(fbb, manufacturerOffset);
HardwareInfo.addHardwareIdentifier(fbb, hardwareIdentifierOffset);
HardwareInfo.addFirmwareDate(fbb, firmwareDateOffset);
if (device instanceof UDPDevice udpDevice) {
var address = udpDevice.getIpAddress().getAddress();
HardwareInfo
@@ -68,6 +74,7 @@ public class DataFeedBuilder {
HardwareInfo.addMcuId(fbb, device.getMcuType().getSolarType());
HardwareInfo.addOfficialBoardType(fbb, device.getBoardType().getSolarType());
return HardwareInfo.endHardwareInfo(fbb);
}

View File

@@ -13,6 +13,7 @@ open class Device(val magSupport: Boolean = false) {
open val id: Int = nextLocalDeviceId.incrementAndGet()
open var name: String? = null
open var firmwareVersion: String? = null
open var firmwareDate: String? = null
open var manufacturer: String? = null
open val trackers: MutableMap<Int, Tracker> = ConcurrentHashMap()

View File

@@ -280,12 +280,14 @@ class HIDCommon {
// Nothing to do now..
}
}
if (fw_date != null && fw_major != null && fw_minor != null && fw_patch != null) {
if (fw_date != null) {
val firmwareYear = 2020 + (fw_date shr 9 and 127)
val firmwareMonth = fw_date shr 5 and 15
val firmwareDay = fw_date and 31
val firmwareDate = String.format("%04d-%02d-%02d", firmwareYear, firmwareMonth, firmwareDay)
device.firmwareVersion = "$fw_major.$fw_minor.$fw_patch (Build $firmwareDate)"
device.firmwareDate = String.format("%04d-%02d-%02d", firmwareYear, firmwareMonth, firmwareDay)
}
if (fw_major != null && fw_minor != null && fw_patch != null) {
device.firmwareVersion = "$fw_major.$fw_minor.$fw_patch"
}
if (svr_status != null) {
val status = TrackerStatus.getById(svr_status)