From b77f759f43dd040994e067609b6b1b38abbda1b6 Mon Sep 17 00:00:00 2001 From: sige Date: Wed, 17 Jan 2024 10:53:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=AE=BE=E5=A4=87IO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../my/graphiteDigesterBg/MyApplicationRunner.java | 44 ++++++++++++++++++---- .../java/com/my/graphiteDigesterBg/MyDevice.java | 6 +++ .../my/graphiteDigesterBg/diframe/DiDevice.java | 11 +++++- .../my/graphiteDigesterBg/diframe/DiDeviceIO.java | 5 +++ .../diframe/DiDeviceIOManager.java | 25 ++++++++++++ .../diframe/actuator/DiActuatorBase.java | 4 +- 6 files changed, 83 insertions(+), 12 deletions(-) create mode 100644 src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIO.java create mode 100644 src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIOManager.java diff --git a/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java b/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java index 62fb957..cc2b6e0 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java @@ -1,6 +1,8 @@ package com.my.graphiteDigesterBg; import com.my.graphiteDigesterBg.diframe.DiDevice; import com.my.graphiteDigesterBg.diframe.DiDeviceActuatorManager; +import com.my.graphiteDigesterBg.diframe.DiDeviceIO; +import com.my.graphiteDigesterBg.diframe.DiDeviceIOManager; import com.my.graphiteDigesterBg.diframe.actuator.DiActMotor; import jakarta.annotation.Resource; import org.springframework.boot.ApplicationArguments; @@ -15,35 +17,61 @@ public class MyApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { + this.setupIO(); this.setupActuators(); } + // setup IO + private void setupIO() { + DiDeviceIOManager io = this.device.getIO(); + io.register(MyDevice.IO_HEAT_SLOT_01_HEATER_01, new DiDeviceIO(){{ + mid = 70; + index = 0; + }}); + io.register(MyDevice.IO_HEAT_SLOT_01_HEATER_02, new DiDeviceIO(){{ + mid = 70; + index = 1; + }}); + io.register(MyDevice.IO_HEAT_SLOT_01_HEATER_03, new DiDeviceIO(){{ + mid = 70; + index = 5; + }}); + io.register(MyDevice.IO_HEAT_SLOT_01_HEATER_04, new DiDeviceIO(){{ + mid = 70; + index = 6; + }}); + io.register(MyDevice.IO_AIR_COMPRESSOR, new DiDeviceIO(){{ + mid = 70; + index = 4; + }}); + } + // setup actuators private void setupActuators() { DiDeviceActuatorManager actuators = this.device.getActuators(); actuators.register(MyDevice.ACT_HEAT_PLATE_MOTOR, new DiActMotor(){{ - id = 11; + mid = 11; }}); actuators.register(MyDevice.ACT_HEAT_SLOT_01_COVER_SERVO, new DiActMotor(){{ - id = 12; + mid = 12; }}); actuators.register(MyDevice.ACT_TRANSFER_UD_MOTOR, new DiActMotor(){{ - id = 21; + mid = 21; }}); actuators.register(MyDevice.ACT_TRANSFER_CLIP_SERVO, new DiActMotor(){{ - id = 22; + mid = 22; }}); actuators.register(MyDevice.ACT_TRANSFER_LR_MOTOR, new DiActMotor(){{ - id = 31; + mid = 31; }}); actuators.register(MyDevice.ACT_LIQUID_MOTOR, new DiActMotor(){{ - id = 41; + mid = 41; }}); actuators.register(MyDevice.ACT_LIQUID_PLATE_MOTOR, new DiActMotor(){{ - id = 51; + mid = 51; }}); actuators.register(MyDevice.ACT_LIQUID_PERISTALTIC_PUMP, new DiActMotor(){{ - id = 61; + mid = 61; }}); } } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java b/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java index 084e12a..8fb147c 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java @@ -9,4 +9,10 @@ public class MyDevice extends DiDevice { public static String ACT_LIQUID_MOTOR = "liquidMotor"; public static String ACT_LIQUID_PLATE_MOTOR = "liquidPlateMotor"; public static String ACT_LIQUID_PERISTALTIC_PUMP = "liquidPeristalticPump"; + + public static String IO_HEAT_SLOT_01_HEATER_01 = "heatSlot01Heater01"; + public static String IO_HEAT_SLOT_01_HEATER_02 = "heatSlot01Heater02"; + public static String IO_HEAT_SLOT_01_HEATER_03 = "heatSlot01Heater03"; + public static String IO_HEAT_SLOT_01_HEATER_04 = "heatSlot01Heater04"; + public static String IO_AIR_COMPRESSOR = "airCompressor"; } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java index 86ab51f..c4f6da2 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDevice.java @@ -1,19 +1,26 @@ package com.my.graphiteDigesterBg.diframe; import jakarta.annotation.PostConstruct; import org.springframework.stereotype.Component; - @Component public class DiDevice { + // io manager + private DiDeviceIOManager io; // actuator manager private DiDeviceActuatorManager actuators; @PostConstruct public void init() { + this.io = new DiDeviceIOManager(this); this.actuators = new DiDeviceActuatorManager(this); } + // get io manager + public DiDeviceIOManager getIO() { + return this.io; + } + // get actuator manager public DiDeviceActuatorManager getActuators() { return this.actuators; } -} +} \ No newline at end of file diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIO.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIO.java new file mode 100644 index 0000000..aaac977 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIO.java @@ -0,0 +1,5 @@ +package com.my.graphiteDigesterBg.diframe; +public class DiDeviceIO { + protected Integer mid; + protected Integer index; +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIOManager.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIOManager.java new file mode 100644 index 0000000..5304d61 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiDeviceIOManager.java @@ -0,0 +1,25 @@ +package com.my.graphiteDigesterBg.diframe; +import java.util.HashMap; +import java.util.Map; +public class DiDeviceIOManager { + // device instance + private final DiDevice device; + // id => actuator + private final Map ios; + + // constructor + public DiDeviceIOManager(DiDevice device ) { + this.device = device; + this.ios = new HashMap(); + } + + // register actuator + public void register( String id, DiDeviceIO io ) { + this.ios.put( id, io ); + } + + // get actuator + public void get( String id ) { + this.ios.get(id); + } +} 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 b295efc..a24cf69 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,5 +1,5 @@ package com.my.graphiteDigesterBg.diframe.actuator; abstract public class DiActuatorBase implements DiActuator { - // id - protected Integer id; + // mid + protected Integer mid; }