File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -381,6 +381,15 @@ async def get_board_info(
381381 special , ver_info_bytes = t .uint8_t .deserialize (ver_info_bytes )
382382 version = f"{ major } .{ minor } .{ patch } .{ special } build { build } "
383383
384+ if xncp .FirmwareFeatures .BUILD_STRING in self ._xncp_features :
385+ try :
386+ build_string = await self .xncp_get_build_string ()
387+ except InvalidCommandError :
388+ build_string = None
389+
390+ if build_string :
391+ version = f"{ version } ({ build_string } )"
392+
384393 return (
385394 tokens [t .EzspMfgTokenId .MFG_STRING ],
386395 tokens [t .EzspMfgTokenId .MFG_BOARD_NAME ],
@@ -702,3 +711,8 @@ async def xncp_get_mfg_token_override(self, token: t.EzspMfgTokenId) -> bytes:
702711 """Get manufacturing token override."""
703712 rsp = await self .send_xncp_frame (xncp .GetMfgTokenOverrideReq (token = token ))
704713 return rsp .value
714+
715+ async def xncp_get_build_string (self ) -> bytes :
716+ """Get build string."""
717+ rsp = await self .send_xncp_frame (xncp .GetBuildStringReq ())
718+ return rsp .build_string .decode ("utf-8" )
Original file line number Diff line number Diff line change @@ -46,10 +46,12 @@ class XncpCommandId(t.enum16):
4646 GET_SUPPORTED_FEATURES_REQ = 0x0000
4747 SET_SOURCE_ROUTE_REQ = 0x0001
4848 GET_MFG_TOKEN_OVERRIDE_REQ = 0x0002
49+ GET_BUILD_STRING_REQ = 0x0003
4950
5051 GET_SUPPORTED_FEATURES_RSP = GET_SUPPORTED_FEATURES_REQ | 0x8000
5152 SET_SOURCE_ROUTE_RSP = SET_SOURCE_ROUTE_REQ | 0x8000
5253 GET_MFG_TOKEN_OVERRIDE_RSP = GET_MFG_TOKEN_OVERRIDE_REQ | 0x8000
54+ GET_BUILD_STRING_RSP = GET_BUILD_STRING_REQ | 0x8000
5355
5456 UNKNOWN = 0xFFFF
5557
@@ -99,6 +101,9 @@ class FirmwareFeatures(t.bitmap32):
99101 # The firmware supports overriding some manufacturing tokens
100102 MFG_TOKEN_OVERRIDES = 1 << 2
101103
104+ # The firmware contains a free-form build string
105+ BUILD_STRING = 1 << 3
106+
102107
103108class XncpCommandPayload (t .Struct ):
104109 pass
@@ -133,3 +138,13 @@ class GetMfgTokenOverrideReq(XncpCommandPayload):
133138@register_command (XncpCommandId .GET_MFG_TOKEN_OVERRIDE_RSP )
134139class GetMfgTokenOverrideRsp (XncpCommandPayload ):
135140 value : Bytes
141+
142+
143+ @register_command (XncpCommandId .GET_BUILD_STRING_REQ )
144+ class GetBuildStringReq (XncpCommandPayload ):
145+ pass
146+
147+
148+ @register_command (XncpCommandId .GET_BUILD_STRING_RSP )
149+ class GetBuildStringRsp (XncpCommandPayload ):
150+ build_string : Bytes
You can’t perform that action at this time.
0 commit comments