红河财经现场部署
This commit is contained in:
parent
33217b868f
commit
52625cce1d
@ -4,9 +4,9 @@ import club.joylink.rtss.services.draftData.DraftMapDataHandleService;
|
|||||||
import club.joylink.rtss.services.publishData.PublishMapDataHandler;
|
import club.joylink.rtss.services.publishData.PublishMapDataHandler;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 地图数据处理
|
* 地图数据处理
|
||||||
@ -35,4 +35,12 @@ public class MapDataHandleController {
|
|||||||
public void signalShowDirection() {
|
public void signalShowDirection() {
|
||||||
this.publishMapDataHandler.signalShowDirection();
|
this.publishMapDataHandler.signalShowDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量修改线路数据和ISCS的车站名
|
||||||
|
*/
|
||||||
|
@PutMapping("/{mapId}/stationName/mapAndIscs")
|
||||||
|
public void changeStationName(@PathVariable long mapId, @RequestBody LinkedHashMap<String, String> nameMap) {
|
||||||
|
this.publishMapDataHandler.changeStationName(mapId, nameMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,13 +126,15 @@ public class VirtualRealityIbpService implements IVirtualRealityIbpService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case XXYS: {
|
case XXYS: {
|
||||||
List<VirtualRealityIbp.IbpElement> czLights = ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, false);
|
// List<VirtualRealityIbp.IbpElement> czLights = ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, false);
|
||||||
czLights.forEach(light -> light.orderTo(true));
|
// czLights.forEach(light -> light.orderTo(true));
|
||||||
|
ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, false).orderTo(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SXYS: {
|
case SXYS: {
|
||||||
List<VirtualRealityIbp.IbpElement> czLights = ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, true);
|
// List<VirtualRealityIbp.IbpElement> czLights = ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, true);
|
||||||
czLights.forEach(light -> light.orderTo(true));
|
// czLights.forEach(light -> light.orderTo(true));
|
||||||
|
ibp.query(VirtualRealityIbp.Mean.PSD_CZYX_LIGHT, true).orderTo(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// case PSD_HSJC: {
|
// case PSD_HSJC: {
|
||||||
|
@ -15,6 +15,7 @@ import club.joylink.rtss.vo.client.project.*;
|
|||||||
import club.joylink.rtss.vo.client.project.gzb.GzbSignalConfigVO;
|
import club.joylink.rtss.vo.client.project.gzb.GzbSignalConfigVO;
|
||||||
import club.joylink.rtss.vo.client.project.gzb.GzbSwitchConfigVO;
|
import club.joylink.rtss.vo.client.project.gzb.GzbSwitchConfigVO;
|
||||||
import club.joylink.rtss.vo.client.project.hhcj.HhcjIbpConfigVO;
|
import club.joylink.rtss.vo.client.project.hhcj.HhcjIbpConfigVO;
|
||||||
|
import club.joylink.rtss.vo.client.project.hhcj.HhcjPsdConfigVO;
|
||||||
import club.joylink.rtss.vo.client.project.richor.ZjdIbpConfigVO;
|
import club.joylink.rtss.vo.client.project.richor.ZjdIbpConfigVO;
|
||||||
import club.joylink.rtss.vo.client.project.richor.ZjdPsdConfigVO;
|
import club.joylink.rtss.vo.client.project.richor.ZjdPsdConfigVO;
|
||||||
import club.joylink.rtss.vo.client.project.richor.ZjdPslConfigVO;
|
import club.joylink.rtss.vo.client.project.richor.ZjdPslConfigVO;
|
||||||
@ -486,6 +487,16 @@ public class DeviceServiceImpl implements DeviceService {
|
|||||||
HhcjIbpConfigVO ibpConfigVO = new HhcjIbpConfigVO();
|
HhcjIbpConfigVO ibpConfigVO = new HhcjIbpConfigVO();
|
||||||
ibp.setConfig(ibpConfigVO.toJson());
|
ibp.setConfig(ibpConfigVO.toJson());
|
||||||
list.add(ibp);
|
list.add(ibp);
|
||||||
|
// PSD
|
||||||
|
ProjectDevice psd = new ProjectDevice();
|
||||||
|
psd.setProjectCode(Project.RICHOR_HHCJ.name());
|
||||||
|
psd.setCode("hhcj-psd");
|
||||||
|
psd.setType(ProjectDeviceType.PSD.name());
|
||||||
|
psd.setCreator(accountVO.getId());
|
||||||
|
psd.setCreateTime(now);
|
||||||
|
HhcjPsdConfigVO psdConfigVO = new HhcjPsdConfigVO();
|
||||||
|
psd.setConfig(psdConfigVO.toJson());
|
||||||
|
list.add(psd);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package club.joylink.rtss.services.publishData;
|
package club.joylink.rtss.services.publishData;
|
||||||
|
|
||||||
|
import club.joylink.rtss.constants.BusinessConsts;
|
||||||
import club.joylink.rtss.constants.MapStatus;
|
import club.joylink.rtss.constants.MapStatus;
|
||||||
|
import club.joylink.rtss.dao.IscsDAO;
|
||||||
import club.joylink.rtss.dao.MapDataDAO;
|
import club.joylink.rtss.dao.MapDataDAO;
|
||||||
import club.joylink.rtss.dao.MapInfoDAO;
|
import club.joylink.rtss.dao.MapInfoDAO;
|
||||||
import club.joylink.rtss.entity.MapDataWithBLOBs;
|
import club.joylink.rtss.entity.*;
|
||||||
import club.joylink.rtss.entity.MapInfo;
|
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
|
||||||
import club.joylink.rtss.entity.MapInfoExample;
|
|
||||||
import club.joylink.rtss.services.IMapService;
|
import club.joylink.rtss.services.IMapService;
|
||||||
|
import club.joylink.rtss.services.cache.ICacheService;
|
||||||
import club.joylink.rtss.simulation.cbtc.constant.SignalAspect;
|
import club.joylink.rtss.simulation.cbtc.constant.SignalAspect;
|
||||||
import club.joylink.rtss.simulation.cbtc.constant.SignalModel;
|
import club.joylink.rtss.simulation.cbtc.constant.SignalModel;
|
||||||
import club.joylink.rtss.simulation.cbtc.data.map.Signal;
|
import club.joylink.rtss.simulation.cbtc.data.map.Signal;
|
||||||
@ -21,14 +23,12 @@ import club.joylink.rtss.vo.map.logic.MapRouteNewVO;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class PublishMapDataHandler {
|
public class PublishMapDataHandler {
|
||||||
@ -38,6 +38,10 @@ public class PublishMapDataHandler {
|
|||||||
private MapInfoDAO mapInfoDAO;
|
private MapInfoDAO mapInfoDAO;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MapDataDAO mapDataDAO;
|
private MapDataDAO mapDataDAO;
|
||||||
|
@Autowired
|
||||||
|
private IscsDAO iscsDAO;
|
||||||
|
@Autowired
|
||||||
|
private ICacheService iCacheService;
|
||||||
|
|
||||||
public List<MapInfo> queryMapInfos() {
|
public List<MapInfo> queryMapInfos() {
|
||||||
MapInfoExample example = new MapInfoExample();
|
MapInfoExample example = new MapInfoExample();
|
||||||
@ -207,4 +211,54 @@ public class PublishMapDataHandler {
|
|||||||
mapInfoDAO.updateByPrimaryKeySelective(map);
|
mapInfoDAO.updateByPrimaryKeySelective(map);
|
||||||
this.iMapService.removeCache(mapId);
|
this.iMapService.removeCache(mapId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void changeStationName(long mapId, Map<String, String> nameMap) {
|
||||||
|
// 修改地图数据
|
||||||
|
MapDataWithBLOBs mapData = getMapDataEntity(mapId);
|
||||||
|
String graphData = mapData.getGraphData();
|
||||||
|
for (Map.Entry<String, String> entry : nameMap.entrySet()) {
|
||||||
|
String k = entry.getKey();
|
||||||
|
String v = entry.getValue();
|
||||||
|
graphData = graphData.replace(k, v);
|
||||||
|
}
|
||||||
|
mapData.setGraphData(graphData);
|
||||||
|
mapDataDAO.updateByPrimaryKeyWithBLOBs(mapData);
|
||||||
|
// 修改ISCS数据
|
||||||
|
IscsExample iscsExample = new IscsExample();
|
||||||
|
iscsExample.createCriteria().andMapIdEqualTo(mapId);
|
||||||
|
List<Iscs> iscsList = iscsDAO.selectByExampleWithBLOBs(iscsExample);
|
||||||
|
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertCollectionNotEmpty(iscsList);
|
||||||
|
for (Iscs iscs : iscsList) {
|
||||||
|
String iscsGraphData = iscs.getGraphData();
|
||||||
|
for (Map.Entry<String, String> entry : nameMap.entrySet()) {
|
||||||
|
String k = entry.getKey();
|
||||||
|
String v = entry.getValue();
|
||||||
|
iscsGraphData = iscsGraphData.replace(k, v);
|
||||||
|
}
|
||||||
|
iscs.setGraphData(iscsGraphData);
|
||||||
|
iscsDAO.updateByPrimaryKeyWithBLOBs(iscs);
|
||||||
|
}
|
||||||
|
// 刷新缓存
|
||||||
|
iCacheService.remove(BusinessConsts.CachePrefix.Map + mapId);
|
||||||
|
iMapService.getMapDetail(mapId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private MapDataWithBLOBs getMapDataEntity(long mapId) {
|
||||||
|
MapInfo mapInfo = mapInfoDAO.selectByPrimaryKey(mapId);
|
||||||
|
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(mapInfo);
|
||||||
|
return getMapDataEntity(mapId, mapInfo.getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
private MapDataWithBLOBs findMapDataEntity(long mapId, String version) {
|
||||||
|
MapDataExample example = new MapDataExample();
|
||||||
|
example.createCriteria().andMapIdEqualTo(mapId).andVersionEqualTo(version);
|
||||||
|
List<MapDataWithBLOBs> list = mapDataDAO.selectByExampleWithBLOBs(example);
|
||||||
|
return CollectionUtils.isEmpty(list) ? null : list.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private MapDataWithBLOBs getMapDataEntity(long mapId, String version) {
|
||||||
|
MapDataWithBLOBs entity = findMapDataEntity(mapId, version);
|
||||||
|
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(entity);
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import club.joylink.rtss.util.JsonUtils;
|
|||||||
import club.joylink.rtss.vo.AccountVO;
|
import club.joylink.rtss.vo.AccountVO;
|
||||||
import club.joylink.rtss.vo.LoginUserInfoVO;
|
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||||
import club.joylink.rtss.vo.thirdAccount.ThirdInterfaceConfig;
|
import club.joylink.rtss.vo.thirdAccount.ThirdInterfaceConfig;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
@ -26,6 +27,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class ThirdAccountDataSyncService {
|
public class ThirdAccountDataSyncService {
|
||||||
|
|
||||||
@ -88,6 +90,8 @@ public class ThirdAccountDataSyncService {
|
|||||||
String body = JsonUtils.writeValueAsString(syncRecordData);
|
String body = JsonUtils.writeValueAsString(syncRecordData);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(body, headers);
|
HttpEntity<String> httpEntity = new HttpEntity<>(body, headers);
|
||||||
ResponseEntity<String> responseEntity = this.restTemplate.postForEntity(url, httpEntity, String.class);
|
ResponseEntity<String> responseEntity = this.restTemplate.postForEntity(url, httpEntity, String.class);
|
||||||
|
log.info("向第三方发送数据:" + body);
|
||||||
|
log.info("第三方同步数据接口Response:" + responseEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> buildSyncUserSimulationRecordData(AccountVO accountVO, UserSimulationStats record) {
|
private Map<String, Object> buildSyncUserSimulationRecordData(AccountVO accountVO, UserSimulationStats record) {
|
||||||
|
@ -15,9 +15,10 @@ import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.Heb1Ib
|
|||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.Heb1PscConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.Heb1PscConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.Heb1PslConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.Heb1PslConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjIbpConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjIbpConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor.ZjdIbpConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjPsdConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor.ZjdPslConfig;
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.xty.XtyPsdConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.xty.XtyPsdConfig;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd.ZjdIbpConfig;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd.ZjdPslConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPRealDeviceThread;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPRealDeviceThread;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSectionConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSectionConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSignalConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSignalConfig;
|
||||||
@ -171,6 +172,8 @@ public class ProjectJointSimulationServiceImpl implements ProjectJointSimulation
|
|||||||
switch (config.getDeviceType()) {
|
switch (config.getDeviceType()) {
|
||||||
case IBP:
|
case IBP:
|
||||||
return ((HhcjIbpConfig) config).getConfigVO().getIbpCode();
|
return ((HhcjIbpConfig) config).getConfigVO().getIbpCode();
|
||||||
|
case PSD:
|
||||||
|
return ((HhcjPsdConfig) config).getConfigVO().getPsdCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,4 +91,8 @@ public abstract class ControllableVrDevice<C> extends VirtualRealityDevice {
|
|||||||
* @param command
|
* @param command
|
||||||
*/
|
*/
|
||||||
protected abstract void doFinish(C command);
|
protected abstract void doFinish(C command);
|
||||||
|
|
||||||
|
void setRemain(int remain) {
|
||||||
|
this.remain = remain;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,28 +69,44 @@ public class VirtualRealityScreenDoor extends ControllableVrDevice<VirtualRealit
|
|||||||
this.fault = null;
|
this.fault = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected boolean checkConditionBeforeControl(Operation command) {
|
||||||
|
// //已是关门到位状态,发送关门指令依然会进入转换中状态,导致门又开启,遂加此限制
|
||||||
|
// switch (command) {
|
||||||
|
// case K:{
|
||||||
|
// if (this.isOpen2End())
|
||||||
|
// return false;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// case G: {
|
||||||
|
// if (this.isLockAndClose())
|
||||||
|
// return false;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkConditionBeforeControl(Operation command) {
|
protected void doTurn() {
|
||||||
//已是关门到位状态,发送关门指令依然会进入转换中状态,导致门又开启,遂加此限制
|
switch (getCommand()) {
|
||||||
switch (command) {
|
|
||||||
case K:{
|
case K:{
|
||||||
if (this.isOpen2End())
|
if (this.isOpen2End())
|
||||||
return false;
|
setRemain(0);
|
||||||
|
else
|
||||||
|
setClose(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case G: {
|
case G: {
|
||||||
if (this.isLockAndClose())
|
if (this.isLockAndClose())
|
||||||
return false;
|
setRemain(0);
|
||||||
|
else
|
||||||
|
setOpen2End(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
throw new IllegalStateException("Unexpected value: " + getCommand());
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doTurn() {
|
|
||||||
this.setClose(false);
|
|
||||||
this.open2End = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -92,6 +92,9 @@ public class HhcjIbpServiceImpl implements RealDeviceService {
|
|||||||
boolean w_psd_sx_sdcz = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_sx_sdcz());
|
boolean w_psd_sx_sdcz = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_sx_sdcz());
|
||||||
boolean w_psd_sx_hsjc = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_sx_hsjc());
|
boolean w_psd_sx_hsjc = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_sx_hsjc());
|
||||||
|
|
||||||
|
boolean w_psd_real_km = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_real_km());
|
||||||
|
boolean w_psd_real_gm = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_psd_real_gm());
|
||||||
|
|
||||||
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.kcLight, false, w_xh_xx_kc_light);
|
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.kcLight, false, w_xh_xx_kc_light);
|
||||||
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.jjtcLight, false, w_xh_xx_jjtc_light);
|
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.jjtcLight, false, w_xh_xx_jjtc_light);
|
||||||
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.SIGNAL_ALARM, null, w_xh_fmq);
|
iVirtualRealityIbpService.updateOnOrOff(simulation, vrIbp, VirtualRealityIbp.Mean.SIGNAL_ALARM, null, w_xh_fmq);
|
||||||
@ -151,6 +154,8 @@ public class HhcjIbpServiceImpl implements RealDeviceService {
|
|||||||
on = true;
|
on = true;
|
||||||
} else if (element.isTurnOff()) {
|
} else if (element.isTurnOff()) {
|
||||||
on = false;
|
on = false;
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
boolean currentIsOn = false;
|
boolean currentIsOn = false;
|
||||||
Integer addr = null;
|
Integer addr = null;
|
||||||
@ -276,7 +281,7 @@ public class HhcjIbpServiceImpl implements RealDeviceService {
|
|||||||
case PRERESET_Z:
|
case PRERESET_Z:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (addr != null && on != null) {
|
if (addr != null) {
|
||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, addr, currentIsOn, on, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, addr, currentIsOn, on, channel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -535,6 +540,7 @@ public class HhcjIbpServiceImpl implements RealDeviceService {
|
|||||||
boolean w_xfsb_gzwyb2 = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_gzwyb2());
|
boolean w_xfsb_gzwyb2 = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_gzwyb2());
|
||||||
boolean w_xfsb_gsw = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_gsw());
|
boolean w_xfsb_gsw = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_gsw());
|
||||||
boolean w_xfsb_dsw = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_dsw());
|
boolean w_xfsb_dsw = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_xfsb_dsw());
|
||||||
|
boolean w_zj_real = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_zj_real());
|
||||||
// 按钮灯
|
// 按钮灯
|
||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_qjsb_qd1A(), w_qjsb_qd1A, r_qjsb_qd1A, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_qjsb_qd1A(), w_qjsb_qd1A, r_qjsb_qd1A, channel);
|
||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_qjsb_qd1B(), w_qjsb_qd1B, r_qjsb_qd1B, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_qjsb_qd1B(), w_qjsb_qd1B, r_qjsb_qd1B, channel);
|
||||||
@ -580,5 +586,7 @@ public class HhcjIbpServiceImpl implements RealDeviceService {
|
|||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_gzwyb2(), w_xfsb_gzwyb2, r_xfsb_sd, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_gzwyb2(), w_xfsb_gzwyb2, r_xfsb_sd, channel);
|
||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_gsw(), w_xfsb_gsw, r_xfsb_sd, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_gsw(), w_xfsb_gsw, r_xfsb_sd, channel);
|
||||||
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_dsw(), w_xfsb_dsw, r_xfsb_sd, channel);
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_xfsb_dsw(), w_xfsb_dsw, r_xfsb_sd, channel);
|
||||||
|
// 闸机控制
|
||||||
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_zj_real(), w_zj_real, r_zj_jjsf, channel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj;
|
||||||
|
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
||||||
|
import club.joylink.rtss.util.JsonUtils;
|
||||||
|
import club.joylink.rtss.vo.client.project.ProjectDeviceVO;
|
||||||
|
import club.joylink.rtss.vo.client.project.hhcj.HhcjPsdConfigVO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class HhcjPsdConfig extends RealDeviceConfig {
|
||||||
|
private HhcjPsdConfigVO configVO;
|
||||||
|
|
||||||
|
public HhcjPsdConfig(ProjectDeviceVO projectDevice) {
|
||||||
|
super(projectDevice);
|
||||||
|
if (projectDevice != null) {
|
||||||
|
this.configVO = JsonUtils.read(projectDevice.getConfig(), HhcjPsdConfigVO.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj;
|
||||||
|
|
||||||
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.constant.SimulationModule;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityScreenDoor;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.PlcGatewayService;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.RealDeviceService;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.PlcGateway;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
||||||
|
import club.joylink.rtss.vo.client.project.hhcj.HhcjPsdConfigVO;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class HhcjPsdServiceImpl implements RealDeviceService {
|
||||||
|
@Autowired
|
||||||
|
private PlcGatewayService plcGatewayService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canHandle(RealDeviceConfig deviceConfig) {
|
||||||
|
return deviceConfig instanceof HhcjPsdConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(Simulation simulation, RealDeviceConfig deviceConfig) {
|
||||||
|
//不需要初始化逻辑,因为所有的状态都来源于IBP盘上按钮的状态
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(Simulation simulation, RealDeviceConfig deviceConfig, ByteBuf byteBuf) {
|
||||||
|
PlcGateway plcGateway = simulation.queryPlcGatewayDevice();
|
||||||
|
if (plcGateway == null)
|
||||||
|
return;
|
||||||
|
HhcjPsdConfig config = (HhcjPsdConfig) deviceConfig;
|
||||||
|
VirtualRealityScreenDoor vrPsd = (VirtualRealityScreenDoor) config.getMapElement();
|
||||||
|
if (vrPsd == null)
|
||||||
|
return;
|
||||||
|
HhcjPsdConfigVO configVO = config.getConfigVO();
|
||||||
|
ByteBuf deviceStatus = RealDeviceConfig.getDeviceCoilStatus(byteBuf, configVO.getAddr(), configVO.getQuantity());
|
||||||
|
|
||||||
|
boolean w_km = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_km());
|
||||||
|
boolean w_gm = RealDeviceConfig.getBitOf(deviceStatus, configVO.getW_gm());
|
||||||
|
|
||||||
|
int baseAddr = plcGateway.getConfig().getAddr() + configVO.getAddr();
|
||||||
|
Channel channel = plcGateway.getChannel();
|
||||||
|
|
||||||
|
boolean newKm;
|
||||||
|
boolean newGm;
|
||||||
|
if (vrPsd.isSettingOpen()) {
|
||||||
|
newKm = true;
|
||||||
|
newGm = false;
|
||||||
|
} else if (vrPsd.isSettingClose()) {
|
||||||
|
newKm = false;
|
||||||
|
newGm = true;
|
||||||
|
} else {
|
||||||
|
newKm = false;
|
||||||
|
newGm = false;
|
||||||
|
}
|
||||||
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_km(), w_km, newKm, channel);
|
||||||
|
plcGatewayService.checkEqualAndWriteSingleCoil(baseAddr, configVO.getW_gm(), w_gm, newGm, channel);
|
||||||
|
|
||||||
|
if (vrPsd.getRemain() > 0) {
|
||||||
|
vrPsd.turning(SimulationModule.VRD.getRateMs());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
||||||
import club.joylink.rtss.util.JsonUtils;
|
import club.joylink.rtss.util.JsonUtils;
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.services.IVirtualRealityIbpService;
|
import club.joylink.rtss.services.IVirtualRealityIbpService;
|
||||||
import club.joylink.rtss.simulation.cbtc.CI.CiApiService;
|
import club.joylink.rtss.simulation.cbtc.CI.CiApiService;
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
||||||
import club.joylink.rtss.util.JsonUtils;
|
import club.joylink.rtss.util.JsonUtils;
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.Simulation;
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
import club.joylink.rtss.simulation.cbtc.data.SimulationIscsDataRepository;
|
import club.joylink.rtss.simulation.cbtc.data.SimulationIscsDataRepository;
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.device.RealDeviceConfig;
|
||||||
import club.joylink.rtss.util.JsonUtils;
|
import club.joylink.rtss.util.JsonUtils;
|
@ -1,4 +1,4 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor;
|
package club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd;
|
||||||
|
|
||||||
import club.joylink.rtss.services.psl.IVirtualRealityPslService;
|
import club.joylink.rtss.services.psl.IVirtualRealityPslService;
|
||||||
import club.joylink.rtss.simulation.cbtc.CI.device.CiStandService;
|
import club.joylink.rtss.simulation.cbtc.CI.device.CiStandService;
|
@ -10,12 +10,13 @@ import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.gzb.GzbSignalConf
|
|||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.gzb.GzbSwitchConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.gzb.GzbSwitchConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.*;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.heb.device.*;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjIbpConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjIbpConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor.ZjdIbpConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.hhcj.HhcjPsdConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor.ZjdPsdConfig;
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.richor.ZjdPslConfig;
|
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.sdy.SdyPsdConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.sdy.SdyPsdConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.sdy.SdyPslConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.sdy.SdyPslConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.xty.XtyPsdConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.xty.XtyPsdConfig;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd.ZjdIbpConfig;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd.ZjdPsdConfig;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.device.real.modbustcp.zjd.ZjdPslConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPClientConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPClientConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPLowConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.UDPLowConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSectionConfig;
|
import club.joylink.rtss.simulation.cbtc.device.real.udp.sr.config.SrSectionConfig;
|
||||||
@ -136,6 +137,9 @@ public class ProjectDeviceVO {
|
|||||||
case IBP:
|
case IBP:
|
||||||
list.add(new HhcjIbpConfig(deviceVO));
|
list.add(new HhcjIbpConfig(deviceVO));
|
||||||
break;
|
break;
|
||||||
|
case PSD:
|
||||||
|
list.add(new HhcjPsdConfig(deviceVO));
|
||||||
|
break;
|
||||||
case PLC_GATEWAY:
|
case PLC_GATEWAY:
|
||||||
list.add(new PlcGateway(deviceVO));
|
list.add(new PlcGateway(deviceVO));
|
||||||
break;
|
break;
|
||||||
|
@ -532,6 +532,16 @@ public class HhcjIbpConfigVO extends RealConfigVO {
|
|||||||
*/
|
*/
|
||||||
private Integer w_sdtf_cthbm11M10 = 140;
|
private Integer w_sdtf_cthbm11M10 = 140;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 屏蔽门-实体-开门
|
||||||
|
*/
|
||||||
|
private Integer w_psd_real_km = 144;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 屏蔽门-实体-关门
|
||||||
|
*/
|
||||||
|
private Integer w_psd_real_gm = 145;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车站环控-恢复正常按钮
|
* 车站环控-恢复正常按钮
|
||||||
*/
|
*/
|
||||||
@ -959,6 +969,11 @@ public class HhcjIbpConfigVO extends RealConfigVO {
|
|||||||
*/
|
*/
|
||||||
private Integer w_xfsb_dsw = 292;
|
private Integer w_xfsb_dsw = 292;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 闸机-实体设备控制
|
||||||
|
*/
|
||||||
|
private Integer w_zj_real = 296;
|
||||||
|
|
||||||
public HhcjIbpConfigVO() {
|
public HhcjIbpConfigVO() {
|
||||||
super(0, 304);
|
super(0, 304);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package club.joylink.rtss.vo.client.project.hhcj;
|
||||||
|
|
||||||
|
import club.joylink.rtss.vo.client.project.RealConfigVO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class HhcjPsdConfigVO extends RealConfigVO {
|
||||||
|
private String psdCode = "Psd87821";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PLC网关的144
|
||||||
|
*/
|
||||||
|
private Integer w_km = 144;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PLC网关的145
|
||||||
|
*/
|
||||||
|
private Integer w_gm = 145;
|
||||||
|
|
||||||
|
public HhcjPsdConfigVO() {
|
||||||
|
super(0, 304);
|
||||||
|
}
|
||||||
|
}
|
@ -95,9 +95,9 @@ springfox:
|
|||||||
spring:
|
spring:
|
||||||
profiles: dev
|
profiles: dev
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://192.168.3.233:3306/joylink?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://localhost:3306/joylink?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: joylink0503
|
password: root
|
||||||
|
|
||||||
tencent-cloud:
|
tencent-cloud:
|
||||||
allow-send: false
|
allow-send: false
|
||||||
@ -190,9 +190,9 @@ common:
|
|||||||
spring:
|
spring:
|
||||||
profiles: local
|
profiles: local
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://192.168.3.233:3306/joylink?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://192.168.0.254:3306/joylink?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: joylink0503
|
password: localdb
|
||||||
|
|
||||||
tencent-cloud:
|
tencent-cloud:
|
||||||
allow-send: false
|
allow-send: false
|
||||||
|
Loading…
Reference in New Issue
Block a user