mvn archetype:generate -DarchetypeGroupId=org.osgi.enroute.archetype -DarchetypeArtifactId=osgi-archetype -DarchetypeVersion=1.0.0 -DgroupId=com.example -DartifactId=my-command -Dversion=1.0.0 -Dpackage=com.example <dependency> <groupId>org.osgi.enroute.extra</groupId> <artifactId>org.osgi.enroute.iot.pi.command.provider</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.osgi.enroute.extra</groupId> <artifactId>org.osgi.enroute.iot.pi.command.api</artifactId> <version>1.0.0</version> </dependency> package com.example; import aQute.bnd.annotation.component.Component; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinDigitalOutput; import com.pi4j.io.gpio.PinState; import com.pi4j.io.gpio.RaspiPin; import org.osgi.service.component.ComponentContext; @Component( service = PiGpioCommand.class, property = { "osgi.command.scope=pi", "osgi.command.function=gpio" } ) public class PiGpioCommand { private GpioPinDigitalOutput pin; void activate(ComponentContext context) { pin = GpioFactory.getInstance().provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.LOW); System.out.println("PiGpioCommand activated"); } void deactivate(ComponentContext context) { pin.low(); pin.unexport(); System.out.println("PiGpioCommand deactivated"); } public void gpio(int state) { if (state == 1) { pin.high(); System.out.println("GPIO set to HIGH"); } else { pin.low(); System.out.println("GPIO set to LOW"); } } } mvn clean install java -jar my-command-1.0.0.jar


上一篇:
下一篇:
切换中文