Health interface define many health measure item, please refer to com.infairy.cocina.SDK.gene.HealthInterface.
If you are a health device maker, and want to write a bundle to broadcast your measure data, please follow the above step:
If you are a health device maker, and want to write a bundle to broadcast your measure data, please follow the above step:
package yourBundle;
import com.infairy.cocina.SDK.gene.HealthInterface;
import com.infairy.cocina.SDK.gene.HealthDNA;
...
public class WeightMeter implements BundleActivator{
....
}
public void tellOthers(int kg){
/*
* Use HealthDNA object to
*/
HealthDNA health=new HealthDNA();
health.Brand="MyBrand";
health.Model="Weight001k";
health.DataType=HealthInterface.Data_Type_Weight_Kg;
health.DeviceKind=HealthInterface.Device_Kind_BodyWeight;
health.Value=String.valueOf(kg);
device.SensorBroadcast(health);
}
Ok, your weight is easy to tell all others in Infairy. Now, how can i get the weight data from Weight001k?
First, listen sensor broadcast:
public class weightAssistant implements BundleActivator,EventHandler{
.....
public void start(BundleContext context) throws Exception {
/*
* Listen Sensor's broadcast data
*/
device.ListenBroadcast(context, this, device.BROADCAST_CHANNEL_SENSOR);
.....
}
Second, implement handleEvent function:
public void handleEvent(Event evnt) {
if(evnt==null) return;
/*
* cast event to HealthDNA
*/
HealthDNA health=(HealthDNA)evnt.getProperty(device.BROADCAST_HEALTH_EVENTOBJECT);
if(health==null) return;
/*
* check the DeviceKind, please refer to com.infairy.cocina.SDK.gete.HealthInterface.Device_Kind_xxxx
*/
String Kind=health.DeviceKind;
/*
* check the DeviceKind, please refer to com.infairy.cocina.SDK.gene.HealthInterface.Data_Type_xxxx
*/
String DataType=health.DataType;
/*
* Value
*/
String value=hrealth.Value;
...
}