22 changed files with 424 additions and 105 deletions
-
21src/main/java/a8k/app/channel/iflytophald/channel/A8kCanBusConnection.java
-
67src/main/java/a8k/app/channel/iflytophald/driver/StepMotorCtrlDriver.java
-
2src/main/java/a8k/app/channel/iflytophald/type/protocol/RegIndex.java
-
4src/main/java/a8k/app/channel/iflytophald/type/protocol/StepMotorRegIndex.java
-
2src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java
-
2src/main/java/a8k/app/constant/MiniServoConstant.java
-
60src/main/java/a8k/app/service/DeviceVirtualStateMgrService.java
-
24src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java
-
5src/main/java/a8k/app/service/os/OSBeepCtrlService.java
-
23src/main/java/a8k/app/service/statemgr/ConsumablesMgrService.java
-
10src/main/java/a8k/app/service/statemgr/DeviceWorkStateMgrService.java
-
18src/main/java/a8k/app/service/statemgr/OptScanModuleStateMgr.java
-
3src/main/java/a8k/app/service/statemgr/TubeStateMgr.java
-
5src/main/java/a8k/extui/page/driver/MotorCtrlPage.java
-
45src/main/java/a8k/extui/page/extsetting/device/OSDeviceInfoMgrPage.java
-
2src/main/java/a8k/extui/page/hardwaretest/InputIOStateHardwareTestPage.java
-
59src/main/java/a8k/extui/page/hardwaretest/MotorHardwareTestPage.java
-
127src/main/java/a8k/extui/page/hardwaretest/MotorPPSHardwareTestPage.java
-
5src/main/java/a8k/extui/page/hardwaretest/PipetteGunHardwareTestPage.java
-
2src/main/java/a8k/extui/page/hardwaretest/WaterTempControllerTestPage.java
-
4src/main/java/a8k/extui/page/test/verification/P31ReactionPlatesTransmitPosVerificationPage.java
-
39src/main/java/a8k/iflyutils/BitUtils.java
@ -0,0 +1,45 @@ |
|||
package a8k.extui.page.extsetting.device; |
|||
|
|||
import a8k.app.service.os.OSDeviceInfoMgrService; |
|||
import a8k.app.type.exception.AppException; |
|||
import a8k.extui.mgr.ExtApiPageMgr; |
|||
import jakarta.annotation.PostConstruct; |
|||
import jakarta.annotation.Resource; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
@Component |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
public class OSDeviceInfoMgrPage { |
|||
private final ExtApiPageMgr extApiPageMgr; |
|||
private final OSDeviceInfoMgrService osDeviceInfoMgrService; |
|||
|
|||
public void setSN(String sn) throws AppException { |
|||
} |
|||
|
|||
public String readSN() { |
|||
return osDeviceInfoMgrService.readSN(); |
|||
} |
|||
// |
|||
// public String setAssetId(String assetId) throws AppException { |
|||
// setEnv("/iflytop/env/assetid", assetId, gStateMgrService::setAssetId); |
|||
// return assetId; |
|||
// } |
|||
|
|||
|
|||
@PostConstruct |
|||
void init() { |
|||
|
|||
var page = extApiPageMgr.newPage(this); |
|||
// |
|||
// page.newGroup("设置"); |
|||
// page.addFunction("设置TipG1-000坐标", this::setTipG1Pos000) |
|||
// .setParamVal("x", () -> hbotTipPosMgr.getTipPosCfg(TipGroupPos.TipG1).tip000.x) |
|||
// .setParamVal("y", () -> hbotTipPosMgr.getTipPosCfg(TipGroupPos.TipG1).tip000.y); |
|||
// |
|||
|
|||
extApiPageMgr.addPage(page); |
|||
} |
|||
} |
@ -0,0 +1,39 @@ |
|||
package a8k.iflyutils; |
|||
|
|||
import lombok.extern.slf4j.Slf4j; |
|||
|
|||
@Slf4j |
|||
public class BitUtils { |
|||
|
|||
public static Boolean getBitValue(Integer value, int bitOff) { |
|||
if (bitOff < 0 || bitOff > 31) { |
|||
throw new IllegalArgumentException("Bit index must be between 0 and 31"); |
|||
} |
|||
return (value & (1 << bitOff)) != 0; |
|||
} |
|||
|
|||
public static Integer getBitValueAsInt(Integer value, int bitOff, int bitlen) { |
|||
if (bitOff < 0 || bitOff > 31 || bitlen < 1 || bitlen > 32) { |
|||
throw new IllegalArgumentException("Bit index must be between 0 and 31 and bit length must be between 1 and 32"); |
|||
} |
|||
int mask = (1 << bitlen) - 1; // Create a mask for the specified bit length |
|||
return (value >> bitOff) & mask; // Shift right and apply the mask |
|||
} |
|||
|
|||
|
|||
public static void main(String[] args) { |
|||
Integer value = 0b11111010; // Example value |
|||
|
|||
log.info("Bit value at offset {}: {}", 0, getBitValue(value, 0)); |
|||
log.info("Bit value at offset {}: {}", 1, getBitValue(value, 1)); |
|||
|
|||
log.info("Bit value at offset [{}..{}]: {}", 2, 1, getBitValueAsInt(value, 2, 1)); |
|||
log.info("Bit value at offset [{}..{}]: {}", 2, 2, getBitValueAsInt(value, 2, 2)); |
|||
log.info("Bit value at offset [{}..{}]: {}", 2, 3, getBitValueAsInt(value, 2, 3)); |
|||
log.info("Bit value at offset [{}..{}]: {}", 2, 4, getBitValueAsInt(value, 2, 4)); |
|||
log.info("Bit value at offset [{}..{}]: {}", 2, 5, getBitValueAsInt(value, 2, 5)); |
|||
|
|||
|
|||
// System.out.println("Bit value as int from offset " + bitOff + " with length " + bitlen + ": " + bitValueAsInt); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue