diff --git a/src/src/main/java/com/my/graphiteDigesterBg/GraphiteDigesterBgApplication.java b/src/src/main/java/com/my/graphiteDigesterBg/MyApplication.java similarity index 66% rename from src/src/main/java/com/my/graphiteDigesterBg/GraphiteDigesterBgApplication.java rename to src/src/main/java/com/my/graphiteDigesterBg/MyApplication.java index 6e94481..4d49996 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/GraphiteDigesterBgApplication.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/MyApplication.java @@ -2,8 +2,8 @@ package com.my.graphiteDigesterBg; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class GraphiteDigesterBgApplication { +public class MyApplication { public static void main(String[] args) { - SpringApplication.run(GraphiteDigesterBgApplication.class, args); + SpringApplication.run(MyApplication.class, args); } } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java b/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java new file mode 100644 index 0000000..62fb957 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java @@ -0,0 +1,49 @@ +package com.my.graphiteDigesterBg; +import com.my.graphiteDigesterBg.diframe.DiDevice; +import com.my.graphiteDigesterBg.diframe.DiDeviceActuatorManager; +import com.my.graphiteDigesterBg.diframe.actuator.DiActMotor; +import jakarta.annotation.Resource; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +@Order(1) +@Component +public class MyApplicationRunner implements ApplicationRunner { + @Resource + private DiDevice device; + + @Override + public void run(ApplicationArguments args) throws Exception { + this.setupActuators(); + } + + // setup actuators + private void setupActuators() { + DiDeviceActuatorManager actuators = this.device.getActuators(); + actuators.register(MyDevice.ACT_HEAT_PLATE_MOTOR, new DiActMotor(){{ + id = 11; + }}); + actuators.register(MyDevice.ACT_HEAT_SLOT_01_COVER_SERVO, new DiActMotor(){{ + id = 12; + }}); + actuators.register(MyDevice.ACT_TRANSFER_UD_MOTOR, new DiActMotor(){{ + id = 21; + }}); + actuators.register(MyDevice.ACT_TRANSFER_CLIP_SERVO, new DiActMotor(){{ + id = 22; + }}); + actuators.register(MyDevice.ACT_TRANSFER_LR_MOTOR, new DiActMotor(){{ + id = 31; + }}); + actuators.register(MyDevice.ACT_LIQUID_MOTOR, new DiActMotor(){{ + id = 41; + }}); + actuators.register(MyDevice.ACT_LIQUID_PLATE_MOTOR, new DiActMotor(){{ + id = 51; + }}); + actuators.register(MyDevice.ACT_LIQUID_PERISTALTIC_PUMP, new DiActMotor(){{ + id = 61; + }}); + } +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java b/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java new file mode 100644 index 0000000..084e12a --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java @@ -0,0 +1,12 @@ +package com.my.graphiteDigesterBg; +import com.my.graphiteDigesterBg.diframe.DiDevice; +public class MyDevice extends DiDevice { + public static String ACT_HEAT_PLATE_MOTOR = "heatPlateMotor"; + public static String ACT_HEAT_SLOT_01_COVER_SERVO = "heatSlot01CoverServo"; + public static String ACT_TRANSFER_LR_MOTOR = "transferLeftRightMotor"; + public static String ACT_TRANSFER_UD_MOTOR = "transferUpDownMotor"; + public static String ACT_TRANSFER_CLIP_SERVO = "transferClipServo"; + public static String ACT_LIQUID_MOTOR = "liquidMotor"; + public static String ACT_LIQUID_PLATE_MOTOR = "liquidPlateMotor"; + public static String ACT_LIQUID_PERISTALTIC_PUMP = "liquidPeristalticPump"; +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java new file mode 100644 index 0000000..86ab51f --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java @@ -0,0 +1,19 @@ +package com.my.graphiteDigesterBg.diframe; +import jakarta.annotation.PostConstruct; +import org.springframework.stereotype.Component; + +@Component +public class DiDevice { + // actuator manager + private DiDeviceActuatorManager actuators; + + @PostConstruct + public void init() { + this.actuators = new DiDeviceActuatorManager(this); + } + + // get actuator manager + public DiDeviceActuatorManager getActuators() { + return this.actuators; + } +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceActuatorManager.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceActuatorManager.java new file mode 100644 index 0000000..97ebf06 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceActuatorManager.java @@ -0,0 +1,26 @@ +package com.my.graphiteDigesterBg.diframe; +import com.my.graphiteDigesterBg.diframe.actuator.DiActuator; +import java.util.HashMap; +import java.util.Map; +public class DiDeviceActuatorManager { + // device instance + private final DiDevice device; + // id => actuator + private final Map actuators; + + // constructor + public DiDeviceActuatorManager(DiDevice device ) { + this.device = device; + this.actuators = new HashMap(); + } + + // register actuator + public void register( String id, DiActuator actuator ) { + this.actuators.put( id, actuator ); + } + + // get actuator + public void get( String id ) { + this.actuators.get( id ); + } +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java index fae6c64..8ee5c45 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java @@ -1,4 +1,8 @@ package com.my.graphiteDigesterBg.diframe.actuator; -public class DiActMotor { - +public class DiActMotor extends DiActuatorBase { + public void moveTo( Integer pos ) {} + public void moveBy( Integer delta ) {} + public void rotate( Integer direction ) {} + public void stop() {} + public void reset() {} } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActPeristalticPump.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActPeristalticPump.java new file mode 100644 index 0000000..31fe55e --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActPeristalticPump.java @@ -0,0 +1,3 @@ +package com.my.graphiteDigesterBg.diframe.actuator; +public class DiActPeristalticPump extends DiActuatorBase { +} \ No newline at end of file diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActServo.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActServo.java new file mode 100644 index 0000000..980d0a4 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActServo.java @@ -0,0 +1,3 @@ +package com.my.graphiteDigesterBg.diframe.actuator; +public class DiActServo extends DiActuatorBase { +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActuatorBase.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActuatorBase.java index 66f0d19..b295efc 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActuatorBase.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActuatorBase.java @@ -1,4 +1,5 @@ package com.my.graphiteDigesterBg.diframe.actuator; - -public class DiActuatorBase { +abstract public class DiActuatorBase implements DiActuator { + // id + protected Integer id; }