本文整理汇总了C++中XMLParser::text方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLParser::text方法的具体用法?C++ XMLParser::text怎么用?C++ XMLParser::text使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLParser
的用法示例。
在下文中一共展示了XMLParser::text方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadConfigFile
string FabAtHomePrinter::loadConfigFile(string filePath)
{
//Clear previously loaded data.
axes.clear();
motors.clear();
tool.bays.clear();
XMLParser parser;
string result = parser.load(filePath);
if(result.compare("") != 0)
{
return result;
}
//Load constants.
COM_PORT = Util::assertType<unsigned int>(parser.text("fabAtHomePrinter 0\\electronics 0\\comPort 0"));
NUM_MODULES = Util::assertType<unsigned int>(parser.text("fabAtHomePrinter 0\\electronics 0\\numModules 0"));
BAUD_RATE = Util::assertType<unsigned int>(parser.text("fabAtHomePrinter 0\\electronics 0\\baudRate 0"));
X_Y_Z_GROUP_ADDRESS = (byte)Util::assertType<unsigned int>(parser.text("fabAtHomePrinter 0\\electronics 0\\xyzGroupAddress 0"));
PLATFORM_DELTA = Util::assertType<double>(parser.text("fabAtHomePrinter 0\\motion 0\\platformDelta 0"));
OLD_MSPS = Util::assertType<double>(parser.text("fabAtHomePrinter 0\\motion 0\\oldMsps 0"));
//Load motors.
unsigned int count = parser.count("fabAtHomePrinter 0\\electronics 0\\motor");
for(unsigned int i = 0; i < count; ++i)
{
string base = "fabAtHomePrinter 0\\electronics 0\\motor "+Util::toString(i)+"\\";
string name = parser.text(base+"name 0");
byte address = (byte)Util::assertType<unsigned int>(parser.text(base+"address 0"));
double countsPerDistanceUnit = Util::assertType<double>(parser.text(base+"countsPerDistanceUnit 0"));
short kp = Util::assertType<unsigned short>(parser.text(base+"kp 0"));
short kd = Util::assertType<unsigned short>(parser.text(base+"kd 0"));
short ki = Util::assertType<unsigned short>(parser.text(base+"ki 0"));
short il = Util::assertType<unsigned short>(parser.text(base+"il 0"));
byte ol = (byte)Util::assertType<unsigned int>(parser.text(base+"ol 0"));
byte cl = (byte)Util::assertType<unsigned int>(parser.text(base+"cl 0"));
short el = Util::assertType<unsigned short>(parser.text(base+"el 0"));
byte sr = (byte)Util::assertType<unsigned int>(parser.text(base+"sr 0"));
byte db = (byte)Util::assertType<unsigned int>(parser.text(base+"db 0"));
double ticksPerSecond = Util::assertType<double>(parser.text(base+"ticksPerSecond 0"));
motors[name] = Motor(name,address,countsPerDistanceUnit,ticksPerSecond,kp,kd,ki,il,ol,cl,el,sr,db);
}
//Load axes.
count = parser.count("fabAtHomePrinter 0\\axis");
for(unsigned int i = 0; i < count; ++i)
{
string base = "fabAtHomePrinter 0\\axis "+Util::toString(i)+"\\";
string name = parser.text(base+"name 0");
string motorName = parser.text(base+"motorName 0");
map<string, Motor, LessThanString>::iterator motor = motors.find(motorName);
if(motor == motors.end())
{
return "Axis "+name+" references motor "+motorName+" which has not been loaded.";
}
if(name.compare("Y") == 0 || name.compare("Z") == 0)
{
motor->second.setReversed(true);
}
axes[name] = Axis(name,&(motor->second));
}
//Check that axes named X, Y, and Z were loaded.
if(axes.find("X") == axes.end())
{
return "Must load an axis named X.";
}
if(axes.find("Y") == axes.end())
{
return "Must load an axis named Y.";
}
if(axes.find("Z") == axes.end())
{
return "Must load an axis named Z.";
}
//Load bays.
count = parser.count("fabAtHomePrinter 0\\tool 0\\bay");
for(unsigned int i = 0; i < count; ++i)
{
string base = "fabAtHomePrinter 0\\tool 0\\bay "+Util::toString(i)+"\\";
string name = parser.text(base+"name 0");
string motorName = parser.text(base+"motorName 0");
if(motors.find(motorName) == motors.end())
{
return "Bay "+name+" references motor "+motorName+" which has not been loaded.";
}
double x = Util::assertType<double>(parser.text(base+"location 0\\x 0"));
double y = Util::assertType<double>(parser.text(base+"location 0\\y 0"));
double z = Util::assertType<double>(parser.text(base+"location 0\\z 0"));
tool.bays[name] = Bay(name,Point(x,y,z),&(motors.find(motorName)->second));
}
//Check that at least one bay is loaded.
if(tool.bays.size() == 0)
{
return "Must load at least one bay.";
}
//.........这里部分代码省略.........