|
@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
|
|
|
import java.math.BigDecimal; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -59,12 +60,20 @@ public class ParameterService implements IParameterService{ |
|
|
if(CollectionUtil.isNotEmpty(transducers)){ |
|
|
if(CollectionUtil.isNotEmpty(transducers)){ |
|
|
transducers.forEach(transducer -> { |
|
|
transducers.forEach(transducer -> { |
|
|
String type = "变频器".equalsIgnoreCase(transducer.getTitle()) ? "transducer" : "solenoidValue"; |
|
|
String type = "变频器".equalsIgnoreCase(transducer.getTitle()) ? "transducer" : "solenoidValue"; |
|
|
|
|
|
int x = "变频器".equalsIgnoreCase(transducer.getTitle()) ? 0 : 1; |
|
|
if(CollectionUtil.isNotEmpty(transducer.getValues())){ |
|
|
if(CollectionUtil.isNotEmpty(transducer.getValues())){ |
|
|
int i = transducer.getValues().size() <= 1 ? 0 : 1; |
|
|
int i = transducer.getValues().size() <= 1 ? 0 : 1; |
|
|
for (ParameterVo.TransducerValue value : transducer.getValues()) { |
|
|
for (ParameterVo.TransducerValue value : transducer.getValues()) { |
|
|
String a = i == 0 ? "" : Integer.toString(i); |
|
|
String a = i == 0 ? "" : Integer.toString(i); |
|
|
value.setKey("实时/设置" + a); |
|
|
value.setKey("实时/设置" + a); |
|
|
value.setType(type + a); |
|
|
value.setType(type + a); |
|
|
|
|
|
BigDecimal currentTime; |
|
|
|
|
|
if(x == 0){ |
|
|
|
|
|
currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(100), 0, BigDecimal.ROUND_HALF_UP); |
|
|
|
|
|
}else { |
|
|
|
|
|
currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(10),1,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(4)); |
|
|
|
|
|
} |
|
|
|
|
|
value.setCurrentTimeValue(currentTime); |
|
|
i++; |
|
|
i++; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -118,22 +127,53 @@ public class ParameterService implements IParameterService{ |
|
|
} |
|
|
} |
|
|
//电磁阀1
|
|
|
//电磁阀1
|
|
|
ParameterDto.Parameter solenoidValue1 = param.getSolenoidValue1(); |
|
|
ParameterDto.Parameter solenoidValue1 = param.getSolenoidValue1(); |
|
|
transducer(solenoidValue1); |
|
|
if(ObjectUtil.isNotNull(solenoidValue1)) { |
|
|
|
|
|
if (ObjectUtil.isNotNull(solenoidValue1.getSettingValue())) { |
|
|
|
|
|
solenoidValue1.setSettingValue(solenoidValue1.getSettingValue().multiply(BigDecimal.valueOf(100))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(solenoidValue1); |
|
|
|
|
|
} |
|
|
//电磁阀2
|
|
|
//电磁阀2
|
|
|
ParameterDto.Parameter solenoidValue2 = param.getSolenoidValue2(); |
|
|
ParameterDto.Parameter solenoidValue2 = param.getSolenoidValue2(); |
|
|
transducer(solenoidValue2); |
|
|
if(ObjectUtil.isNotNull(solenoidValue2)){ |
|
|
|
|
|
if(ObjectUtil.isNotNull(solenoidValue2.getSettingValue())){ |
|
|
|
|
|
solenoidValue2.setSettingValue(solenoidValue2.getSettingValue().multiply(BigDecimal.valueOf(100))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(solenoidValue2); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//变频器1
|
|
|
//变频器1
|
|
|
ParameterDto.Parameter transducer1 = param.getTransducer1(); |
|
|
ParameterDto.Parameter transducer1 = param.getTransducer1(); |
|
|
transducer(transducer1); |
|
|
if(ObjectUtil.isNotNull(transducer1)) { |
|
|
|
|
|
if (ObjectUtil.isNotNull(transducer1.getSettingValue())) { |
|
|
|
|
|
transducer1.setSettingValue(transducer1.getSettingValue().add(BigDecimal.valueOf(4))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(transducer1); |
|
|
|
|
|
} |
|
|
//变频器2
|
|
|
//变频器2
|
|
|
ParameterDto.Parameter transducer2 = param.getTransducer1(); |
|
|
ParameterDto.Parameter transducer2 = param.getTransducer1(); |
|
|
transducer(transducer2); |
|
|
if(ObjectUtil.isNotNull(transducer2)) { |
|
|
|
|
|
if (ObjectUtil.isNotNull(transducer2.getSettingValue())) { |
|
|
|
|
|
transducer2.setSettingValue(transducer2.getSettingValue().add(BigDecimal.valueOf(4))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(transducer2); |
|
|
|
|
|
} |
|
|
//变频器3
|
|
|
//变频器3
|
|
|
ParameterDto.Parameter transducer3 = param.getTransducer1(); |
|
|
ParameterDto.Parameter transducer3 = param.getTransducer1(); |
|
|
transducer(transducer3); |
|
|
if(ObjectUtil.isNotNull(transducer3)) { |
|
|
|
|
|
if (ObjectUtil.isNotNull(transducer3.getSettingValue())) { |
|
|
|
|
|
transducer3.setSettingValue(transducer3.getSettingValue().add(BigDecimal.valueOf(4))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(transducer3); |
|
|
|
|
|
} |
|
|
//变频器4
|
|
|
//变频器4
|
|
|
ParameterDto.Parameter transducer4 = param.getTransducer1(); |
|
|
ParameterDto.Parameter transducer4 = param.getTransducer1(); |
|
|
transducer(transducer4); |
|
|
if(ObjectUtil.isNotNull(transducer4)) { |
|
|
|
|
|
if (ObjectUtil.isNotNull(transducer4.getSettingValue())) { |
|
|
|
|
|
transducer4.setSettingValue(transducer4.getSettingValue().add(BigDecimal.valueOf(4))); |
|
|
|
|
|
} |
|
|
|
|
|
transducer(transducer4); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//电耳1
|
|
|
//电耳1
|
|
|
ParameterDto.ParameterThreshold electricEar1 = param.getElectricEar1(); |
|
|
ParameterDto.ParameterThreshold electricEar1 = param.getElectricEar1(); |
|
@ -217,6 +257,7 @@ public class ParameterService implements IParameterService{ |
|
|
|
|
|
|
|
|
// byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,uc1,uc2};
|
|
|
// byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,uc1,uc2};
|
|
|
byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,0x00,0x01,0x02,uc1,uc2}; |
|
|
byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,0x00,0x01,0x02,uc1,uc2}; |
|
|
|
|
|
|
|
|
byte[] crc = new byte[2]; |
|
|
byte[] crc = new byte[2]; |
|
|
CRCUtil.crc16(crc,center,0,center.length); |
|
|
CRCUtil.crc16(crc,center,0,center.length); |
|
|
log.info("计算crc校验:{}---{}",crc[0],crc[1]); |
|
|
log.info("计算crc校验:{}---{}",crc[0],crc[1]); |
|
@ -227,6 +268,9 @@ public class ParameterService implements IParameterService{ |
|
|
System.arraycopy(crc,0,all,header.length + center.length,crc.length); |
|
|
System.arraycopy(crc,0,all,header.length + center.length,crc.length); |
|
|
|
|
|
|
|
|
all[2] = (byte) (all.length - 3); |
|
|
all[2] = (byte) (all.length - 3); |
|
|
|
|
|
for (int i = 0; i < all.length; i++) { |
|
|
|
|
|
log.info("发送数据:{}",Integer.toHexString(all[i] & 0xFF)); |
|
|
|
|
|
} |
|
|
sendInMessage(all); |
|
|
sendInMessage(all); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -237,7 +281,8 @@ public class ParameterService implements IParameterService{ |
|
|
*/ |
|
|
*/ |
|
|
private void sendInMessage(byte[] all) throws Exception { |
|
|
private void sendInMessage(byte[] all) throws Exception { |
|
|
Set<String> userIdSet = new HashSet<>(); |
|
|
Set<String> userIdSet = new HashSet<>(); |
|
|
userIdSet.add(String.valueOf(1)); |
|
|
// userIdSet.add(String.valueOf(1));
|
|
|
|
|
|
userIdSet.add(String.valueOf(2)); |
|
|
MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); |
|
|
MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); |
|
|
messageRule.setAckRule(MessageRule.AckRule.NONE); |
|
|
messageRule.setAckRule(MessageRule.AckRule.NONE); |
|
|
messageRule.setOfflineDiscard((byte) 1); |
|
|
messageRule.setOfflineDiscard((byte) 1); |
|
|