重新优化了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);
|
||||
if(this->reachedTerminal.contains(anotherTerminal))
|
||||
{
|
||||
// std::cout<<anotherTerminal.toStdString()<<"reached"<<std::endl; //@1
|
||||
// std::cout<<anotherTerminal.toStdString()<<"reached"<<std::endl; //@1
|
||||
continue;
|
||||
}
|
||||
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]);
|
||||
QString ce;
|
||||
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"))
|
||||
{
|
||||
foundCate=true;
|
||||
QString acID=ce;
|
||||
QPair<QString,QString> fromTo;
|
||||
fromTo.first=node;
|
||||
fromTo.second=acID;
|
||||
this->branch.push_back(fromTo);
|
||||
//通过ACSegmentLine的ID来找Terminal。下同。
|
||||
ACLineSegment *AC=static_cast<ACLineSegment *>(ht[acID]);
|
||||
if(!AC)
|
||||
{
|
||||
// std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1
|
||||
// std::cout<<"can not find "<<acID.toStdString()<<std::endl;//@1
|
||||
continue;
|
||||
}
|
||||
QString terminalA;
|
||||
QString terminalB;
|
||||
terminalA=AC->getTerminalA();
|
||||
terminalB=AC->getTerminalB();
|
||||
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);
|
||||
std::cout<<"find"<<AC->getID().toStdString()<<std::endl;
|
||||
foundCate=true;
|
||||
}
|
||||
if(ce.startsWith("SW"))
|
||||
{
|
||||
foundCate=true;
|
||||
QString swID=ce;
|
||||
QPair<QString,QString> fromTo;
|
||||
fromTo.first=node;
|
||||
fromTo.second=swID;
|
||||
this->branch.push_back(fromTo);
|
||||
Breaker *SW=static_cast<Breaker *>(ht[swID]);
|
||||
if(!SW)
|
||||
{
|
||||
// std::cout<<"can not SW "<<swID.toStdString()<<std::endl;//@1
|
||||
// std::cout<<"can not SW "<<swID.toStdString()<<std::endl;//@1
|
||||
continue;
|
||||
}
|
||||
QString terminalA;
|
||||
QString terminalB;
|
||||
terminalA=SW->getTerminalA();
|
||||
terminalB=SW->getTerminalB();
|
||||
// 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);
|
||||
|
||||
std::cout<<"find"<<SW->getID().toStdString()<<std::endl;
|
||||
foundCate=true;
|
||||
}
|
||||
if(ce.startsWith("BS"))
|
||||
{
|
||||
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;
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Reference in New Issue