配置生成区段继电器

This commit is contained in:
joylink_zhaoerwei 2024-05-10 15:27:30 +08:00
parent 9738678e54
commit 00b61a2891
7 changed files with 101 additions and 4 deletions

View File

@ -59,6 +59,7 @@ const relayCabinetStore = useRelayCabinetStore();
const $q = useQuasar();
const tableRef = ref<QTable>();
const deviceTypeMap = {
0: '区段',
1: '道岔',
5: '信号机',
6: '车站',

View File

@ -89,6 +89,7 @@ const optionsType = [
{ label: '车库门', value: graphicData.RelatedRef.DeviceType.GarageDoor },
{ label: '洗车机', value: graphicData.RelatedRef.DeviceType.CarWashing },
{ label: '防淹门', value: graphicData.RelatedRef.DeviceType.FloodGate },
{ label: '区段', value: graphicData.RelatedRef.DeviceType.Section },
];
const noShowType = [

View File

@ -793,6 +793,27 @@ const carWashingCjList = [
},
];
//区段继电器
const sectionCjList = [
{
code: 'GJ',
refDeviceCodesAndPos: [
[
{
code: 'GJ',
position: PostionType.Q,
},
],
[
{
code: 'GJ',
position: PostionType.H,
},
],
],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType;
export const ciCjMap = new Map<string, CjData[]>([
[
@ -838,4 +859,5 @@ export const ciCjMap = new Map<string, CjData[]>([
[`${DeviceType.GarageDoor}+undefined`, garageDoorCjList],
[`${DeviceType.CarWashing}+undefined`, carWashingCjList],
[`${DeviceType.FloodGate}+undefined`, floodGateCjList],
[`${DeviceType.Section}+undefined`, sectionCjList],
]);

View File

@ -138,6 +138,14 @@ watch(changeScreenDoorGroup, (group) => {
});
});
//区段继电器
const sectionQdList = [
{
code: 'GJ',
refDeviceCodes: [['GJ']],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType;
export const ciQdMap = new Map<string, QdData[]>([
[
@ -179,4 +187,5 @@ export const ciQdMap = new Map<string, QdData[]>([
[`${DeviceType.GarageDoor}+undefined`, garageDoorQdList],
[`${DeviceType.CarWashing}+undefined`, carWashingQdList],
[`${DeviceType.FloodGate}+undefined`, floodGateQdList],
[`${DeviceType.Section}+undefined`, sectionQdList],
]);

View File

@ -150,22 +150,42 @@ export function generateRelayLayout(relays: GenerateRelaysCongig[]) {
relayGroupElement.push(relays[i]);
} else if (
relays[i].deviceCode == relays[i - 1].deviceCode &&
relays[i].combinationCode == relays[i - 1].combinationCode
relays[i].combinationCode == relays[i - 1].combinationCode &&
relays[i].code != 'GJ' &&
relays[i].combinationCode != 'GJ'
) {
relayGroupElement.push(relays[i]);
} else if (relays[i].code == 'GJ' && relays[i].combinationCode == 'GJ') {
relayGroupElement.push(relays[i]);
} else {
relayGroup.push(relayGroupElement);
relayGroupElement = [];
relayGroupElement.push(relays[i]);
}
}
const lastCombination = relayGroupElement.filter(
(item) => item.deviceCode !== undefined
(item) =>
item.deviceCode !== undefined &&
item.code !== 'GJ' &&
item.combinationCode !== 'GJ'
);
const LSCombination = relayGroupElement.filter(
(item) => item.deviceCode == undefined
);
relayGroup.push(lastCombination, LSCombination);
const allSectionCombination = relayGroupElement.filter(
(item) => item.code == 'GJ' && item.combinationCode == 'GJ'
);
if (allSectionCombination.length) {
relayGroup.push(lastCombination);
for (let i = 0; i < allSectionCombination.length; i += 11) {
relayGroup.push(allSectionCombination.slice(i, i + 11));
}
relayGroup.push(LSCombination);
} else {
relayGroup.push(lastCombination, LSCombination);
}
const relayCabinet = generateRelayCabinet(relayGroup.length / 10);
for (let i = 0; i < relayCabinet.length; i++) {
generateRelaysFormat(

View File

@ -513,6 +513,19 @@ const carWashingCombinations = [
},
];
//区段继电器
const sectionCombinations = [
{
code: 'GJ',
refDeviceCodesAndModel: [
{
code: 'GJ',
model: RelayModelType.JWXC_1700,
},
],
},
];
const DeviceType = graphicData.RelatedRef.DeviceType;
export const combinationsMap = new Map<string, Combinationtype[]>([
[
@ -558,4 +571,5 @@ export const combinationsMap = new Map<string, Combinationtype[]>([
[`${DeviceType.GarageDoor}`, garageDoorCombinations],
[`${DeviceType.CarWashing}`, carWashingCombinations],
[`${DeviceType.FloodGate}`, floodGateCombinations],
[`${DeviceType.Section}`, sectionCombinations],
]);

View File

@ -201,6 +201,10 @@
v-model="generaterRelayLayout.generateCJQD"
label="是否覆盖采集驱动数据"
/>
<q-toggle
v-model="generaterRelayLayout.generateSectionRelay"
label="是否生成区段继电器"
/>
<div class="q-gutter-sm q-pa-md row justify-center">
<q-btn
label="确定"
@ -474,7 +478,13 @@ const generaterRelayLayout = ref<{
publishId: string;
centralizedStation: number;
generateCJQD: boolean;
}>({ publishId: '', centralizedStation: 0, generateCJQD: true });
generateSectionRelay: boolean;
}>({
publishId: '',
centralizedStation: 0,
generateCJQD: true,
generateSectionRelay: false,
});
let publishIdOption = ref<{ label: string; value: number }[]>();
let centralizedStationsOption = ref<{ label: string; value: number }[]>([
@ -809,6 +819,26 @@ function oneClickGeneraterRelayLayout() {
);
}
});
//
if (generaterRelayLayout.value.generateSectionRelay) {
storage.section.forEach((section) => {
if (section.sectionType == graphicData.Section.SectionType.Physical) {
const deviceCombinations = combinationsMap.get(
`${DeviceType.Section}`
);
if (
section.centralizedStations.includes(concentrationStation) &&
deviceCombinations
) {
creatDeviceRelateRelays(
deviceCombinations,
DeviceType.Section,
section.code
);
}
}
});
}
//--
const aboveCombinations = [
{