Browse Source

add outputIOCtrl

master
zhaohe 3 months ago
parent
commit
6ffae400a8
  1. 26
      src/main/java/iflytop/app/hardware/driver/OutputIOCtrlDriver.java
  2. 35
      src/main/java/iflytop/app/hardware/type/OutputIOId.java
  3. 3
      src/main/java/iflytop/app/menu/ExtApiPageGroupCfgMgr.java
  4. 38
      src/main/java/iflytop/app/page/OutputIOCtrlPage.java

26
src/main/java/iflytop/app/hardware/driver/OutputIOCtrlDriver.java

@ -0,0 +1,26 @@
package iflytop.app.hardware.driver;
import iflytop.app.hardware.channel.A8kCanBusService;
import iflytop.app.hardware.type.CmdId;
import iflytop.app.hardware.type.OutputIOId;
import iflytop.app.type.exception.HardwareException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class OutputIOCtrlDriver {
private final A8kCanBusService canBus;
public void setIOState(OutputIOId IOOutput, Boolean state) throws HardwareException {
canBus.callcmd(IOOutput.mid, CmdId.write_out_io, IOOutput.ioIndex, state ? 1 : 0);
}
public void open(OutputIOId IOOutput) throws HardwareException {
this.setIOState(IOOutput, true);
}
public void close(OutputIOId IOOutput) throws HardwareException {
this.setIOState(IOOutput, false);
}
}

35
src/main/java/iflytop/app/hardware/type/OutputIOId.java

@ -1,21 +1,32 @@
package iflytop.app.hardware.type;
public enum OutputIOId {
// RecycleBinOverflowPPSPowerCtrl("废料仓-光栅电源",ModuleType.Board, MId.PlatesBoxTCMBoard, 0,false),//废料桶光栅电源
// RecycleBinOverflowPPSPowerCtrl("废料仓-光栅电源",ModuleType.Board, MId.PlatesBoxTCMBoard, 0,false),//废料桶光栅电源
DO_FAN1("FAN1", MId.IO1_IO, 0, false),
DO_FAN2("FAN2", MId.IO1_IO, 1, false),
DO_FAN3("FAN3", MId.IO1_IO, 2, false),
DO_FAN4("FAN4", MId.IO1_IO, 3, false),
DO_FAN5("FAN5", MId.IO1_IO, 4, false),
DO_FAN6("FAN6", MId.IO1_IO, 5, false),
DO_TRAY_MOTOR_CLAMP("TRAY_MOTOR_CLAMP [ 托盘电机 ] ", MId.IO1_IO, 6, false),
DO_HBOTZ_MOTOR_CLAMP("HBOTZ_MOTOR_CLAMP [ 龙门架Z轴 ] ", MId.IO1_IO, 7, false),
DO_WATER_PUMP("WATER_PUMP [ 水泵 ] ", MId.IO1_IO, 12, false),
DO_VENTILATOR("VENTILATOR [ 风机电源 ]", MId.IO1_IO, 13, false),
DO_COLD_TRAP_POWER("COLD_TRAP_POWER[ 冷阱 电源 ]", MId.IO1_IO, 14, false),
DO_BEEP("DO_BEEP [ 蜂鸣器 ]", MId.IO1_IO, 16, false),
DO_OUT17("DO_OUT17", MId.IO1_IO, 17, false),
;
final public String chname;
final public ModuleType mtype;
final public MId mid;
final public int ioIndex;
final public boolean mirror;
final public String description;
final public MId mid;
final public int ioIndex;
final public boolean mirror;
OutputIOId(String chname, ModuleType mtype, MId mid, int ioIndex, boolean mirror) {
this.chname = chname;
this.mtype = mtype;
this.mid = mid;
this.ioIndex = ioIndex;
this.mirror = mirror;
OutputIOId(String description, MId mid, int ioIndex, boolean mirror) {
this.description = description;
this.mid = mid;
this.ioIndex = ioIndex;
this.mirror = mirror;
}

3
src/main/java/iflytop/app/menu/ExtApiPageGroupCfgMgr.java

@ -69,7 +69,8 @@ public class ExtApiPageGroupCfgMgr {
new Menu(MiniServoCtrlPage.class, "舵机驱动"),
new Menu(MotorCtrlPage.class, "电机驱动"),
new Menu(LiquidArmPage.class, "加液臂驱动"),
new Menu(LeisaiServoPage.class, "雷赛伺服电机驱动")
new Menu(LeisaiServoPage.class, "雷赛伺服电机驱动"),
new Menu(OutputIOCtrlPage.class, "输出IO控制")
)));

38
src/main/java/iflytop/app/page/OutputIOCtrlPage.java

@ -0,0 +1,38 @@
package iflytop.app.page;
import iflytop.app.hardware.driver.OutputIOCtrlDriver;
import iflytop.app.hardware.driver.StepMotorCtrlDriver;
import iflytop.app.hardware.type.*;
import iflytop.app.type.exception.HardwareException;
import iflytop.app.utils.ZJsonNode;
import iflytop.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class OutputIOCtrlPage {
private static final Logger log = LoggerFactory.getLogger(OutputIOCtrlPage.class);
@Resource
OutputIOCtrlDriver outputIOCtrlDriver;
@Resource
ExtApiPageMgr extApiPageMgr;
public void setIOState(OutputIOId IOOutput, Boolean state) throws HardwareException {
outputIOCtrlDriver.setIOState(IOOutput, state);
}
@PostConstruct
void init() {
var page = extApiPageMgr.newPage(this);
page.addFunction("设置IO状态", this::setIOState);
extApiPageMgr.addPage(page);
}
}
Loading…
Cancel
Save