重新优化了TopologyRecorder的结构,代码更合理。
Signed-off-by: facat@lab.com <facat@lab.com>
This commit is contained in:
parent
000f9b89fa
commit
d6bcb9a0c5
|
|
@ -20,85 +20,100 @@ bool TopologyRecorder::startWithNode(const QString& node)
|
||||||
anotherTerminal=anotherTerminalVector.at(atI);
|
anotherTerminal=anotherTerminalVector.at(atI);
|
||||||
if(this->reachedTerminal.contains(anotherTerminal))
|
if(this->reachedTerminal.contains(anotherTerminal))
|
||||||
{
|
{
|
||||||
// std::cout<<anotherTerminal.toStdString()<<"reached"<<std::endl; //@1
|
// std::cout<<anotherTerminal.toStdString()<<"reached"<<std::endl; //@1
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
this->reachedTerminal[anotherTerminal]=0;
|
this->reachedTerminal[anotherTerminal]=0;
|
||||||
// std::cout<<"anotherTerminal"<<anotherTerminal.toStdString()<<std::endl;//@1
|
// std::cout<<"anotherTerminal"<<anotherTerminal.toStdString()<<std::endl;//@1
|
||||||
Terminal *anotherTerminalP=static_cast<Terminal *>(ht[anotherTerminal]);
|
Terminal *anotherTerminalP=static_cast<Terminal *>(ht[anotherTerminal]);
|
||||||
QString ce;
|
QString ce;
|
||||||
ce=anotherTerminalP->getConductingEquipment();
|
ce=anotherTerminalP->getConductingEquipment();
|
||||||
// std::cout<<ce.toStdString()<<"from "<<anotherTerminal.toStdString() <<std::endl;//@1
|
// std::cout<<ce.toStdString()<<"from "<<anotherTerminal.toStdString() <<std::endl;//@1
|
||||||
|
QPair<QString,QString> fromTo;
|
||||||
|
QString terminalA;
|
||||||
|
QString terminalB;
|
||||||
|
//通过ACSegmentLine的ID来找Terminal。下同。
|
||||||
if(ce.startsWith("AC"))
|
if(ce.startsWith("AC"))
|
||||||
{
|
{
|
||||||
foundCate=true;
|
|
||||||
QString acID=ce;
|
QString acID=ce;
|
||||||
QPair<QString,QString> fromTo;
|
|
||||||
fromTo.first=node;
|
fromTo.first=node;
|
||||||
fromTo.second=acID;
|
fromTo.second=acID;
|
||||||
this->branch.push_back(fromTo);
|
|
||||||
//通过ACSegmentLine的ID来找Terminal。下同。
|
|
||||||
ACLineSegment *AC=static_cast<ACLineSegment *>(ht[acID]);
|
ACLineSegment *AC=static_cast<ACLineSegment *>(ht[acID]);
|
||||||
if(!AC)
|
if(!AC)
|
||||||
{
|
{
|
||||||
// std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1
|
// std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
QString terminalA;
|
|
||||||
QString terminalB;
|
|
||||||
terminalA=AC->getTerminalA();
|
terminalA=AC->getTerminalA();
|
||||||
terminalB=AC->getTerminalB();
|
terminalB=AC->getTerminalB();
|
||||||
QString nextTerminal;
|
std::cout<<"find"<<AC->getID().toStdString()<<std::endl;
|
||||||
nextTerminal=(terminalA==anotherTerminal)?terminalB:terminalA;
|
foundCate=true;
|
||||||
// std::cout<<"new Terminal"<<nextTerminal.toStdString()<<std::endl;//@1
|
|
||||||
Terminal *nextTerminalP=static_cast<Terminal *>(ht[nextTerminal]);
|
|
||||||
if(!nextTerminalP)
|
|
||||||
{
|
|
||||||
// std::cout<<"can not terminal "<<nextTerminal.toStdString()<<std::endl;//@1
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
QString nextNode=nextTerminalP->getConnectivityNode();
|
|
||||||
// std::cout<<"next node"<<nextNode.toStdString()<<"from"<<nextTerminal.toStdString()<<std::endl;//@1
|
|
||||||
this->startWithNode(nextNode);
|
|
||||||
}
|
}
|
||||||
if(ce.startsWith("SW"))
|
if(ce.startsWith("SW"))
|
||||||
{
|
{
|
||||||
foundCate=true;
|
|
||||||
QString swID=ce;
|
QString swID=ce;
|
||||||
QPair<QString,QString> fromTo;
|
|
||||||
fromTo.first=node;
|
fromTo.first=node;
|
||||||
fromTo.second=swID;
|
fromTo.second=swID;
|
||||||
this->branch.push_back(fromTo);
|
|
||||||
Breaker *SW=static_cast<Breaker *>(ht[swID]);
|
Breaker *SW=static_cast<Breaker *>(ht[swID]);
|
||||||
if(!SW)
|
if(!SW)
|
||||||
{
|
{
|
||||||
// std::cout<<"can not SW "<<swID.toStdString()<<std::endl;//@1
|
// std::cout<<"can not SW "<<swID.toStdString()<<std::endl;//@1
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
QString terminalA;
|
|
||||||
QString terminalB;
|
|
||||||
terminalA=SW->getTerminalA();
|
terminalA=SW->getTerminalA();
|
||||||
terminalB=SW->getTerminalB();
|
terminalB=SW->getTerminalB();
|
||||||
// std::cout<<"terminalA"<<terminalA.toStdString()<<std::endl;//@1
|
std::cout<<"find"<<SW->getID().toStdString()<<std::endl;
|
||||||
// std::cout<<"terminalB"<<terminalB.toStdString()<<std::endl;//@1
|
foundCate=true;
|
||||||
QString nextTerminal;
|
|
||||||
nextTerminal=(terminalA==anotherTerminal)?terminalB:terminalA;
|
|
||||||
Terminal *nextTerminalP=static_cast<Terminal *>(ht[nextTerminal]);
|
|
||||||
if(!nextTerminalP)
|
|
||||||
{
|
|
||||||
// std::cout<<"can not terminal "<<nextTerminal.toStdString()<<std::endl;//@1
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
QString nextNode=nextTerminalP->getConnectivityNode();
|
|
||||||
// std::cout<<"next node"<<nextNode.toStdString()<<"from"<<nextTerminal.toStdString()<<std::endl;//@1
|
|
||||||
this->startWithNode(nextNode);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(ce.startsWith("BS"))
|
if(ce.startsWith("BS"))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(!foundCate)
|
|
||||||
|
// if(ce.startsWith("SW"))
|
||||||
|
// {
|
||||||
|
// foundCate=true;
|
||||||
|
|
||||||
|
// QPair<QString,QString> fromTo;
|
||||||
|
|
||||||
|
// this->branch.push_back(fromTo);
|
||||||
|
|
||||||
|
// QString terminalA;
|
||||||
|
// QString terminalB;
|
||||||
|
|
||||||
|
// // std::cout<<"terminalA"<<terminalA.toStdString()<<std::endl;//@1
|
||||||
|
// // std::cout<<"terminalB"<<terminalB.toStdString()<<std::endl;//@1
|
||||||
|
// QString nextTerminal;
|
||||||
|
// nextTerminal=(terminalA==anotherTerminal)?terminalB:terminalA;
|
||||||
|
// Terminal *nextTerminalP=static_cast<Terminal *>(ht[nextTerminal]);
|
||||||
|
// if(!nextTerminalP)
|
||||||
|
// {
|
||||||
|
// // std::cout<<"can not terminal "<<nextTerminal.toStdString()<<std::endl;//@1
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// QString nextNode=nextTerminalP->getConnectivityNode();
|
||||||
|
// // std::cout<<"next node"<<nextNode.toStdString()<<"from"<<nextTerminal.toStdString()<<std::endl;//@1
|
||||||
|
// this->startWithNode(nextNode);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
if(foundCate)
|
||||||
|
{
|
||||||
|
this->branch.push_back(fromTo);
|
||||||
|
QString nextTerminal;
|
||||||
|
nextTerminal=(terminalA==anotherTerminal)?terminalB:terminalA;
|
||||||
|
// std::cout<<"new Terminal"<<nextTerminal.toStdString()<<std::endl;//@1
|
||||||
|
Terminal *nextTerminalP=static_cast<Terminal *>(ht[nextTerminal]);
|
||||||
|
if(!nextTerminalP)
|
||||||
|
{
|
||||||
|
// std::cout<<"can not terminal "<<nextTerminal.toStdString()<<std::endl;//@1
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
QString nextNode=nextTerminalP->getConnectivityNode();
|
||||||
|
// std::cout<<"next node"<<nextNode.toStdString()<<"from"<<nextTerminal.toStdString()<<std::endl;//@1
|
||||||
|
this->startWithNode(nextNode);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
std::cout<<"not found cate "<<ce.toStdString()<<std::endl;
|
std::cout<<"not found cate "<<ce.toStdString()<<std::endl;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue