import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;
import aQute.bnd.annotation.component.Activate;
import aQute.bnd.annotation.component.Deactivate;
import osgi.enroute.iot.pi.provider.IoTProvider;
@Component
public class LEDController {
@Reference(cardinality=ReferenceCardinality.MANDATORY,
policy=ReferencePolicy.DYNAMIC)
private volatile IoTProvider iot;
@Activate
public void activate() {
iot.getGpioService().write(GPIO_PIN, HIGH);
}
@Deactivate
public void deactivate() {
iot.getGpioService().write(GPIO_PIN, LOW);
}
}
gpio.pin=4
sensor.sample.rate=1000
import org.osgi.service.component.annotations.Component;
import org.osgi.service.metatype.annotations.Designate;
import aQute.bnd.annotation.component.Configuration;
import osgi.enroute.iot.pi.provider.IoTProvider;
@Component
@Configuration(pid = "pi", provide = IoTProvider.class)
@Designate(ocd = PiConfig.class)
public class LEDController {
@Reference(cardinality = ReferenceCardinality.MANDATORY,
policy = ReferencePolicy.DYNAMIC)
private volatile IoTProvider iot;
@Activate
public void activate(PiConfig config) {
int gpioPin = config.gpio_pin();
int sampleRate = config.sensor_sample_rate();
}
}