Browse Source

同步代码

master
白凤吉 3 months ago
parent
commit
c881a61d61
  1. 3
      build.gradle
  2. 48
      src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStart.java
  3. 32
      src/main/java/com/iflytop/gd/app/config/A8kCanBusConnectionConfig.java
  4. 2
      src/main/java/com/iflytop/gd/hardware/drivers/MiniServoDriver/MiniServoMId.java
  5. 2
      src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java
  6. 5
      src/main/resources/application-dev.yml

3
build.gradle

@ -37,14 +37,13 @@ dependencies {
implementation 'org.springframework.statemachine:spring-statemachine-core:4.0.0'
implementation 'org.xerial:sqlite-jdbc:3.48.0.0'
implementation 'org.springframework.boot:spring-boot-starter-validation:3.4.5'
implementation("org.java-websocket:Java-WebSocket:1.6.0")
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation("org.java-websocket:Java-WebSocket:1.6.0")
}
tasks.named('test') {

48
src/main/java/com/iflytop/gd/app/cmd/debug/DebugPumpStart.java

@ -0,0 +1,48 @@
package com.iflytop.gd.app.cmd.debug;
import com.iflytop.gd.app.core.BaseCommandHandler;
import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.app.service.DeviceCommandService;
import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.cmd.DeviceCommand;
import com.iflytop.gd.common.cmd.DeviceCommandGenerator;
import com.iflytop.gd.common.enums.cmd.CmdDevice;
import com.iflytop.gd.common.enums.cmd.CmdDirection;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 加液泵 启动加液泵
*/
@Slf4j
@Component
@RequiredArgsConstructor
@CommandMapping("debug_pump_start")
public class DebugPumpStart extends BaseCommandHandler {
private final DeviceCommandService deviceCommandService;
@Override
public void handle(CmdDTO cmdDTO) throws Exception {
String pumpId = cmdDTO.getStringParam("pumpId");
String direction = cmdDTO.getStringParam("direction");
Double volume = cmdDTO.getDoubleParam("volume");
CmdDirection directionEnum = CmdDirection.valueOf(direction);
CmdDevice pumpDevice = CmdDevice.valueOf(pumpId);
DeviceCommand deviceCommand;
switch (pumpDevice) {
case CmdDevice.acid_pump_1 -> deviceCommand = DeviceCommandGenerator.acidPump1Move(directionEnum, volume);
case CmdDevice.acid_pump_2 -> deviceCommand = DeviceCommandGenerator.acidPump2Move(directionEnum, volume);
case CmdDevice.acid_pump_3 -> deviceCommand = DeviceCommandGenerator.acidPump3Move(directionEnum, volume);
case CmdDevice.acid_pump_4 -> deviceCommand = DeviceCommandGenerator.acidPump4Move(directionEnum, volume);
case CmdDevice.acid_pump_5 -> deviceCommand = DeviceCommandGenerator.acidPump5Move(directionEnum, volume);
case CmdDevice.acid_pump_6 -> deviceCommand = DeviceCommandGenerator.acidPump6Move(directionEnum, volume);
case CmdDevice.acid_pump_7 -> deviceCommand = DeviceCommandGenerator.acidPump7Move(directionEnum, volume);
case CmdDevice.acid_pump_8 -> deviceCommand = DeviceCommandGenerator.acidPump8Move(directionEnum, volume);
default -> throw new RuntimeException("pumpId 未找到");
}
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand);
commandWait(deviceCommandFuture);
}
}

32
src/main/java/com/iflytop/gd/app/config/A8kCanBusConnectionConfig.java

@ -0,0 +1,32 @@
package com.iflytop.gd.app.config;
import com.iflytop.gd.hardware.comm.can.A8kCanBusConnection;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class A8kCanBusConnectionConfig {
//协议参考 https://iflytop1.feishu.cn/wiki/QFwVwGnI8iYp0fk20W9cnpYAnkg
@Value("${iflytophald.ip}")
String ip;
@Value("${iflytophald.cmdch.port}")
Integer cmdchPort;
@Value("${iflytophald.datach.port}")
Integer datachPort;
public String getDatachUrl(String datachannel) {
return String.format("ws://%s:%d/%s", ip, datachPort, datachannel);
}
public String getCmdChBaseUrl(String cmdchannel) {
return String.format("http://%s:%d/%s", ip, cmdchPort, cmdchannel);
}
@Bean
A8kCanBusConnection a8kCanBusBaseService() {
return new A8kCanBusConnection(getCmdChBaseUrl("zexcan"), getDatachUrl("zexcan"));
}
}

2
src/main/java/com/iflytop/gd/hardware/drivers/MiniServoDriver/MiniServoMId.java

@ -13,7 +13,7 @@ public enum MiniServoMId {
final public MId mid;
MiniServoMId(MId mid) {
Assert.isTrue(this.name().equals(mid.name()),"MiniServoMid Init fail");
// Assert.isTrue(this.name().equals(mid.name()),"MiniServoMid Init fail");
this.mid = mid;
}

2
src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java

@ -30,7 +30,7 @@ public enum StepMotorMId {
final public MId mid;
StepMotorMId(MId mid) {
Assert.isTrue(this.name().equals(mid.name()),"StepMotorMId init fail");
// Assert.isTrue(this.name().equals(mid.name()),"StepMotorMId init fail");
this.mid = mid;
}
}

5
src/main/resources/application-dev.yml

@ -33,4 +33,9 @@ springdoc:
command_bus:
device.enableCanBus: true
iflytophald:
ip: 192.168.1.140
cmdch.port: 19004
datach.port: 19005
Loading…
Cancel
Save