/** Ċ R FX Com ĠDriver Ċ Copyright Ġ( C ) Ġ 2 0 2 0 ĠMar c ĠPop p leton Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ċ http :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . mar cp opp leton . rf x com driver Ċ Ċ import Ġcom . mar cp opp leton . rf x com driver . packets . Packet Ċ import Ġcom . mar cp opp leton . rf x com driver . packets . Temp Hum id Packet Ċ import Ġcom . mar cp opp leton . rf x com driver . packets . Temp Packet Ċ Ċ class ĠInvalid Packet Length Exception ( override Ġvar Ġmessage : String ): ĠException ( message ) Ċ class ĠUn k own Packet Type Exception ( override Ġvar Ġmessage : String ): ĠException ( message ) ĊĊ Ċ fun Ġparse ( packet Data : ByteArray ): ĠPacket ? { ĊĠĠĠ Ġval Ġdata Length Ġ= Ġ( packet Data . size Ġ- Ġ 1 ) ĊĠĠĠ Ġif ( packet Data [ 0 ]. toInt () Ġ!= data Length ) Ġthrow ĠInvalid Packet Length Exception (" Packet Ġunexpected Ġlength : Ġexpecting Ġ${ data Length }, Ġgot Ġ${ packet Data [ 1 ]. toInt () }") ĊĊĠĠĠ Ġval Ġpacket Type Ġ= Ġpacket Data [ 1 ]. toInt () ĊĠĠĠ Ġval Ġpacket Ġ= Ġwhen ( packet Type ){ ĊĠĠĠĠĠĠĠ Ġ/* 0 x 1 Ġ-> ĠPacket ( 2 0 ," Status ") ĊĠĠĠĠĠĠĠĠ 0 x 2 Ġ-> ĠPacket ( 4 , Ġ" Transmit Ack ") ĊĠĠĠĠĠĠĠĠ 0 x 1 0 Ġ-> ĠPacket ( 7 , Ġ" Lighting X 1 0 ") ĊĠĠĠĠĠĠĠĠ 0 x 1 1 Ġ-> ĠPacket ( 1 1 , Ġ" Lighting HE ") ĊĠĠĠĠĠĠĠĠ 0 x 1 6 Ġ-> ĠPacket ( 7 , Ġ" Ch ime ") */ ĊĠĠĠĠĠĠĠĠ 0 x 5 0 Ġ-> ĠTemp Packet ( 8 , Ġ" Temp ") ĊĠĠĠĠĠĠĠ Ġ// 0 x 5 1 Ġ-> ĠPacket ( 8 ," hum id ") ĊĠĠĠĠĠĠĠĠ 0 x 5 2 Ġ-> ĠTemp Hum id Packet ( 1 0 , Ġ" Temp Hum id ") ĊĠĠĠĠĠĠĠ Ġ/* 0 x 5 5 Ġ-> ĠPacket ( 1 1 , Ġ" Rain ") ĊĠĠĠĠĠĠĠĠ 0 x 5 6 Ġ-> ĠPacket ( 1 6 , Ġ" Wind ") ĊĠĠĠĠĠĠĠĠ 0 x 5 a Ġ-> ĠPacket ( 1 7 , Ġ" Power ") */ ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUn k own Packet Type Exception (" Packet Ġtype Ġunknown : Ġ$ packet Type ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġpacket . receive ( packet Data ) ĊĠĠĠ Ġreturn Ġpacket Ċ }