From 0527ddf5c1eecf2e7552bcf063e941c3d2be4246 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 26 Jun 2023 17:20:20 +0200 Subject: [PATCH] build,ui: add build timestamp together with the build semver, this should provide stable info for ndg software version running on a given device. --- build.zig | 1 + src/ui/ui.zig | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index 07b88a1..105e7bc 100644 --- a/build.zig +++ b/build.zig @@ -14,6 +14,7 @@ pub fn build(b: *std.build.Builder) void { const buildopts = b.addOptions(); buildopts.addOption(DriverTarget, "driver", drv); + buildopts.addOption(u64, "build_timestamp", @intCast(u64, std.time.timestamp())); const semver_step = VersionStep.create(b, buildopts, inver); // gui build diff --git a/src/ui/ui.zig b/src/ui/ui.zig index 985ba55..5bf163b 100644 --- a/src/ui/ui.zig +++ b/src/ui/ui.zig @@ -61,7 +61,24 @@ export fn nm_create_info_panel(parent: *lvgl.LvObj) c_int { } fn createInfoPanel(parent: *lvgl.LvObj) !void { + parent.flexFlow(.column); + parent.flexAlign(.start, .start, .start); + var buf: [100]u8 = undefined; - const s = try std.fmt.bufPrintZ(&buf, "ndg version: {any}", .{buildopts.semver}); - _ = try lvgl.createLabel(parent, s, .{ .long_mode = .wrap, .pos = .none }); + const sver = try std.fmt.bufPrintZ(&buf, "nakamochi software version: {any}", .{buildopts.semver}); + _ = try lvgl.createLabel(parent, sver, .{ .long_mode = .wrap, .pos = .none }); + + const epoch: std.time.epoch.EpochSeconds = .{ .secs = buildopts.build_timestamp }; + const daysec = epoch.getDaySeconds(); + const yearday = epoch.getEpochDay().calculateYearDay(); + const monthday = yearday.calculateMonthDay(); + const ts = try std.fmt.bufPrintZ(&buf, "build timestamp: {d}-{d:0>2}-{d:0>2} {d:0>2}:{d:0>2}:{d:0>2} UTC", .{ + yearday.year, + monthday.month.numeric(), + monthday.day_index + 1, + daysec.getHoursIntoDay(), + daysec.getMinutesIntoHour(), + daysec.getSecondsIntoMinute(), + }); + _ = try lvgl.createLabel(parent, ts, .{ .long_mode = .wrap, .pos = .none }); }