package Ġorg . e health in novation . android . bluetooth . cg m Ċ Ċ import Ġorg . e health in novation . android . bluetooth . parser . Characteristic Composer Ċ import Ġorg . e health in novation . android . bluetooth . parser . Data Writer Ċ import Ġorg . e health in novation . android . bluetooth . parser . Float Format Ċ import Ġorg . e health in novation . android . bluetooth . parser . Int Format Ċ Ċ /** Ċ Ġ* ĠComposer Ġfor Ġthe Ġcontrol Ġcommands Ġto Ġthe ĠC GM ĠSpecific ĠCommand ĠControl ĠPoint Ċ Ġ* Ċ Ġ* ĠCall Ġ[ can Compose ] Ġon Ġyour Ġ[ Cam Control Command ] Ġto Ġmake Ġsure Ġit Ġis Ġsupported . ĠIf Ġit Ġdoes , Ċ Ġ* Ġ[ can Compose ] Ġreturns Ġtrue . Ċ Ġ* Ċ Ġ* ĠThen Ġcall Ġ[ compose ] Ġwith Ġthe Ġ[ Cam Control Command ] Ġand Ġthe Ġtarget Ġdata Ġbuffer Ġ[ Data Writer ] Ġto Ċ Ġ* Ġwrite Ġthe Ġserialized Ġrequest Ġinto Ġthe Ġtarget Ġbuffer . Ċ Ġ* Ċ Ġ* Ġ@ see Ġhttps :// www . bluetooth . com / spec ifications / g att / viewer ? attribute Xml File = org . bluetooth . character istic . cg m _ specific _ ops _ control _ point . xml Ċ Ġ* Ċ Ġ* Ġ@ throws ĠException Ġif Ġwrite Ġoperation Ġis Ġun successful Ċ Ġ*/ Ċ class ĠC gm Control Composer Ġ: ĠCharacter istic Composer < C gm Control Command > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġoperand Composer : ĠC gm Control Operand Composer Ġ= ĠC gm Control Operand Composer () ĊĊĠĠĠ Ġoverride Ġfun Ġcan Compose ( request : ĠC gm Control Command ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Session , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStop Session , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet Communication Interval , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet Communication Interval , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet G lu co se Calibration Value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet G lu co se Calibration Value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet G lu co se Alert Level , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet G lu co se Alert Level , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠReset Device Specific Alert Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompose ( request : ĠC gm Control Command , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Session Ġ-> Ġcompose Simple Command ( Opcode . START _ THE _ SESSION , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStop Session Ġ-> Ġcompose Simple Command ( Opcode . STOP _ THE _ SESSION , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet Communication Interval Ġ-> Ġcompose Set Communication Interval ( request . operand , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet Communication Interval Ġ-> Ġcompose Simple Command ( Opcode . GET _ CG M _ COMM UN ICATION _ INTERVAL , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet G lu co se Calibration Value Ġ-> Ġcompose Set Calibration ( request . operand , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet G lu co se Calibration Value Ġ-> Ġcompose Get Calibration ( request . operand , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSet G lu co se Alert Level Ġ-> Ġcompose Set G lu co se Alert Level ( request , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGet G lu co se Alert Level Ġ-> Ġcompose Get G lu co se Alert Level ( request , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠReset Device Specific Alert Ġ-> Ġcompose Simple Command ( Opcode . RESET _ DEVICE _ SPEC IFIC _ ALERT , Ġdata Writer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" operation Ġnot Ġrecognized ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUse Ġthis Ġcompose Ġfunction Ġwhen Ġthe Ġcontrol Ġcommand Ġhas Ġonly Ġan Ġopcode Ġas Ġargument . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġfun Ġcompose Simple Command ( opcode : ĠOpcode , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( opcode . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcompose Set Communication Interval ( operand : ĠCommunication Interval , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( Opcode . SET _ CG M _ COMM UN ICATION _ INTERVAL . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠĠĠĠĠ Ġoperand Composer . compose Communication Interval ( operand , Ġdata Writer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcompose Set Calibration ( operand : ĠCal ibration Record , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( Opcode . SET _ GL U CO SE _ CAL IB RATION _ VALUE . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠĠĠĠĠ Ġoperand Composer . compose Calibration Record ( operand , Ġdata Writer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcompose Get Calibration ( operand : ĠCal ibration Record Request , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( Opcode . GET _ GL U CO SE _ CAL IB RATION _ VALUE . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( operand . record Number , ĠInt Format . FORMAT _ UINT 1 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcompose Set G lu co se Alert Level ( request : ĠSet G lu co se Alert Level , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopcode : ĠOpcode Ġ= Ġrequest . operand . alert Type . set Command Opcode ĊĠĠĠĠĠĠĠ Ġval Ġconcent ration : ĠFloat Ġ= Ġrequest . operand . con cent ration ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( opcode . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠĠĠĠĠ Ġdata Writer . put Float ( con cent ration , Ġ 0 , ĠFloat Format . FORMAT _ S FLOAT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcompose Get G lu co se Alert Level ( request : ĠGet G lu co se Alert Level , Ġdata Writer : ĠData Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopcode Ġ= Ġrequest . alert Type . get Command Opcode ĊĠĠĠĠĠĠĠ Ġdata Writer . put Int ( opcode . key , ĠInt Format . FORMAT _ UINT 8 ) ĊĠĠĠ Ġ} Ċ }