package Ġcom . tech noc reat ives . be ck on . mesh . data . util Ċ Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . nio . Byte Order Ċ import Ġjava . util .* Ċ Ċ object ĠConstants Ġ{ ĊĠĠĠ Ġ// Ġno . n ord ic semi . android . mesh . utils . Mesh Address . UN ASS IGNED _ ADDRESS ĊĠĠĠ Ġconst Ġval ĠUn assigned Address : ĠInt Ġ= Ġ 0 x 0 0 0 0 ĊĊĠĠĠ Ġ// Ġno . n ord ic semi . android . mesh . models . Sig Model Parser . CONFIGURATION _ CLIENT ; ĊĠĠĠ Ġconst Ġval ĠCONFIG URATION _ CLIENT : ĠShort Ġ= Ġ 0 x 0 0 0 1 Ċ } Ċ Ċ object ĠMesh Parser Utils Ġ{ ĊĊĠĠĠ Ġfun Ġbytes ToInt ( b : ĠByteArray ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( b . size Ġ== Ġ 4 ) ĠByteBuffer . wrap ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. order ( Byte Order . BIG _ ENDIAN ). int Ġelse ĠByteBuffer . wrap ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ĊĠĠĠĠĠĠĠ Ġ). order ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByte Order . BIG _ ENDIAN ĊĠĠĠĠĠĠĠ Ġ). short ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhex ToInt ( hex : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ToInt ( toByteArray ( hex )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto ByteArray ( hex String : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġhex String . length ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠByteArray ( len Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġlen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes [ i Ġ/ Ġ 2 ] Ġ= Ġ(( Character . digit ( hex String [ i ], Ġ 1 6 ) Ġshl Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĠCharacter . digit ( hex String [ i Ġ+ Ġ 1 ], Ġ 1 6 )). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġformat Uuid ( uuid Hex : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Uuid Pattern ( uuid Hex )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStringBuffer ( uuid Hex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( 8 , Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( 1 3 , Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( 1 8 , Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( 2 3 , Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. uppercase ( Locale . US ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġuuid Hex ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠP ATTERN _ UUID _ HEX Ġ= Ġ"[ 0 - 9 a - fA - F ]{ 3 2 }". to Regex () ĊĊĠĠĠ Ġfun Ġis Uuid Pattern ( uuid Hex : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuuid Hex . matches ( PATTERN _ UUID _ HEX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġformat Company Identifier ( company Identifier : ĠInt , Ġadd 0 x : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( add 0 x ) Ġ" 0 x " Ġ+ ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . US , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"% 0 4 X ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompany Identifier ĊĠĠĠĠĠĠĠ Ġ) Ġelse ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . US , Ġ"% 0 4 X ", Ġcompany Identifier ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ