@@ -166,7 +166,7 @@ object CanCommands {
* 批量写入 5 位控制(低5位有效),适配 5路/柜体同构
*/
fun setLatchBits_1to5(target: Int, isOpen: Boolean): SdoRequest.Write {
- val v = if (isOpen) 0b1_1111 else 0b0_0000
+ val v = if (isOpen) 0b0_0000 else 0b1_1111
return SdoRequest.Write(nodeId, Command.CONTROL_REG, 0x00, shortLE(v, target), 2, timeoutMs = CustomCanConfig.instance.readTimeoutMs.toLong())
}
@@ -166,8 +166,8 @@ class CanHardwareHelper : IHardwareHelper {
done: ((ByteArray) -> Unit)?
) {
slaveAddress?.let {
- val target = lockIdxList.fold(1) { acc, i ->
- acc or (1 shl i)
+ val target = lockIdxList.fold(0) { acc, i ->
+ acc or (1 shl (i-1))
val req = CanCommands.forDevice(slaveAddress).setLatchBits_1to5(target, isOpen)
CanHelper.writeTo(req) {